urban-edc-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@urban-edc-mcpNAEP grade 4 reading scores for California 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
urban-edc-mcp
An MCP server that routes K-12 education data requests to whichever public upstream source actually has the answer:
Urban Institute Education Data Portal — broad, harmonized national K-12 indicators (directory, enrollment, and more)
EDC / Zelma — 50-state assessment results
NAEP ("The Nation's Report Card") — state- and national-level reading/math/science scores, comparable across states
MA Education to Career (E2C) Hub — Massachusetts MCAS results and other MA-specific datasets
All four sources are free, public APIs — no API key is required for normal use (MA E2C supports an optional app token to raise anonymous rate limits; see below).
This server is intentionally federated, not a warehouse. It does not mirror or cache upstream datasets. On every call it:
inspects the request,
decides which upstream source is the better fit (or uses the
metric_nameyou gave it),calls that source directly,
returns data plus provenance and comparability notes.
Why federate instead of picking one source?
Each source has a different scope and a different comparability guarantee, and mixing them up produces wrong analysis:
EDC state assessment results are not comparable across states (different tests, scales, and cut scores).
NAEP is comparable across states — use it for cross-state comparisons.
MCAS (MA E2C) is on its own 440–560 scale, distinct from both EDC's state scales and NAEP's 0–500 scale.
Urban is the right default for broad national indicators (directory, enrollment) that aren't assessment scores at all.
The router encodes these rules so an LLM calling this server doesn't have to know them, and every response carries the comparability caveat that applies to it.
Related MCP server: teadata-mcp
Install this with an AI assistant (no terminal needed)
If you use a coding assistant that can read files and run commands on your own computer — Claude Code, Codex CLI, Cursor, or similar — you don't need to install anything yourself. Open a chat with that tool and paste the block below as-is. It runs entirely from this GitHub repo; nothing needs to be published anywhere first, and no API key or account is required.
This only works with a tool that has file and terminal access on your machine. It will not work if you paste it into the plain Claude.ai or ChatGPT website chat — those can't edit files or run commands on your computer.
Please install the MCP server from https://github.com/sribnick-coder/urban-edc-mcp so I can
use it here. Steps:
1. Check whether the `uv` tool is installed (`uv --version`). If it isn't, install it — see
https://docs.astral.sh/uv/getting-started/installation/ for the right one-line installer
for my operating system.
2. Add an MCP server entry named "urban-edc" to whichever MCP config file you use, with:
- command: uvx
- args: ["--from", "git+https://github.com/sribnick-coder/urban-edc-mcp", "urban-edc-mcp"]
3. Restart or reload yourself so the new server is picked up.
4. Confirm it worked by asking me: "What were the NAEP grade 4 reading scores in 2024 for
California, Texas, and New York?" and showing me the result.
No API keys, accounts, or local installs are needed for this — it runs straight from GitHub
via `uvx`.That's it — the assistant does the rest, and you can ask it in plain English about K-12 data (assessment scores, enrollment, etc.) once it confirms the tool is loaded.
Install manually
Requires Python 3.11+.
Run without installing, straight from GitHub (recommended, via uv)
uvx --from git+https://github.com/sribnick-coder/urban-edc-mcp urban-edc-mcpThis is not yet published to PyPI, so the --from git+... form above is required for now. If
it's published there later, plain uvx urban-edc-mcp will also work.
From source
git clone https://github.com/sribnick-coder/urban-edc-mcp.git
cd urban-edc-mcp
uv venv
source .venv/bin/activate # .venv\Scripts\activate on Windows
uv syncOr with pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .Configure in an MCP client
Add this to your client's MCP config (e.g. Claude Desktop's claude_desktop_config.json, or
a project's .mcp.json for Claude Code):
Via uvx, straight from GitHub (no local install needed):
{
"mcpServers": {
"urban-edc": {
"command": "uvx",
"args": ["--from", "git+https://github.com/sribnick-coder/urban-edc-mcp", "urban-edc-mcp"]
}
}
}From a local install (console script installed by pip install -e . / uv sync):
{
"mcpServers": {
"urban-edc": {
"command": "urban-edc-mcp"
}
}
}Optional — raise MA E2C rate limits. Set E2C_APP_TOKEN in your environment (or the
config's env block) to a free Socrata application
token if you'll be making many MA
E2C / MCAS calls. Not required for normal use.
Run locally for development
# MCP Inspector (interactive dev UI)
uv run mcp dev src/urban_edc_mcp/server.py
# Direct stdio server
uv run python -m urban_edc_mcp.serverTools exposed
find_data— given a natural-language question, recommends which source to use (Urban / EDC / NAEP / MA E2C), with a confidence level, comparability notes, and a ready-to-useget_datacall.get_data— fetches data from the selected source. Cleanest when you pass a supportedmetric_name; falls back to raw source-specific parameters for anything not yet catalogued.explain_metric— describes supported metrics, metric families, and sources. Call with no arguments to list everything available.get_lineage— returns full provenance (upstream endpoint, request params, route reason, source docs) for any priorget_dataresult, keyed by itsrequest_id.
Supported metric_name values
| Source | Notes |
| NAEP | Comparable across states. Requires |
| MA E2C | Massachusetts MCAS. Not comparable to other states. |
| MA E2C | Any dataset on the E2C portal. Requires |
| EDC | 50-state assessment data. Not comparable across states. |
| Urban | Requires |
| Urban | Requires |
For anything else on Urban, pass urban_path directly (e.g.
"schools/ccd/directory/2013/"), or raw EDC/Socrata filters via edc_filters / ma_where.
See the docstring on get_data (src/urban_edc_mcp/server.py) for the full parameter
reference and worked examples per source, and use explain_metric at runtime to inspect any
metric before calling it.
Example prompts
"Compare grade 4 reading NAEP scores across California, Texas, and New York for 2024."
"Find Rhode Island's grade 4 math assessment results for 2024."
"Get Boston's district-level MCAS ELA results for 2024."
"List all schools in the Urban school directory for 2013."
Scope and limitations
This is a deliberately small gateway, not a full data warehouse. It does not solve:
cross-source joins,
full entity resolution (e.g. matching district names across sources),
full Urban endpoint discovery beyond the metrics catalogued above,
long-term caching.
Development
uv sync --all-extras
uv run pytest # full suite
uv run pytest -m "not network" # skip tests that hit real upstream APIs
bash predeploy.sh --offline # pre-deploy checklist without network callsTESTING.md documents the test layout and coverage in more detail.
License
MIT — see LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityBmaintenanceMCP server that exposes skills from the Brazilian National Common Curricular Base (BNCC) with thematic units, knowledge objects, and prioritization layer from Mapa de Foco, enabling lookup, search, listing, and statistics of educational skills.Last updated514
- Alicense-qualityDmaintenanceMCP server for exploring Texas public school data through conversational interfaces, enabling campus search, district details, geospatial lookup, comparisons, and transfer insights using TEA data.Last updated1Apache 2.0
- Alicense-qualityDmaintenanceMCP server providing access to comprehensive UK school data from official government sources, including search, details, near-postcode, comparisons, Ofsted ratings, and DfE education datasets.Last updatedMIT
- Flicense-qualityCmaintenanceUnifies school information, real estate transaction data, and school zone lookup into a single MCP server, allowing users to query school details, property prices, and attendance boundaries.Last updated
Related MCP Connectors
MCP server for US Treasury Fiscal Data — debt, interest rates, exchange rates, and spending.
MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sribnick-coder/urban-edc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server