内容
# 日本数据MCP
一个 [MCP](https://modelcontextprotocol.io/) 服务器,为AI代理提供跨源访问**日本公共数据 — 法律、公司和统计数据 — 标准化为英文元数据**,每个响应都有来源归属。
**实时端点:** `https://japan-data-mcp.netlify.app/mcp` (MCP通过Streamable HTTP)— 托管且免费,无需安装,无需法律工具的API密钥。
大多数权威的日本公共数据API只返回日语字段,这对非日语代理和工具来说是一个障碍。该服务器查询官方政府API并返回干净的、英文标签的结构化元数据,以便AI代理可以识别和引用日本法律/公司/统计数据,而无需阅读日语。有什么不同:
- **英文标准化元数据**(法律类型、时代、日期、类别)每个记录都有 — 原始法律文本保持真实的日语,绝非非官方翻译。
- **强制来源归属** 每个响应都有(日本政府标准条款使用v2.0,国家税务局无担保声明,e-Stat信用线)— 安全地引用下游。
- **托管实时端点** — 代理通过HTTP连接;无需在本地运行。
- **相关性排序法律搜索** — 结合e-Gov标题搜索和全文搜索,因此像`個人情報保護`这样的查询会首先返回规范法(原始e-Gov API按法律编号顺序返回匹配项,最旧的优先)。
## 连接
克劳德代码:
```sh
claude mcp add --transport http japan-data https://japan-data-mcp.netlify.app/mcp
```
克劳德桌面 / 光标 / 任意MCP客户端(Streamable HTTP):
```json
{
"mcpServers": {
"japan-data": {
"type": "streamable-http",
"url": "https://japan-data-mcp.netlify.app/mcp"
}
}
}
```
## 工具
| 工具 | 上游来源 | API密钥 | 状态 |
|---|---|---|---|
| `search_japanese_law` | e-Gov法律API(标题+全文,相关性排序) | 不需要 | 完全正常(针对实时API验证) |
| `get_law_text` | e-Gov法律数据API | 不需要 | 完全正常 — 整个法律或单个条款 |
| `search_corporation` | 公司编号Web-API(国家税务局) | 需要`appId` | 使用密钥正常;没有密钥,返回英文注册指南 |
| `search_statistics` | e-Stat API(统计局) | 需要`appId` | 与上述相同 |
典型的代理流程 — 两个步骤都不需要密钥:`search_japanese_law`识别法律,然后`get_law_text`引用其确切文本。
## 真实示例(从实时端点捕获)
**1. 查找规范法律。** `search_japanese_law`使用`{"keyword": "個人情報保護", "limit": 2}` — 注意顶部结果是个人信息保护法本身,而不是仅仅提及该短语的最旧法律:
```json
{
"query": "個人情報保護",
"title_match_count": 17,
"full_text_match_count": 694,
"order": "reranked: title matches first, weighted by law type (Act highest) and query coverage",
"results": [
{
"law_id": "415AC0000000057",
"law_number_ja": "平成十五年法律第五十七号",
"law_type": "Act (法律)",
"era": "Heisei",
"year": 15,
"promulgation_date": "2003-05-30",
"title_ja": "個人情報の保護に関する法律",
"title_reading_kana": "こじんじょうほうのほごにかんするほうりつ",
"revision_id": "415AC0000000057_20260624_508AC0000000046",
"match": "title"
}
],
"attribution": "来源:e-Gov法律搜索API(日本数字庁)。日本政府标准条款使用v2.0。原始文本为日语;英文字段为标准化元数据,非官方翻译。"
}
```
**2. 引用其确切文本。** `get_law_text`使用`{"law_id": "415AC0000000057", "article": "1"}`:
```json
{
"law_id": "415AC0000000057",
"title_ja": "個人情報の保護に関する法律",
"article": "1",
"text_ja": "(目的)\n第一条\nこの法律は、デジタル社会の進展に伴い個人情報の利用が著しく拡大していることに鑑み、個人情報の適正な取扱いに関し、基本理念及び政府による基本方針の作成その他の個人情報の保護に関する施策の基本となる事項を定め、(…)個人の権利利益を保護することを目的とする。",
"total_chars": 329,
"truncated": false,
"attribution": "来源:e-Gov法律搜索API(日本数字庁)。日本政府标准条款使用v2.0。原始文本为日语;英文字段为标准化元数据,非官方翻译。"
}
```
(第二个示例在此README中缩写为`(…)`;实时响应携带完整的条款文本。)
从shell快速检查:
```sh
curl -s https://japan-data-mcp.netlify.app/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_law_text","arguments":{"law_id":"321CONSTITUTION","article":"9"}}}'
```
一个简单的`GET /mcp`返回服务器信息和工具列表(适用于活动检查)。工具调用使用`POST /mcp`上的JSON-RPC 2.0(`initialize` → `tools/list` → `tools/call`)。
## 使用透明度
匿名聚合使用情况在 [`/stats`](https://japan-data-mcp.netlify.app/stats) 上公开。没有存储原始IP地址或用户代理 — 客户端仅通过盐渍哈希计数。
## 本地运行
```sh
node test/local-test.mjs
```
`ALL PASS`表示MCP `initialize` / `tools/list` / `tools/call`响应,法律搜索返回规范法,并通过实时e-Gov API提取实际条款文本。
## 部署
服务器是一个Web标准获取处理程序(`export default { fetch(request, env) }`),因此它在任一平台上运行:
- **Netlify** (当前实时部署):一个薄适配器在`netlify/functions/mcp.mjs`中将其公开在`/mcp`并通过Netlify Blobs记录匿名使用情况。使用`netlify deploy --prod`部署。
- **Cloudflare Workers**:`wrangler deploy`(参见`wrangler.toml`;遥测仅限Netlify)。
两个API密钥作为环境变量注入(`HOJIN_APP_ID`,`ESTAT_APP_ID`);法律工具不需要密钥,因此即使没有它们,服务器也很有用。从 [公司编号Web-API](https://www.houjin-bangou.nta.go.jp/webapi/) 和 [e-Stat API](https://www.e-stat.go.jp/api/) 获取密钥。
## 许可证
MIT