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.
Metadata
Release files for chiron-common-core-standards 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chiron_common_core_standards-0.1.0.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chiron_common_core_standards-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.8 MB
Release files / chiron_common_core_standards-0.1.0.tar.gz
| Download URL | chiron_common_core_standards-0.1.0.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad84520d3f28ae178258bfba8c0ccf7e99f409ab966b9dd1f55b7c5e54c214c3
|
|
BLAKE2b-256 checksum How to use checksums |
3701c0a718ed4e875212b2c438783f662d98aff94fb094568cdbb7dfe12f6ed2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / chiron_common_core_standards-0.1.0-py3-none-any.whl
| Download URL | chiron_common_core_standards-0.1.0-py3-none-any.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f141b8b33ca993b870e8e502759eccfaf9826efc0f7d3124899aa1f05b9eeb99
|
|
BLAKE2b-256 checksum How to use checksums |
52c8fda1469c178f78f0b9c1133aee006bd4bce7498f2fa174c112c80e58a87e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|