日本史3D地图MCP服务器
提供日本历史古迹数据Model Context Protocol (MCP)服务器。
本地开发Python版本和云生产Cloudflare Workers提供版本。
机能
- 获取城市列表
- 都市内の史跡一覧取得
- 关键字搜索
- 获取史迹详细信息
项目配置
japanese_history_mcp/
├── local/ # ローカル開発・テスト用
│ ├── server.py # Python MCP (FastMCP) - ローカルDB版
│ ├── cloud_bridge.py # Python MCP - CloudflareAPI版(Node.js不要)
│ └── japanese_history.db # SQLite データベース
├── cloud/ # クラウド本番用
│ ├── src/index.ts # Cloudflare Workers MCP
│ ├── wrangler.toml # Cloudflare設定
│ └── package.json
├── data/
│ ├── sites.json # マスターデータ
│ └── migrate.py # データ移行スクリプト
├── requirements.txt # Python依存関係
└── README.md______________________________________________________________________
安装,安装
1.数据准备
主数据(data/sites.json)生成各环境的数据库:
# Python環境のセットアップ(初回のみ)
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
# データ移行実行
python data/migrate.py这将生成以下内容:
local/japanese_history.db(SQLite)cloud/init_d1.sql(D1用SQL)
______________________________________________________________________
本地开发(Python版)
起动方法
cd local
python server.pyClaude Desktop中的设置
claude_desktop_config.json 添加到:
{
"mcpServers": {
"japanese_history": {
"command": "python",
"args": ["C:\\Users\\YOUR_USERNAME\\Desktop\\japanese_history_mcp\\local\\server.py"],
"env": {}
}
}
}注意:请使用绝对路径指定路径。
______________________________________________________________________
云API使用(两种方法)
方法1:Python API桥接(推荐・Node.js不需要
特徴:
- ✅ Node.js不需要(仅限Python)
- ✅ 国土交通省MCP与服务器相同的体系结构
- ✅ 设置简单
- ✅ Cloudflare Workers API直接调用
设置:
- 安装所需的相关性
pip install httpx- Claude Desktop配置
{
"mcpServers": {
"japanese_history_api": {
"command": "python",
"args": ["C:\\Users\\YOUR_USERNAME\\Desktop\\japanese_history_mcp\\local\\cloud_bridge.py"]
}
}
}优点:
- Python仅在环境中完成
- 与本地版相同的设定形式
- 外部API可用作
______________________________________________________________________
方法2:Node.js桥接(传统方法)
特徴:
- Node.js通过桥梁Workers API连接
- MCP JSON-RPC协议HTTP转换为
前提条件:
- Node.js 18以降
设置:
- 创建桥文件(
workers_bridge/index.js)
- Claude Desktop配置
{
"mcpServers": {
"japanese_history_cloud": {
"command": "node",
"args": [
"C:\\path\\to\\workers_bridge\\index.js"
]
}
}
}______________________________________________________________________
云生产部署
前提条件
- Node.js 18以降
- Cloudflare账户
- 牧马人CLI
部署过程
1. D1创建数据库
cd cloud
npx wrangler d1 create japanese-history-db已输出database_id的wrangler.toml设置为:
[[d1_databases]]
binding = "DB"
database_name = "japanese-history-db"
database_id = "YOUR_DATABASE_ID_HERE"2.数据库初始化
npx wrangler d1 execute japanese-history-db --remote --file=init_d1.sql3.部署
npm install
npm run deploy部署后Workers URL显示:
https://japanese-history-mcp.YOUR_SUBDOMAIN.workers.dev这URL在上述的“方法1”或“方法2”中使用。
______________________________________________________________________
开发工作流
数据更新时
data/sites.json编辑- 运行迁移脚本:
python data/migrate.py- 本地测试:
cd local
python server.py- 部署到云:
cd cloud
npx wrangler d1 execute japanese-history-db --file=init_d1.sql
npm run deploy______________________________________________________________________
可用工具
list_cities
获取已注册城市列表
参数:无
list_sites_in_city
取得指定城市的史迹一览表
参数:
city_code(string): 城市代码(例如“fukuoka”)
search_sites
用关键词搜索史迹
参数:
keyword(string): 搜索关键字
get_site_detail
获取史迹的详细信息
参数:
site_id(string): 史迹ID
______________________________________________________________________
故障排除
本地版不动
- Python 3.8确认以后是否安装
- 确认虚拟环境是否已启用
pip install -r requirements.txt执行
云版无法移动
wrangler.toml的,之database_id确认是否正确- D1确认数据库是否已初始化
- 在部署日志中检查错误
______________________________________________________________________
许可证
MIT许可证
貢献
欢迎拉要求!
- 分叉此存储库
- 创建特征分支
- 提交更改
- 推送以创建拉式请求
