补助金搜索API服务

为付费会员提供的补助金MCP聊天后端基础仓库,通过封装日本数字厅的Jgrants公开API,支持从聊天界面(Discord/LINE/Web)以自然语言进行补助金搜索、详情查看、附件摘要和监控。

  • by cursorvers
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 cursorvers/jgrants-mcp

使用说明

jgrants mcp

Paid面向会员的补助金MCP聊天后端的基本存储库。

数码厅的 J发布API 的 MCP(服务器) 作为包装

聊天UI(Discord/LINE/Web)中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。

  • MCP服务器主机:Python 3.11 + FastAPI 相当的构成

  • 操作:GitHub Actions 根据CI / Security / Release / Backup 假定管线

  • 上层:Kamui OS / Cursor IDE 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长


1.目录配置(假定)

/jgrants_mcp_server   # MCP サーバ本体(FastAPI / Uvicorn)+ MCP エンドポイント
/tests                # pytest で実行するテストコード
/.github/workflows    # CI・Security・Release・Backup ワークフロー
/docs                 # GitHub 設定・運用ノート
/scripts              # GitHub 設定検証用スクリプトなど

2.所需环境变量(MCP服务器)

变数名 说明 既定値
API_BASE_URL J发布API 基础URL https://api.jgrants-portal.go.jp/exp/v1/public
JGRANTS_FILES_DIR MCP 将文件持久化的目录 ./jgrants_files

CI 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。


3.本地开发(最短路线)

3-1. 前提

  • Python 3.11 以上

  • uvicorn 等等 requirements.txt 从安装

3-2.安装,安装

# 仮想環境
python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 依存インストール
python3 -m pip install -r requirements.txt

3-3. MCP 启动服务器

# デフォルト: http://0.0.0.0:8000
uvicorn jgrants_mcp_server.server:app --host 0.0.0.0 --port 8000

3-4.动作确认

# ステータス
curl http://localhost:8000/health

# 設定値
curl http://localhost:8000/v1/jgrants-info

# OpenAPI UI(ブラウザ)
open http://localhost:8000/docs

MCP客户机和LLM 既然…就 http://localhost:8000 的 「MCP 作为服务器“注册使用。


4.测试

4-1.单元测试

python3 -m pip install -r requirements.txt
pytest tests/test_core.py

(将来 tests/ 在下面添加案例pytest 设想可以单独执行全部的构成)

4-2.开发最低规则(建议)

  • 1 PR 一个论点MCP添加工具、修复错误等)

  • 添加新端点工具时 tests/ 添加一个或多个

  • README 啊docs 需要反映的变更相同PR 包括在内


5.GitHub操作(CI/安全/发布/备份)

假定此存储库包含以下工作流:。

5-1.持续集成

  • 触发器:push / pull_request

  • Python 3.11

  • pip 使用缓存

  • pytest 执行测试(失败时不可合并)

5-2.安全

  • CodeQL + Dependency Review 的 main 对分支执行

  • 触发器:push / pull_request /每周计划

  • 依赖性差异的脆弱性 fail-on-severity=high 的PR 阻止

  • GitHub Advanced Security 即使在没有警告的情况下,也可以调整为成功

5-3.发布

  • 触发器:v*.*.* 标签

  • docker/build-push-action 的GHCR 发布映像

  • sigstore/cosign-installer 根据keyless 签名(OIDC)

  • cosign 签名具有重试逻辑(最多3次,间隔5秒)

5-4. Nightly backup(任意)

  • Supabase 等备份和审计日志UTC 18:00 取得

  • actions/upload-artifact 保存30天

  • 在实际操作中不需要时可以禁用


6.存储库秘密/变量

名前 用途
JGRANTS_API_BASE API_BASE_URL 的README 仅在想要设置为设想值以外的情况下设置
SUPABASE_SERVICE_ROLE Nightly 用于备份等场合
GHCR_IMAGE 默认值 ghcr.io/cursorvers/jgrants-mcp 想覆盖的情况下使用

签名是 cosign 的,之keyless 使用模式(OIDC)不需要追加密钥 Release 工作流包括: id-token: write 请授予权限。


7.体系结构映像(文本)

本资料库的职责是 「MCP作为服务器J发布API“ 是。

[LLM / Chat UI]  --(MCP)-->  [jgrants-mcp (このリポジトリ)]
                                     │
                                     └─ Jグランツ公開API
  • 这个存储库始终作为“MCP的入口”设计。

  • 在不同的存储库/分层中处理顶级的管理操作系统和编辑器。


8.开发流程示例

  1. Issue / 任务(例如:MCP-101),建立

  2. 创建分支:feat/mcp-health-endpoint 等等

  3. 写代码

    • FastAPI 端点和MCP 添加工具

    • 根据需要 tests/ 添加测试

  4. pytest 本地测试

  5. PR 创建

  6. CI / Security 如果检查通过的话 main 合并到

  7. 标签 vX.Y.Z 添加-Release 在工作流程中GHCR 反映


9. GitHub 设置自动化和核对表

docs/github-settings.md 在工作空间的边缘GitHub Settings 画面操作 gh api 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。 Actions 允许列表Workflow 权限分叉PR 批准Environment 批准规则Branch ProtectionSecret Scanning Push Protection 对较大场景进行渲染期间已观察到该故障。

9-1. GitHub 验证设置

scripts/check_github_settings.py 来修改标记元素的显示属性GitHub 自动验证存储库设置是否符合要求。

# GitHub トークンを環境変数に設定
export GITHUB_TOKEN=$(gh auth token)

# または
export GH_TOKEN=$(gh auth token)

# 検証スクリプトを実行
python3 scripts/check_github_settings.py --repo cursorvers/jgrants-mcp

此脚本验证以下内容:

  • Actions permissions(允许的操作列表)

  • Environments(dev, stg, prod 的存在)

  • Branch protection(main 分支保护规则)

  • 秘密扫描推送保护

CI 啊Settings 通过在变更后执行该命令 您可以继续检查护栏是否保持完好。


10.参考文档

  • docs/github-settings.md:GitHub 设置详细要求定义

  • docs/ui-setup-guide.md:GitHub UI 中的设置步骤

  • docs/workflow-troubleshooting.md:工作流故障排除指南

  • docs/github-settings-status.md:当前设置和工作流执行结果

  • docs/workflow-improvements.md:工作流改善履历