MCP server exposing US Common Core ELA standards (grades 2-4) as lookup tools for LLM agents.
Project description
chiron-common-core-standards
An MCP (Model Context Protocol) server that exposes US Common Core ELA standards (grades 2–4) as lookup tools for LLM agents.
Package name on PyPI:
chiron-common-core-standards. Python import name:chiron_standards.
Backed by a bundled SQLite database with full-text and semantic search — no network calls at runtime, no external rate limits.
Why
When an LLM generates educational content — worksheets, assessments, lesson plans — it needs to align to real educational standards. Without a reliable lookup tool, models hallucinate standard codes, misremember descriptions, or attach the wrong grade level. chiron-standards gives agents a grounded, deterministic source for Common Core lookups.
Features
- Three tools:
get_standard(code_or_id)— exact lookup by notation (e.g."RL.3.1") or GUIDlist_standards(jurisdiction, grade, subject)— full tree for a standard setsearch_standards(query, grade, subject, limit)— hybrid FTS5 + semantic search with Reciprocal Rank Fusion
- Offline — all ~500 Common Core ELA standards (grades 2–4) ship inside the wheel as a pre-built SQLite file with embeddings
- Semantic search powered by OpenAI
text-embedding-3-small(onlysearch_standardsrequires anOPENAI_API_KEY; the other two tools are fully offline) - Leaf-only search results — parents, domains, and anchor standards are filtered out so agents align to alignable standards
Install
pip install chiron-common-core-standards
Use with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"chiron-standards": {
"command": "chiron-standards",
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}
Restart Claude Desktop. The three tools will appear automatically.
Use with the MCP Inspector (for development)
uv run fastmcp dev inspector src/chiron_standards/server.py
Open the printed URL, connect, and call tools manually.
Use as a Python library
The same tools are available as plain Python functions — useful from your own backend without going through MCP:
from chiron_standards.db import connect
from chiron_standards.queries import get_standard, search_standards
conn = connect()
# Exact lookup
print(get_standard(conn, "RL.3.1"))
# Semantic search (requires OPENAI_API_KEY in env)
hits = search_standards(conn, "finding evidence in a passage", grade="03", subject="ELA", limit=3)
for h in hits:
print(h["notation_short"], h["description"])
Data model
Each standard returns a dict with:
| field | description |
|---|---|
id |
32-char GUID from Achievement Standards Network |
notation_short |
Short notation (e.g. "RL.3.1") — null for parent containers |
notation_full |
Formal notation (e.g. "CCSS.ELA-Literacy.RL.3.1") |
description |
The standard text |
grade |
Two-digit grade ("02", "03", "04") |
subject |
Normalized subject ("ELA") |
jurisdiction |
"Common Core State Standards" |
set_id |
Standard set GUID |
depth |
0 = domain, 1 = cluster, 2 = standard, 3 = component |
position |
Original ordering within the document |
parent_id |
GUID of the parent standard, or null |
ancestor_ids |
JSON-encoded list of ancestor GUIDs |
statement_label |
"Standard", "Component", or null |
source_url |
Canonical corestandards.org URL, when available |
search_standards results additionally include a _score field (higher = better).
Build the database yourself
The published wheel already contains standards.db. To rebuild it (e.g. to pull fresh upstream data):
git clone https://github.com/JovannyEspinal/chiron-common-core-standards
cd chiron-common-core-standards
uv sync
cp .env.example .env # add CSP_API_KEY and OPENAI_API_KEY
uv run python -m chiron_standards.ingest
This fetches Common Core ELA grades 2–4 from the Common Standards Project API, embeds descriptions with OpenAI, and writes src/chiron_standards/data/standards.db.
Development
uv sync
uv run pytest # run the test suite
uv run fastmcp dev inspector src/chiron_standards/server.py
License and attribution
- Code: Apache License 2.0 — see LICENSE.
- Data: The standards data shipped in this package is sourced from the Common Standards Project, which aggregates releases from the Achievement Standards Network (ASN) operated by Desire2Learn. ASN's standards data is licensed under CC BY 3.0 US.
- Common Core State Standards © 2010 National Governors Association Center for Best Practices and Council of Chief State School Officers. All rights reserved.
See NOTICE for full attribution requirements.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chiron_common_core_standards-0.1.0.tar.gz.
File metadata
- Download URL: chiron_common_core_standards-0.1.0.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad84520d3f28ae178258bfba8c0ccf7e99f409ab966b9dd1f55b7c5e54c214c3
|
|
| MD5 |
6e04013f88f4f998cdf901a4c84fbc7d
|
|
| BLAKE2b-256 |
3701c0a718ed4e875212b2c438783f662d98aff94fb094568cdbb7dfe12f6ed2
|
File details
Details for the file chiron_common_core_standards-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chiron_common_core_standards-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f141b8b33ca993b870e8e502759eccfaf9826efc0f7d3124899aa1f05b9eeb99
|
|
| MD5 |
e06af04d921beb969bdb196f3457b430
|
|
| BLAKE2b-256 |
52c8fda1469c178f78f0b9c1133aee006bd4bce7498f2fa174c112c80e58a87e
|