ExploreMapCompareBlogSign in

SchoolScope for developers

Public school data,
ready for agents.

Search schools, inspect profiles, compare reported patterns, and trace answers back to public sources.

MCP server · LiveREST API · PlannedBulk exports · Planned
Connect to SchoolScopeLive MCP server

One URL. Your choice of client.

Remote HTTP endpoint
https://mcp.schoolscope.co/mcp

Add a remote HTTP server in your client and use this URL. School-data tools work without authentication.

Install command
claude mcp add --transport http schoolscope https://mcp.schoolscope.co/mcp

Run in your terminal, then start a conversation and confirm the SchoolScope tools are available.

Claude Code project config
{
  "mcpServers": {
    "schoolscope": {
      "type": "http",
      "url": "https://mcp.schoolscope.co/mcp"
    }
  }
}

Save as .mcp.json for Claude Code. Other clients may use a different configuration shape.

No API key. OAuth is optional and used for your saved-school watchlist.

Quickstart

Ask a real school question.

  1. Add the MCP server

    Use the endpoint or command above in a client that supports remote HTTP servers.

  2. Confirm the tools are available

    Open a conversation and check that your client can access SchoolScope.

  3. Search, then follow up

    Find nearby schools, open a profile, and ask what evidence supports the answer.

Example prompt

Find public elementary schools near 90004. Compare their reported growth and attendance, include the source years, and suggest questions to ask on a visit.

Expected tool flow
find_schools → school_profile → compare_schools
Results depend on the available evidence and your client’s tool choices.
Raw HTTP walkthrough · initialize, inspect tools, and search

Use a terminal with cURL. The session ID comes from the initialization response headers. Responses may use server-sent events; inspect the JSON in the data: lines.

cURL walkthrough
# 1. Initialize a session and save the response headers.
curl -sS -D schoolscope-headers.txt https://mcp.schoolscope.co/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"schoolscope-example","version":"1.0"}}}'

# 2. Copy mcp-session-id from the headers into this variable.
SESSION_ID='paste-session-id-here'

# 3. Notify the server that initialization is complete.
curl -sS https://mcp.schoolscope.co/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "mcp-session-id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

# 4. Discover the current tools and their input schemas.
curl -sS https://mcp.schoolscope.co/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "mcp-session-id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 5. Ask a school-data tool a question.
curl -sS https://mcp.schoolscope.co/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "mcp-session-id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"find_schools","arguments":{"query":"Palm Crest"}}}'

For clients that only support stdio, a bridge can connect to the remote server:

npx -y mcp-remote https://mcp.schoolscope.co/mcp

Tools & resources

A small set of tools, designed to compose.

Start with search, move into a profile, then compare or follow the path. The school-data tools are anonymous; your personal watchlist requires OAuth.

find_schools

By name, by zip, within a radius of any place or coordinate, or top-ranked at one level — optionally filtered to schools with transitional kindergarten (TK).

school_profile

The full oracle answer for one school: verdict, scores by level, climate, equity, college outcomes, year-over-year movement.

similar_schools

Schools serving a similar student population — the comparison that isn't just measuring the neighbourhood.

feeder_path

Where students come from and where the path leads — including the endpoint high school's outcomes.

compare_schools

Side-by-side comparison of 2–4 schools at the same level.

district_profile

District roll-up: averages plus every scored school, ranked.

my_watchlist

Caller's saved schools — requires the watchlist:read scope. OAuth required.

The server publishes current JSON Schemas through tools/list. Explore tool documentation →

Give agents the definitions, too.

MCP resources supply the methods behind the answers. Discover them with resources/list and retrieve a resource with resources/read.

Scoring methodology →

Understand score construction, dimensions, and comparison rules.

schoolscope://methodology/scope-score

For web discovery, llms.txt provides a machine-readable guide to SchoolScope. Pages also include structured metadata.

Responses carry their context.

Response metadataAbbreviated example
{
  "meta": {
    "data_year": 2025,
    "source_agency": "California Department of Education",
    "methodology_url": "https://schoolscope.co/methodology"
  }
}

