Overview
The Knowledge Graph MCP server implements the Model Context Protocol ↗ for K-12 educational data. Instead of relying on model recall, the MCP server relies on tools ↗ and structured Knowledge Graph data to resolve standards, deconstruct them into learning components, and more.Tools
The MCP server contains tools ↗ that can be used individually or in sequence:find_standard_statementfind_learning_components_from_standardfind_standards_progression_from_standardfind_curriculum_lessonsfind_materials_for_lessonfind_misconceptions_for_standard
Your agent will discover the tools that are available to you given your
dataset access status. Check the documentation for each tool to learn more
about any dataset access prerequisites.
session_id string (for analytics only – does not affect results). This parameter is returned on the output so the next call can pass it again.
find_standard_statement
Find current education standards by code, prefix, or statement text – durable skills not included.
Inputs
| Field | Type | Required | Description |
|---|---|---|---|
code | String | One of | Exact statementCode or prefix, such as RI.5.2 or 8.F.B.4 — also
matches an alternate code. If both code and keywords are set, code
is used. |
keywords | String[] | One of | Terms OR-matched against the statement text, whole-word and stem-based,
not a substring match. Keyword matching is whole-word and stem-based, so
fraction matches fractions, not a substring. |
jurisdiction | JurisdictionENUM | U.S. state name, Washington, D.C., or Multi-State — defaults to
Multi-State (Common Core) | |
academicSubject | AcademicSubjectENUM | Academic subject string |
standards array (max 25 elements), with each element containing the following fields:
| Field | Type | Description |
|---|---|---|
statementCode | String | Standard’s code |
alternateStatementCode | String | Included when the standard has an alternate code |
caseIdentifierUUID | String | CASE identifier — use with other tools that take a caseIdentifierUUID |
description | String | Statement text |
jurisdiction | JurisdictionENUM | Where the standard is adopted |
gradeLevels | GradeLevelENUM[] | Array of grade levels |
academicSubject | AcademicSubjectENUM | Subject for the standard |
subStandards | { statementCode: String, caseIdentifierUUID: String, description: String }[] | Included when the standard has children |
find_learning_components_from_standard
Coverage:
- Math - Common Core and adopting state frameworks
- ELA - K-2
| Field | Type | Required | Description |
|---|---|---|---|
caseIdentifierUUID | String | ✓ | Standard UUID from find_standard_statement |
A standard outside the coverage returns an explanatory error, rather than an empty list.
learning_components array, with each element containing the following fields:
| Field | Type | Description |
|---|---|---|
identifier | String | Learning component identifier |
description | String | Learning component text |
find_standards_progression_from_standard
Coverage: Math only
| Field | Type | Required | Description |
|---|---|---|---|
caseIdentifierUUID | String | ✓ | Math standard UUID from
find_standard_statement |
direction | backward or forward | ✓ | backward for prerequisites and forward for subsequent standards |
A non-Math standard will return an error. If the standard has no Common Core math alignment, or no progression in the requested direction, the tool returns an empty array with an explanatory error.
standards array, with each element containing the following fields:
| Field | Type | Description |
|---|---|---|
matchType | exact or partial | How closely the related standard matches |
alignmentScore | Number from 0 to 1 | 1.0 for an exact match |
statementCode | String | Related standard’s code |
caseIdentifierUUID | String | CASE identifier for the related standard |
description | String | Statement text |
jurisdiction | JurisdictionENUM | Jurisdiction of the related standard |
gradeLevel | GradeLevelENUM[] | Array of grade levels |
academicSubject | AcademicSubjectENUM | Subject for the related standard |
learningComponents | Object[] | Populated for partial matches |
find_curriculum_lessons
Find curriculum lessons that teach a standard or that are named by their curriculum position or title.
Inputs
| Field | Type | Required | Description |
|---|---|---|---|
caseIdentifierUUID | String | One of | CASE identifier for a Common Core or other Multi-State standard (state standards only work when they have an exact Common Core equivalent) |
ordinalName | String | One of | Comma-separated curriculum position, such as Grade 6, Unit 1, Lesson 19 — components can be in any order; numbers must match exactly |
lessonName | String | One of | Words from the lesson title — do not include grade or unit numbers. |
author | Illustrative Mathematics or OpenSciEd | Lesson publisher |
If you provided
caseIdentifierUUID, max 150 lessons are returned.If you provided ordinalName or lessonName, max 25 lessons are returned. lessonName matches are ordered best first.lessons array, with each element containing the following fields:
| Field | Type | Description |
|---|---|---|
lessonIdentifier | String | Required — pass this to find_materials_for_lesson. |
lessonName | String or null | Lesson title |
fullOrdinalName | String or null | Full curriculum position |
lessonDescription | String or null | Lesson description |
gradeLevel | GradeLevelENUM[]
or null | Array of grade levels |
academicSubject | AcademicSubjectENUM
or null | Subject for the lesson |
find_materials_for_lesson
Find the teacher-facing materials for a lesson and/or a lesson’s activities:
- Activity narrative
- Standards alignment
- “Building on Student Thinking” notes
- Sample student responses
- Activity synthesis script
| Field | Type | Required | Description |
|---|---|---|---|
lessonIdentifier | String | ✓ | Lesson identifier from find_curriculum_lessons |
materialSource | String[] | ["lesson"], ["activity"], or ["lesson", "activity"] |
materials array, with each element containing the following fields:
| Field | Type | Description |
|---|---|---|
sourceType | Lesson or Activity | Whether the material belongs to the lesson or an activity |
sourceName | String or null | Name of the lesson or activity the material belongs to |
materialName | String or null | Material title |
materialIdentifier | String or null | Identifier for the material |
materialType | MaterialTypeENUM
or null | Kind of material |
content | String or null | Material body (truncated above 50 KB) |
find_misconceptions_for_standard
Coverage: Math onlyCurrently, the primary source is IM® v.360. Eedi Misconceptions Graph is used only when that guidance does not cover the standard.Eedi matches are approximate and by text similarity. Check results before relying on them for subsequent steps in your workflow.
| Field | Type | Required | Description |
|---|---|---|---|
caseIdentifierUUID | String | ✓ | Math standard UUID from
find_standard_statement |
subject | "Mathematics" | ✓ | Other subjects will be rejected |
A non-Math standard returns an error. A Math standard with no match in either
source returns an empty array. A response uses one shape for the whole list,
never a mix of both sources.
misconceptions array. Illustrative Mathematics rows and Eedi rows use different fields. Fields that do not apply to that source are omitted. The Eedi fallback uses at most 3 matched constructs. content is truncated when it is very large.
| Field | Type | Description |
|---|---|---|
activityName | String | IM® v.360 activity name |
activityIdentifier | String | IM® v.360 activity identifier |
materialIdentifier | String | IM® v.360 material identifier |
content | String | IM® v.360 “Building on Student Thinking” block |
misconception | String | Eedi misconception statement |
misconceptionIdentifier | String | Eedi misconception identifier |
matchedConstruct | String | Eedi construct the standard was matched to |
constructIdentifier | String | Eedi construct identifier |
What you’ll need
-
MCP server URL:
-
API keys generated in Platform ↗ to include in your request headers for authentication:
orIf using an SDK, verify how to pass in the MCP authorization key for your client.
Steps
1
Set up environment variables
.env
2
Connect to the MCP server
Make a request to the MCP server with your question — for example, asking about skills and unfinished learning for California standard
4.OA.A.3:3
Review the response
Your AI client will call Knowledge Graph MCP tools to return structured results (e.g., standards, learning components, or learning progressions).Inspect
mcp_call output entries for tool names, arguments, and results.Related topics
Quickstart
Set up MCP access and try your first Knowledge Graph requests.