开放天神(Tenjin)MCP(多载波聚合/移动核心平台,具体含义根据上下文确定)
提供教育数据(日本的教学大纲、教科书、教材信息)的模型上下文协议(MCP)服务器。
概要
Open Tenjin MCP通过标准化的MCP协议提供专门针对日本教育体系的教育数据,使AI助手和教育应用程序能够轻松访问结构化的教育数据。
🔬 项目的目的与性质
此产品为实验性验证原型。
这个Open Tenjin MCP项目验证教育领域中模型上下文协议(MCP)的有效性和实用性这是为此而开发的实验性原型。它并非旨在实际教育现场中使用的正式生产系统。
🎯 验证目的
- MCP协议在提供教育数据方面的有效性的实证
- 向AI教育助手整合结构化数据效果测定
- 教育数据库的MCP标准化基于的互操作性评估
- 教育领域中AI的应用可能性探索与课题提炼
⚠️ 使用注意事项
- 实验性质系统规格和功能可能会在未作预告的情况下发生变更
- 数据质量其中一部分包含用于验证的虚拟数据,实用性有限
- 可用性无法保证持续提供服务
- 支持未提供商业级支持
📊 预期成果
通过这一原型,我们旨在获得以下见解:
- MCP协议在教育数据整合中的技术难题
- AI教育助手的实用性与局限性
- 教育领域采用MCP的需求与限制
- 教育数据标准化与互操作性的可行性
我们欢迎用于研究和开发目的,但请勿在实际教育现场正式使用。
提供数据
- 学习指导要领文部科学省规定的教育课程标准
- 按教育阶段划分(小学、初中、高中、特殊支援学校) - 各科目的详细内容项目 - 根据布鲁姆分类法的学习目标分类 - 📋 标准: 2017、2018、2019年修订版学习指导要领基于官方数据
- 教科书信息审定教科书的详细信息
- 出版社、作者、审查情况 - 目录结构与教学大纲的对应关系 - ISBN、价格、出版年份等元数据 - ⚠️ 注意教科书数据是由生成式AI创建的虚构虚拟数据
- 教材信息教学学习材料数据库
- 工作表、视频、互动教材等 - 使用场景、难度、适用年级的分类 - 知识共享许可等权利信息 - ⚠️ 注意教材数据是由生成式AI创建的虚构虚拟数据
- 教育理论构成教育实践理论基础的重要理论群
- 收录50项主要教育理论系统梳理现代教育学中的重要理论 - 学习理论、认知心理学、教学设计、评估理论等领域 - 布卢姆的分类法、建构主义、认知负荷理论等 - 实际应用方法与具体实施策略 - 基于证据的理论有效性评估
特点
- 符合最新MCP标准完全符合Model Context Protocol 2025-06-18规范
- 基于教育理论基于布鲁姆的分类法等教育理论的分类
- 搜索·过滤在多种条件下进行高效教育数据检索
- 开源可依据MIT许可证自由使用和修改
- TypeScript注重类型安全性的实现
- 版权清晰通过虚拟数据完全规避版权问题
重要注意事项
关于虚拟数据
本项目所提供的教科书和教材数据库由生成式AI创建的完全虚构的虚拟数据是的。
⚠️ 免责声明:
- 虚构的出版社所有教科书公司的名称均为虚构
- 虚拟ISBNISBN号码是虚构的
- 虚构的认证编号文部科学省的检定认证号码并不存在
- 虚拟联系人所记载的联系方式(邮件、电话等)并不存在
- 版权处理在知识共享许可协议下提供,避免了版权问题
✅ 使用目的:
- 作为教育系统开发的示例数据
- 作为MCP协议的实现示例
- 作为教育数据库结构的参考
- 用于开发和测试AI教育应用
❌ 使用限制:
- 请勿将其作为实际教育现场中的教科书信息使用
- 商用时请注明为虚拟数据
- 请注意不要与真实存在的教科书公司的信息混淆
关于学习指导要领数据
学习指导要领数据由文部科学省公开2017、2018、2019年度修订版学习指导要领是基于此而制定的,并反映了实际的教育标准。
📚 参考资料:
- 2017、2018、2019年修订版学习指导要领及解说 | 文部科学省
- 小学学习指导要领(平成29年告示)
- 中学学习指导要领(平成29年告示)
- 《高等学校学习指导要领》(平成30年告示)
- 特殊教育学校学习指导要领(平成31年告示)
我们从这些官方文件中,系统地整理出学科目标、内容、评价观点等,并将其数据库化。
安装
前提条件
- Node.js 18.0.0 或更高版本
- npm 或 yarn
安装(常规安装)
# リポジトリのクローン
git clone https://github.com/nahisaho/open-tenjin-mcp.git
cd open-tenjin-mcp
# 依存関係のインストール
npm install
# TypeScriptのビルド
npm run build
# サーバーの起動
npm start在开发环境中的执行
# 開発モードで起動(tsx使用)
npm run dev使用Docker进行部署
Open Tenjin MCP可以作为Docker容器轻松部署。
前提条件
- Docker 20.0.0及以上版本
- docker-compose 2.0.0 及以上版本
在Docker中的启动方法
方法1:使用部署脚本(推荐)
# リポジトリのクローン
git clone https://github.com/nahisaho/open-tenjin-mcp.git
cd open-tenjin-mcp
# Dockerイメージをビルド
./deploy.sh build
# または
npm run docker:build
# プロダクション環境で起動
./deploy.sh start
# または
npm run docker:start
# コンテナの状態確認
./deploy.sh status
# または
npm run docker:status
# ログの確認
./deploy.sh logs
# または
npm run docker:logs方法2:使用Makefile
# Dockerイメージをビルド
make docker-build
# Dockerコンテナを起動
make docker-run
# コンテナを停止
make docker-stop
# 全てを削除
make docker-clean
# ワンコマンドでビルド&起動
make docker-all方法3:直接使用docker-compose
# プロダクション環境で起動
docker-compose up -d open-tenjin-mcp
# 開発環境で起動
docker-compose up -d open-tenjin-mcp-dev
# ログ確認
docker-compose logs -f
# 停止
docker-compose down方法3:直接使用Docker命令
# イメージをビルド
docker build -t open-tenjin-mcp:latest .
# コンテナを起動
docker run -d \
--name open-tenjin-mcp \
--restart unless-stopped \
-v $(pwd)/logs:/app/logs \
-e NODE_ENV=production \
-e MCP_LOG_ENABLED=true \
open-tenjin-mcp:latest可用命令
部署脚本(deploy.sh)则可以使用以下命令:
./deploy.sh build # Dockerイメージをビルド
./deploy.sh start # プロダクション環境で起動
./deploy.sh dev # 開発環境で起動
./deploy.sh stop # コンテナを停止
./deploy.sh restart # コンテナを再起動
./deploy.sh logs # ログを表示
./deploy.sh status # コンテナの状態を確認
./deploy.sh clean # コンテナとイメージを削除
./deploy.sh help # 使用方法を表示设置环境变量
在Docker容器中,可以设置以下环境变量:
# 基本設定
NODE_ENV=production # 実行環境(production/development)
# ログ設定
MCP_LOG_ENABLED=true # ログ機能の有効/無効
MCP_LOG_LEVEL=info # ログレベル(debug/info/warning/error)
MCP_LOG_DIR=/app/logs # ログディレクトリ
MCP_LOG_INCLUDE_PARAMS=false # リクエストパラメーターの記録数据持久化
日志文件 ./logs 它会被挂载到目录中,即使重启容器,数据也会得以保留。
在Docker环境中的注意事项
- 由于MCP服务器通过标准输入输出(stdio)进行通信,因此通常无需开放端口
- 通过客户端应用程序(如Claude Desktop等)直接运行容器内的进程来使用
- 在开发环境中,我们会使用卷挂载来反映源代码的更改
使用来自GitHub Container Registry
通过GitHub Actions,Docker镜像将被自动构建,并在GitHub Container Registry中发布:
# 最新版をプル
docker pull ghcr.io/nahisaho/open-tenjin-mcp:latest
# 直接実行
docker run -d \
--name open-tenjin-mcp \
--restart unless-stopped \
-v $(pwd)/logs:/app/logs \
-e NODE_ENV=production \
-e MCP_LOG_ENABLED=true \
ghcr.io/nahisaho/open-tenjin-mcp:latest可用标签:
latest- main分支的最新版本v1.2.0- 语义版本标签main- 主分支develop- 开发分支
使用方法
作为MCP客户端的使用
Open Tenjin MCP可通过支持MCP的客户端(如Claude Desktop、Cursor等)使用。
在Claude Desktop中的设置示例
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"open-tenjin": {
"command": "node",
"args": ["/path/to/open-tenjin-mcp/dist/index.js"]
}
}
}可用的工具
1. 学习指导要领搜索(search_curriculum)
// 小学校算数の学習指導要領を検索
{
"educationStage": ["elementary"],
"subject": ["arithmetic"],
"keywords": ["数と計算"]
}2. 教材教辅搜索(search_textbooks_materials)
// 小学2年生向けの算数教科書を検索
{
"textbookFilter": {
"educationStage": ["elementary"],
"subject": ["arithmetic"],
"grade": ["elementary_2"]
}
}3. 教育理论搜索(search_education_theories)
// 構成主義学習理論を検索
{
"field": ["constructivism"],
"applicableStages": ["elementary", "lower_secondary"],
"keywords": ["協調学習", "能動的学習"]
}4. 获取详细信息
get_curriculum_detail获取详细的教学指导大纲get_textbook_detail获取教材详细信息get_material_detail获取教材详细信息get_education_theory_detail获取详细的教育理论
资源访问
通过使用MCP的资源功能,可以直接访问教育数据:
curriculum://guideline/{id}教学大纲textbook://book/{id}教科书material://resource/{id}教材theory://concept/{id}教育理论
API规范
数据模型
学习指导要领(Curriculum Guideline)
interface CurriculumGuideline {
id: string;
title: string;
educationStage: EducationStage;
subject: Subject;
version: string;
publishedDate: Date;
effectiveDate: Date;
units: CurriculumUnit[];
generalObjectives: string[];
overallGoals: string[];
metadata: {
documentUrl?: string;
officialCode?: string;
revision?: string;
};
}教科书
interface Textbook {
id: string;
title: string;
publisher: Publisher;
authors: string[];
isbn?: string;
type: TextbookType;
educationStage: EducationStage;
subject: Subject;
targetGrades: Grade[];
approvalStatus: ApprovalStatus;
tableOfContents: TableOfContentsItem[];
// ...その他のプロパティ
}教材(Educational Material)
interface EducationalMaterial {
id: string;
title: string;
description: string;
type: MaterialType;
usageContext: UsageContext[];
difficulty: DifficultyLevel;
educationStage: EducationStage;
subject: Subject;
targetGrades: Grade[];
resources: MaterialResource[];
// ...その他のプロパティ
}枚举型
教育阶段
elementary小学junior_high中学high高等学校special_needs特殊支援学校
科目(Subject)
japanese国语(汉语)social_studies社会arithmetic/mathematics算术·数学science理科english外语(英语)- 等等诸多
学年(Grade)
elementary_1~elementary_6小学一年级至六年级junior_high_1~junior_high_3初中一至三年级high_1~high_3大学一年级至三年级
开发
项目结构
open-tenjin-mcp/
├── src/
│ ├── models/ # データモデル定義
│ ├── services/ # ビジネスロジック
│ ├── tools/ # MCPツール定義
│ ├── resources/ # MCPリソース定義
│ ├── data/ # サンプルデータ
│ ├── server.ts # メインサーバークラス
│ └── index.ts # エントリーポイント
├── tests/ # テストファイル
├── docs/ # ドキュメント
└── dist/ # ビルド出力脚本
# ビルド
npm run build
# 開発サーバー起動
npm run dev
# プロダクションサーバー起動
npm start
# テスト実行
npm test
# Lint
npm run lint
# フォーマット
npm run format数据的添加·更新
教育数据 src/data/ 由以下JSON文件进行管理:
curriculum-guidelines.json学习指导要领(2017、2018、2019年修订版学习指导要领(依据官方数据)textbooks.json教科书信息(用于生成AI的虚拟数据)educational-materials.json教材信息(生成式AI创建的虚拟数据)
如需添加新数据,请编辑相应的JSON文件。
⚠️ 编辑教科书和教材数据时的注意事项:
- 请勿使用真实存在的出版社名称或受版权保护的内容
- 请使用虚构的公司名称、ISBN和认证编号
- 请采用知识共享许可协议或虚拟许可协议
许可证
麻省理工学院许可证
贡献
- 对此仓库进行派生
- 创建特性分支
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推动分支(
git push origin feature/amazing-feature) - 创建拉取请求
支持
- 问题:
- 讨论:
相关项目
此项目可与以下教育支援系统联动:
- 教育设计师.md教育设计师AI Copilot
- TA_直接指令.md直接指导型教学助理
- TA_查询促进.md促进思考型教学助手
在所有系统中,文部科学省的2017、2018、2019年修订版学习指导要领能够利用基于该标准的准确教育基准数据。
更新历史
版本1.2.0(2025年10月23日)
- 完全支持Docker
- 通过多阶段构建优化的Docker镜像 - 在docker-compose.yml中实现开发和生产环境的双配置 - 提供自动部署脚本(deploy.sh) - 使用Makefile的简单操作命令 - 加强安全性(由非root用户执行)
- GitHub Actions CI/CD 管道
- 推送时自动构建Docker镜像 - GitHub Container Registry中的自动发布 - 支持多平台(amd64/arm64) - 语义化版本控制协作
- 正式部署功能
- systemd服务化脚本(install-production.sh) - 确保在生产环境中的稳定运行 - 日志轮转和监控功能 - 通过环境变量进行灵活的设置管理
- 明确项目性质
- 明确其作为教育数据MCP效果验证原型的地位 - 建议用于研究和开发目的 - 增加关于实验性质和数据质量的注意事项
- 充实教育理论数据库
- 收录了主要的50种教育理论并明确记载 - 对现代教育学中重要理论的系统整理 - 兼顾实用性和学术价值
版本1.1.0(2024年10月23日)
- 完全符合MCP规范2025-06-18
- 符合最新的Model Context Protocol规范 - 支持结构化工具输出(structuredContent) - 恰当的初始化流程与能力协商 - 使用标准JSON-RPC错误代码 - 工具/呼叫响应的isError现场应对
- 大幅扩充教科书和教材数据库
- 实现全教育阶段(小学、初中、高中、特殊教育)的全面覆盖 - 教材总数46册(小学14科、中学13科、高中11科) - 六家虚构教科书公司的版权清晰数据提供 - 明确生成AI的虚拟数据并添加免责声明
版本1.0.0(2024年10月22日)
- 首次发布
- 学习指导要领、教科书、教材的基本数据模型实现
- 支持MCP协议v2024-11-05版
- 基本的搜索和筛选功能
- 提供样本数据
访问日志功能
Open Tenjin MCP提供访问日志功能,用于记录请求的使用情况。
日志设置
可以通过环境变量来控制设置:
# ログ機能の有効/無効(デフォルト: true)
export MCP_LOG_ENABLED=true
# ログレベル(debug, info, warning, error)(デフォルト: info)
export MCP_LOG_LEVEL=info
# ログディレクトリ(デフォルト: logs)
export MCP_LOG_DIR=logs
# リクエストパラメーターの記録(プライバシー保護のためデフォルト: false)
export MCP_LOG_INCLUDE_PARAMS=false日志文件
- 地点:
logs/access-YYYY-MM-DD.jsonl - 形式JSON Lines(一行一条记录)
- 轮换以天为单位,最多保留7天
- 最大尺寸10MB/文件
日志内容示例
{
"timestamp": "2025-10-23T10:30:15.123Z",
"level": "info",
"method": "tools/call",
"requestId": 4,
"params": {"[PARAMS_EXCLUDED]": "プライバシー保護のためパラメーターを除外"},
"responseTime": 45,
"message": "MCP Request: tools/call"
}隐私保护
- 排除参数默认情况下不会记录请求参数
- 保密信息遮蔽自动隐藏密码、令牌、密钥等机密字段
- 客户信息可通过设置进行控制
今后的计划
- \[ \] 学习指导要领的持续更新(对应文部科学省的修订)
- \[ \] 增加更详细的课程大纲解说
- \[ \] 与教科书审查数据库的协作
- \[ \] 教材评价·评论功能
- \[ \] 学习与分析学合作
- \[ \] 支持多语言(英语、中文等)
- \[ \] Web UI管理界面的开发
- \[x\] 实现访问日志功能