The full envelope also includes attribution, comparability rules, growth definitions, and a generation timestamp. A timestamp records when an answer was generated; the data year identifies its vintage.

Provenance travels with the answer

Source agency, data year, and methodology accompany structured school results.

Missing means unavailable

Missing growth evidence is not zero growth. Coverage differs by school, measure, and reporting year.

Comparisons have boundaries

Compare schools within a level and peer class. Scope Scores are normalized within each year; use underlying rates and state percentiles for trends.

Demographics provide context, not a quality score. Read how context is used →

Proposed pricing

A plan for each way you build.

The MCP server is live and free. These proposed REST API tiers describe the access options we are working toward, so you can plan ahead and tell us what is missing.

Public school data through MCP

Live today. No API key or SchoolScope account required for school-data tools.

FreeConnect now →

Free

Prototypes, side projects, and exploration.

$0

1,000 calls / month

  • School directory, Scope Score, and archetypes
  • Autocomplete
  • TypeScript and Python SDKs
  • Attribution required
Get launch updates

Developer

Individual developers and small applications.

$19 / month

10,000 calls / month

  • Free-plan data and SDKs
  • No attribution requirement
Get launch updates

Pro

Real estate applications and education platforms.

$79 / month

50,000 calls / month

  • Developer-plan access
  • Score factors and per-pupil spending
  • Cohort growth and K–12 paths
  • Nearby schools by coordinates
Get launch updates

Data license

Larger platforms, research teams, and data aggregators.

Talk to us

Bulk snapshots, not metered calls

  • Statewide CSV / JSON snapshots and webhooks
  • Boundary GeoJSON and 3+ years of score history
  • Commercial-use license
  • Dedicated support
Get launch updates
Proposed REST pricing · not available to purchase. Prices, included features, quotas, and service terms may change before launch. All allowances are monthly. Data-license terms are set with each licensee.

REST API · planned

From one school to a neighborhood.

The proposed REST surface covers profiles, search, comparisons with state measures, and location context. Endpoint paths and response contracts are design previews; these routes are not live.

Proposed endpointWhat it would return
GET/api/v1/schools/:slugSchool profile
School identity, Scope Score, archetype, spending, and enrollment context.
GET/api/v1/schools/searchSearch
Find schools by name, city, ZIP, or district.
GET/api/v1/schools/nearbyNearby schools
Find schools around a latitude/longitude and radius.
GET/api/v1/schools/:slug/scoresScore factors
Inspect underlying measures, level-specific weights, and state comparisons.
GET/api/v1/schools/:slug/feederSchool path
Explore earlier and later grades with relationship and assignment caveats.
GET/api/v1/context-packLocation context
Assemble schools by level and district context for a property or neighborhood.
GET/api/v1/autocompleteType-ahead
School and district suggestions for a search interface.
A Context Pack would assemble schools by level and district context for a location. For a working integration today, compose the MCP search, profile, and district tools.

Bulk exports · planned

The same evidence, ready for deeper analysis.

The Enterprise proposal includes quarterly CSV and JSON snapshots for repeatable research, internal analysis, and applications that need to work with many schools at once.

School and community context

School identity, enrollment, demographics, per-pupil spending, and reported school-path relationships.

Measures behind the pattern

Scope Scores and archetypes where eligible, level-specific score factors, cohort growth, attendance, and suspension measures.

Documented snapshots

Proposed CSV and JSON packages with field definitions, source agencies, reporting years, and explicit missing values.

California is the current data scope. Additional state packages and export delivery are planned. Coverage and release cadence will follow available source data.

Discuss your data requirements →

Know the boundary of the data.

Coverage today

California public-school data is available now. Measures vary by school level and source.

View data sources →

What it cannot establish

Public records cannot capture every classroom experience or explain why an outcome changed.

Read limitations →

Methods you can inspect

Explore metric definitions, comparison groups, and the rules behind reported patterns.

Read the methodology →

Stay in the loop

Help shape the next way to build.

Get an update when REST API access is ready. Tell us what you are building so the proposed plans can reflect real needs.

No launch date promised. MCP school-data access is already available.

REST API launch updates

Sign in, then select “Join the REST API list” to confirm your interest.