Education Scope MCP
Click on "Deploy 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., "@Education Scope MCP三平方の定理を使う説明は中2までで大丈夫?"
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.
EDUCATION_SCOPE_MCP
日本の学校教育で、ある知識・用語・解法がどの学校段階・学年・教科の範囲かを判定し、LLMの説明が指定学年を超えていないか監査するMCPサーバーです。
文部科学省の学習指導要領コード表(小学校 82V12 / 中学校 83V11 / 高等学校 84V10)を取得・正規化して検索でき、手作業seedは自然な別名と前提知識グラフの補助データとして併用します。
MCP Registry
Registry name:
io.github.YAMA-TANA/education-scope-mcpDisplay name: Education Scope MCP
Version:
0.2.0OCI image:
ghcr.io/yama-tana/education-scope-mcp:0.2.0Transport:
stdio
Registry description:
Classify Japanese school curriculum scope, audit explanations against grade limits, and search 16,887 normalized MEXT curriculum-code entries.
server.json はOfficial MCP Registry向けのmanifestです。.github/workflows/publish-mcp.yml がOCIイメージをGHCRへ公開し、GitHub Actions OIDCでRegistryへ送信します。追加のRegistry用シークレットは不要です。
Related MCP server: taxonomy-mcp
MCP tools
classify_knowledge_scope— 「三平方の定理」「微分」「現在完了」などの教育範囲を判定check_answer_scope— 「中2までで説明して」に高校・中3範囲が混ざっていないか監査search_curriculum— 学校段階・教科・領域・キーワードで公式コード表を検索get_prerequisites— そのトピックを理解するための前提知識を取得list_supported_scopes— 監査に指定できる上限学年を取得get_dataset_status— 全量MEXTデータがロード済みか、コード表別件数とともに確認
例
classify_knowledge_scope("三平方の定理")
{
"bestMatch": {
"stage": "中学校",
"grade": 3,
"subject": "数学",
"topic": "三平方の定理"
}
}check_answer_scope("三平方の定理を使います。", "中2")
{
"withinTarget": false,
"exceedsTarget": [
{
"stage": "中学校",
"grade": 3,
"topic": "三平方の定理"
}
]
}セットアップ
Node.js 20以上。
npm install
npm teststdio MCP
npm run build
npm startMCPクライアント設定例:
{
"mcpServers": {
"education-scope": {
"command": "node",
"args": ["/absolute/path/EDUCATION_SCOPE_MCP/dist/src/index.js"]
}
}
}Docker / OCI
docker run --rm -i ghcr.io/yama-tana/education-scope-mcp:0.2.0Remote HTTP MCP
npm run build
PORT=3000 npm run start:httpMCP endpoint:
http://localhost:3000/mcphealth check:
http://localhost:3000/health
HTTP実装はMCP TypeScript SDK v2の createMcpHandler を使用しています。
文科省データを全量取り込む
npm run import:mextこのコマンドは3つの公式CSVを取得し、raw保存だけでなくMCPが直接読める正規化済みデータまで生成します。
data/mext/raw/
elementary-82V12.json
junior-high-83V11.json
high-school-84V10.json
index.json
data/mext/normalized/
curriculum-items.json
summary.jsoncurriculum-items.json が存在すれば、MCP起動時に自動で読み込みます。存在しない環境でもseed-onlyモードで起動できます。現在どちらのモードかは get_dataset_status で確認できます。
公式コード表から保持する主な情報:
{
stage,
grade,
grades,
subject,
course,
domain,
topic,
aliases,
curriculumCode,
codeTable,
itemNumber,
sectionPath,
source
}学年は16桁の学習指導要領コードの学年・段階欄を解釈します。複数学年にまたがるコードは grades に全学年を保持し、学年上限監査では安全側に倒すため、その範囲の上端を grade として使用します。高等学校は学年を推測して付与しません。
自動更新
.github/workflows/refresh-mext.yml は文科省CSVを取得し、正規化・テスト・件数検証を通過した場合だけ data/mext/normalized/ をmainへコミットします。毎月1日の定期更新と手動実行に対応しています。
raw CSV由来JSONはGit管理対象外で、MCPが必要とする正規化済みJSONだけをリポジトリに保持します。
判定設計
公式コード表は「何を扱うか」の一次根拠として優先し、src/data.ts のseedは次の補助用途に残しています。
「三平方」「ピタゴラスの定理」のような自然なalias
概念間の前提知識グラフ
公式データをまだ生成していない環境のフォールバック
check_answer_scope は未登録概念を自動的に「範囲内」とは判定しません。既知概念を1件も検出できない文章は unknownTextPresent: true として安全側に倒します。
データソース
文部科学省「教育データ標準」学習指導要領コード表:
小学校
82V12中学校
83V11高等学校
84V10
License
MIT
Available Tools
6 toolscheck_answer_scopeA
説明文や解答に、指定した学年より後で学ぶ既知概念が混ざっていないか監査します。『中2までで説明して』のような制約チェック向けです。未登録概念は安全判定せず未判定にします。
| Name | Required | Description | Default |
|---|---|---|---|
| answer | Yes | 監査したい説明文・解答 | |
| target | Yes | 許可する知識範囲の上限 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It usefully discloses a genuine behavioral trait — unregistered concepts are not passed as safe but reported as undetermined — which is non-obvious. However it says nothing about the output shape or the strictness of the grade-boundary comparison, leaving gaps for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and then two supporting clarifications. No filler, though the final sentence slightly overlaps purposes already implied by the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with full schema coverage and no annotations, the description covers purpose, a usage scenario, and one edge-case behavior. It omits any indication of the return value (no output schema exists), which an agent would benefit from knowing before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only 2 documented params, so the baseline is 3. The description's gloss (auditing a 説明文/解答 against a specified grade's known concepts) mirrors the schema's own descriptions rather than adding new parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Concrete verb (監査する/audit) plus a clearly bounded resource: whether an answer's explanation contains known concepts taught after a given grade. The scope sense is distinct from get_prerequisites or search_curriculum, though it doesn't explicitly separate itself from the similarly named classify_knowledge_scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete usage context ('中2までで説明して' style constraint checks), so an agent knows this is the constraint-verification tool. It stops short of naming when-not-to-use or explicitly routing to a sibling like classify_knowledge_scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_knowledge_scopeC
日本の学校教育において、指定した知識・用語・解法が主にどの学校段階・学年・教科で扱われるかを判定します。文部科学省の正規化済み学習指導要領コード表が利用可能な場合はそれを優先します。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 曖昧な場合に返す候補数 | |
| query | Yes | 判定したい知識、用語、解法、文法事項など |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses one behavioral trait (prioritizing the MEXT code table if available), but omits critical details such as whether the operation is read-only, how ambiguous cases are resolved, or what confidence or ranking the output contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first front-loads the purpose, and the second adds a relevant caveat about data source priority. It is compact with no wasted words, though the caveat could be integrated more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should at least sketch the return format or confidence behavior. It does not describe what the output looks like (e.g., a ranked list of scopes), nor does it explain how the limit parameter affects ambiguous cases, leaving a significant gap for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (query and limit). The description adds no parameter-level meaning beyond what the schema provides, which is the expected baseline when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (判定します) and resource (specified knowledge/term in Japanese school education), clarifying it determines the school stage/grade/subject. It does not explicitly differentiate from siblings like check_answer_scope, but the scope is clear enough for an agent to understand the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prioritizing the MEXT normalized curriculum code table when available, but this is a data-source preference rather than a when-to-use guideline. It offers no explicit guidance on when to choose this tool over alternatives such as check_answer_scope or search_curriculum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataset_statusA
文部科学省の正規化済み全量データがロードされているか、コード表ごとの件数とともに返します。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the tool returns a load status and per-code-table counts, which is useful, but it does not mention read-only nature, permissions, side effects, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the core purpose and appends the return detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool with no output schema, the description adequately explains what is returned (load status and per-code-table counts). It could be slightly more complete by clarifying the output format, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline score of 4 applies. There are no parameter semantics to clarify beyond what the empty schema already indicates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (returns) and resource (whether MEXT normalized full data is loaded, with counts per code table). It is clear enough to distinguish from the sibling tools, which focus on curriculum scope and search, but it does not explicitly name or contrast with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any context about prerequisites or timing. It only states what is returned, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prerequisitesB
指定したトピックを理解するための前提知識を返します。公式コード表に概念依存関係がない場合は、同梱seedの前提知識グラフを補助的に使用します。
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | 前提知識を何段階たどるか | |
| topic | Yes | 対象トピック |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does reveal one non-obvious trait: the fallback to a bundled seed graph when the primary source is incomplete. But it omits return structure, error behavior for unknown topics, and any performance or data-freshness caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the core purpose is front-loaded and the fallback caveat follows. No redundant restatement of the tool name or schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema and no annotations, the description covers the purpose and a notable data-source nuance but leaves the shape of the returned graph and behavior on missing topics unspecified. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters (topic, depth) are already documented in the schema, including the depth range and default. The description adds no syntax, format, or example beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns ('返します') prerequisite knowledge ('前提知識') for a named topic. The purpose is unambiguous and the sibling names (classify_knowledge_scope, search_curriculum, etc.) are functionally distinct, but the description does not explicitly differentiate itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It discloses a data-source fallback condition – when the official code table lacks concept dependencies, the bundled seed graph is used supplementarily – which implies usage context. However, it never states when to prefer this tool over siblings like search_curriculum or classify_knowledge_scope, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_scopesA
check_answer_scope で指定できる教育範囲の上限一覧を返します。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb '返します' implies a read-only listing operation with no side effects, but it does not explicitly confirm read-only behavior, absence of mutations, or any auth/rate-limit characteristics. It is minimally adequate for a simple 0-parameter helper.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, front-loading what is returned and the consuming tool. Appropriate for a simple 0-parameter listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description sufficiently explains what the tool returns and its relationship to check_answer_scope. It does not specify the return format (e.g., array of scope identifiers), which would be helpful but is not strictly required for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. Per the rubric, a 0-parameter tool receives a baseline of 4; the description adds no misleading parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('返します' / returns) and resource ('教育範囲の上限一覧' / list of educational scope limits), and explicitly ties it to check_answer_scope. This distinguishes it from siblings such as classify_knowledge_scope and check_answer_scope itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage by naming check_answer_scope as the consumer of the returned scopes, so an agent can infer this should be called to discover valid inputs. However, there is no explicit when-to-use, when-not-to-use, or ordering guidance relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_curriculumB
教育範囲データから、教科・学校段階・領域・キーワードで項目を検索します。公式データでは学習指導要領コードも結果に含まれます。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | 検索語。省略時はフィルタのみ | |
| stage | No | 学校段階 | |
| domain | No | 領域名。例: 図形、関数、文法 | |
| subject | No | 教科・科目名。例: 数学、数学II、英語 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one non-obvious output trait — that official data includes 学習指導要領コード in results — but says nothing about result limits, ordering, or the read-only nature of the operation, which the agent must infer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the search scope and closed with the distinguishing output detail. No filler or repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers what is searched and one output variation, but with no output schema and no annotations the description should say more about result shape, result count, and read-only behavior. Adequate but with clear gaps for a five-parameter search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 80% schema description coverage, the schema already documents query, stage, domain and subject. The description restates those same dimensions without adding format, syntax, or matching-behavior detail, and never mentions the limit parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (検索 / search) and resource (教育範囲データ / curriculum scope data), then enumerates the filter dimensions (教科・学校段階・領域・キーワード). An agent can tell it apart from siblings like classify_knowledge_scope or get_prerequisites, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the sibling tools, nor any exclusions or prerequisites. Usage is only implied by the word 検索; the useful detail that filters alone work when the query is omitted lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.2.0- First observed
check_answer_scope - First observed
classify_knowledge_scope - First observed
get_dataset_status - First observed
get_prerequisites - First observed
list_supported_scopes - First observed
search_curriculum
TDQS
Scored across 6 tools
Each tool has a fairly distinct role: classify_knowledge_scope grades a single term, check_answer_scope audits text against a grade limit, and search_curriculum queries the data. There is mild overlap between classify_knowledge_scope and search_curriculum (both can surface grade/subject for a term), but the descriptions differentiate input and output clearly.
All six tools use a consistent snake_case verb_noun pattern (classify_/check_/search_/get_/list_/get_), with clear action verbs and noun objects. No mixed conventions or vague names.
Six tools is well-scoped for a curriculum-scope lookup domain. Each tool earns its place: two core lookups, one audit, one prerequisite graph, and two meta/status helpers.
The surface covers the key lifecycle: classifying scope, auditing text, searching curriculum, prerequisites, and data-status checks. Minor gaps exist (e.g., no explicit tool to list all subjects/grade progression beyond search), but core agent workflows are supported.
Maintenance
Related MCP Connectors
- potto-japanOAuthapp.potto
Authoritative JLPT-graded Japanese dataset (kanji, vocab, grammar, history) via MCP and REST.
Japanese law, corporation & statistics data as MCP, normalized to English with source attribution.
Search Japanese subsidies and public company data using J-Grants, gBizINFO, and EDINET.
AI-verified knowledge base with trust scoring, temporal facts, and skill cards.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query Japanese public data (laws, corporations, statistics) from official government APIs, returning normalized English metadata with source attribution.1MIT
- FlicenseNot gradedqualityBmaintenanceExposes Marble's open skill taxonomy (ages 4-15) as queryable MCP tools, enabling AI agents to search topics, find prerequisites, and plan learning paths.-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query and validate BNCC (Brazilian curriculum) skills deterministically, preventing hallucinations by providing official data, search, and code validation tools.-
- AlicenseNot gradedqualityDmaintenanceProvides access to the Korean elementary 2022 revised curriculum learning graph, enabling users to search and retrieve curriculum standards, learning topics, prerequisites, and roadmaps from a fully local database.24 npm13MIT