Skip to main content

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 GUID
    • list_standards(jurisdiction, grade, subject) — full tree for a standard set
    • search_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 (only search_standards requires an OPENAI_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chiron_common_core_standards-0.1.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chiron_common_core_standards-0.1.0-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

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

Hashes for chiron_common_core_standards-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ad84520d3f28ae178258bfba8c0ccf7e99f409ab966b9dd1f55b7c5e54c214c3
MD5 6e04013f88f4f998cdf901a4c84fbc7d
BLAKE2b-256 3701c0a718ed4e875212b2c438783f662d98aff94fb094568cdbb7dfe12f6ed2

See more details on using hashes here.

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

Hashes for chiron_common_core_standards-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f141b8b33ca993b870e8e502759eccfaf9826efc0f7d3124899aa1f05b9eeb99
MD5 e06af04d921beb969bdb196f3457b430
BLAKE2b-256 52c8fda1469c178f78f0b9c1133aee006bd4bce7498f2fa174c112c80e58a87e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page