带有应用程序SDK的e-Gov MCP(电子政务管理平台/系统)
该项目将OpenAI Apps SDK整合进了可访问日本电子政务法令数据库API的MCP服务器。用户可使用ChatGPT和美观的用户界面来搜索和浏览法令。
🎯 主要功能
- 🔍 看起来像一个放大镜的符号,通常用于表示搜索或查看细节。 法律检索 - 用关键词搜索日本的法律法规(如法人税法、消费税法等)
- 文件/纸张 条款说明 - 以易读的用户界面显示特定条款或项
- 🎨 表示“美术”或“绘画”的意思。 丰富用户界面 - 使用React和Tailwind CSS构建的美观小部件
- 🌐 代表“地球”或“互联网”的符号,可翻译为“🌐(地球/互联网)”。不过,在实际语境中,这个符号通常不需要直接翻译,而是根据上下文来解释其含义。如果需要一个简短的翻译来表示这个符号,可以使用“🌐(地球)”或“🌐(互联网)”这样的表述。 与ChatGPT合作 - 通过Apps SDK实现ChatGPT的无缝集成
📋 前提条件
- Node.js 18及以上版本 - 然后进行安装
- npm(Node Package Manager,Node包管理器) - 已随Node.js一起附带
- ngrok (可选)- 如需将本地服务器对外公开 ngrok.com
🚀 快速入门(面向非工程师)
步骤1:项目设置
# 1. プロジェクトフォルダに移動
cd /Users/hiroshimago/Documents/MCP-folder/e-gov-mcp-apps-sdk
# 2. 依存関係をインストール
npm install
# 3. UIコンポーネントをビルド
npm run build
# ※ または、UIだけ先にビルドする場合
# npm run build:ui步骤2:启动服务器
选项A:正式模式
npm start服务器 http://localhost:8000 然后启动。
选项B:开发模式(需要两个终端)
1号航站楼 - UI开发服务器:
npm run serve
# または
npm run dev2号航站楼 - MCP服务器:
npm run dev:server步骤3:使用ngrok进行外部公开(如用于ChatGPT)
若要使用ChatGPT,则需要将本地服务器公开到互联网上。
3-1 安装ngrok
- ngrok.com(该网站本身是一个用于创建安全隧道,将本地网络服务暴露给公网的服务平台,常用于开发、测试等场景)进行访问
- 创建账户(免费)
- 下载适用于您所用操作系统的ngrok
- 解压下载的文件
- 设置为可从终端使用:
macOS/Linux:
# 解凍したngrokをPATHに追加
sudo mv ngrok /usr/local/bin/Windows:
- 下载ngrok.exe
- 放置在任意文件夹中
- 添加到系统环境变量PATH中
3-2 ngrok的认证设置
从ngrok仪表板获取并设置认证令牌:
ngrok config add-authtoken YOUR_AUTH_TOKEN_HERE3-3 使用ngrok公开服务器
在另一个终端窗口中:
ngrok http 8000将会显示如下输出:
Session Status online
Account あなたの名前 (Plan: Free)
Version 3.x.x
Region Japan (jp)
Latency -
Web Interface http://127.0.0.1:4040
Forwarding https://abc123.ngrok-free.app -> http://localhost:8000重要: https://abc123.ngrok-free.app 该部分是您的公开URL。此URL每次启动ngrok时都会发生变化(付费计划可固定)。
步骤4:连接ChatGPT
- 登录ChatGPT(付费版)
- 设置→打开Connectors(连接器)
- 点击“添加新连接器”
- 请输入以下信息:
名前: e-Gov 法令検索
URL: https://abc123.ngrok-free.app/mcp
説明: 日本の法令を検索・閲覧できます- 保存并激活
步骤5:试用一下
请尝试在ChatGPT中提出以下问题:
法人税法を検索して法人税法の第22条第4項を表示して消費税法を検索して🛠️ 开发者信息
项目结构
e-gov-mcp-apps-sdk/
├── server/ # MCPサーバー(TypeScript)
│ └── index.ts # メインサーバーファイル
├── ui-src/ # UIコンポーネント(React + TypeScript)
│ ├── e-gov-search/ # 法令検索ウィジェット
│ └── e-gov-article/ # 条文表示ウィジェット
├── assets/ # ビルド済みアセット(自動生成)
├── build/ # サーバービルド出力(自動生成)
├── vite.config.mts # Viteビルド設定
├── build-all.mts # ビルドスクリプト
└── package.json # プロジェクト設定可用脚本
# すべてをビルド(UI + サーバー)
npm run build
# UIのみビルド
npm run build:ui
# サーバーのみビルド
npm run build:server
# UI開発サーバー起動(ポート4444)
npm run dev
# UIの静的ファイルサーブ(ビルド後)
npm run serve
# サーバー開発モード(ホットリロード)
npm run dev:server
# 本番サーバー起動
npm start环境变量
在项目路线中 .env 可以创建文件:
# MCPサーバー名(オプション)
MCP_NAME=e-gov-mcp
# サーバーポート(デフォルト: 8000)
PORT=8000
# アセットのベースURL
# ローカル開発: http://localhost:4444
# 本番環境: あなたのCDNまたはホスティングURL
ASSETS_BASE_URL=http://localhost:4444架构
1. MCP服务器(server/index.ts)
- SSE(服务器发送事件) 使用(某技术/协议)的HTTP服务器
- 与e-Gov API v2的通信
- 在工具响应中包含小部件元数据
2. 用户界面小部件(ui-src/)
- React 19 + TypeScript
- Tailwind CSS 然后进行造型
- Lucide React(注:此翻译直接对应英文原词,若“Lucide React”为特定产品或项目名,可能需根据具体背景调整翻译,但此处按字面意思翻译) 以及图标
- 快点 然后构建
3. 数据流
ChatGPT → MCP Server → e-Gov API
↓
Widget HTML + Data
↓
ChatGPT UI (表示)定制
更改小部件的外观
ui-src/e-gov-search/EGovSearchWidget.tsx 或者 ui-src/e-gov-article/EGovArticleWidget.tsx 编辑后:
npm run build:ui添加新小部件
ui-src/new-widget/创建文件夹index.tsx和YourWidget.tsx进行制作npm run build:ui并会自动检测到server/index.ts添加新的工具定义
📚 API规范
可用工具
1. search_laws - 法令搜索
参数:
keyword(字符串,可选):法令名称(部分匹配)lawNum(字符串,可选):法令编号lawType(字符串,可选):法令类别limit(数字,可选):最大获取数量(默认:10)
例:
{
"keyword": "法人税法",
"limit": 5
}2. get_law_data - 获取法令数据
参数:
lawId(字符串,必填):法律IDarticleNum(字符串,可选):条款编号paragraphNum(字符串,可选):项编号
例:
{
"lawId": "340AC0000000034",
"articleNum": "22",
"paragraphNum": "4"
}主要法令的法律标识符
| 法令名称 | 法律条文编号 |
|---|---|
| 公司税法 | 340AC0000000034 |
| 消费税法 | 363AC0000000108 |
| 所得税法 | 322AC0000000033 |
| 继承税法 | 325AC0000000073 |
| 国税通则法 | 337AC0000000066 |
🔧 故障排除
端口已被使用
# ポート8000が使われている場合
PORT=8001 npm start用户界面未显示
- 确认UI是否已构建:
npm run build:ui
ls assets/- 确认资产服务器是否已启动(开发模式):
npm run servengrok连接断开
在免费计划下,会话时长为2小时。若要再次 ngrok http 8000 请执行操作并更新ChatGPT的连接器URL。
电子政务API错误
- 确认网络连接
- 确认e-Gov API是否运行正常:https://laws.e-gov.go.jp/
📖 参考链接
🎓 学习资源
📝 许可证
麻省理工学院(MIT)
🤝 贡献
请通过Issue提交错误报告或功能需求。
______________________________________________________________________
创建日期: 2025年10月\ 版本: 1.0.0
💡 常见问题
问:可以免费使用吗?
A:是的,以下内容免费:
- e-Gov API(免费公开API)
- ngrok(免费计划,有2小时限制)
- 这个MCP服务器(MIT许可)
但是,使用ChatGPT的Apps SDK功能需要付费计划(Plus及以上)。
问:可以部署吗?
A:是的。可以部署到以下服务:
- 渲染
- 铁路
- Heroku
- AWS/GCP/Azure(亚马逊云服务/谷歌云平台/微软Azure云服务)
部署后是环境变量 ASSETS_BASE_URL 请将其更改为部署目标的URL。
问:可以自定义UI吗?
A: 是的。ui-src/ 您可以自由编辑其中的React组件。采用Tailwind CSS进行样式设计。
