Skip to main content
Glama
chercr

pingcode-health-mcp

by chercr

🔍 PingCode 项目健康度监控

让 PM 在 Claude Code 或 IM 群里一眼看清项目状态 —— 聚合、风控、自动告警。

Python License

这是什么?

对接 PingCode Open API,提供两个入口:

入口

场景

实现

MCP Server

PM 在 Claude Code 里直接对话查询

fastmcp stdio 模式,5 个工具

IM 机器人

PM 在企微/钉钉群里 @bot 查询

FastAPI + 钉钉 Stream WebSocket

同一套代码、同一份配置,两种输出格式(Markdown 表格 vs 群聊简短消息)。

┌──────────────┐     ┌──────────────────────────┐     ┌──────────────┐
│  Claude Code │────▶│  MCP Server (stdio)      │────▶│              │
│  (PM 本地)   │     │  src/server.py           │     │              │
└──────────────┘     └──────────────────────────┘     │   PingCode   │
                                                       │   Open API   │
┌──────────────┐     ┌──────────────────────────┐     │              │
│  钉钉/企微群 │────▶│  Bot (HTTP + Stream)     │────▶│              │
│  (群里 @bot) │     │  src/bot.py              │     │              │
└──────────────┘     └──────────────────────────┘     └──────────────┘
                            │
                            ▼
                     ┌──────────────┐
                     │  Web 管理后台 │
                     │  :8080/admin │
                     └──────────────┘

Related MCP server: targetprocess-mcp

功能一览

5 个 MCP 工具

工具

用途

list_pingcode_projects

列出所有项目

"看看有哪些项目"

get_project_health

项目健康度仪表盘

"XX项目 状态怎么样"

get_sprint_status

Sprint / 迭代进度

"XX项目 冲刺进度"

get_risk_items

风险项明细

"哪些逾期了"

query_work_items

灵活查询

"张三有哪些未完成的 task"

群机器人能力

  • 在企微/钉钉群里 @机器人 XX项目 健康度 → 自动回复

  • 支持模糊项目名匹配("储能BMS" → 自动找到对应项目)

  • 可选 DeepSeek AI 兜底(规则匹配不上时用自然语言理解)

  • 风险自动推送(red/yellow → 群里弹告警)

Web 管理后台

浏览器打开 http://localhost:8080/admin

  • PingCode 认证配置 + 一键测试连接

  • 健康度阈值、状态标签自定义

  • 通知推送、Bot、隧道、AI 所有配置

  • 保存即时生效,无需重启

快速开始

1. 安装

git clone https://github.com/YOUR_USER/pingcode-health-mcp.git
cd pingcode-health-mcp

# 推荐:使用虚拟环境
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

pip install -e .

2. 配置

三种方式任选一种:

# 方式 A: CLI 配置向导(推荐新手)
python -m src.setup

# 方式 B: Web 管理后台(推荐有桌面环境)
python -m src.bot
# → 浏览器会自动打开 http://localhost:8080/admin
# → 在页面上填写 PingCode 凭证,点击"保存配置"

# 方式 C: 手动编辑
cp config.example.yaml config.yaml
# 编辑 config.yaml,填写 pingcode.client_id 和 client_secret

3. 连接 Claude Code

编辑项目根目录的 .claude/mcp.json(或 Claude Code 全局设置):

{
  "mcpServers": {
    "pingcode-health": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/pingcode-health-mcp",
      "description": "PingCode 项目健康度监控"
    }
  }
}

重启 Claude Code,就可以直接问 "帮我看看 XX 项目的健康度"。

4. 部署到服务器(Bot 用)

# 上传代码到服务器
scp -r . user@your-server:/opt/pingcode-health/

# SSH 到服务器,运行部署脚本
ssh user@your-server
cd /opt/pingcode-health
sudo bash deploy/setup.sh

# 填写配置后启动
sudo systemctl start pingcode-bot

项目结构

pingcode-health-mcp/
├── README.md
├── pyproject.toml              # 依赖 + 入口点
├── config.example.yaml         # 配置模板
├── .env.example                # 环境变量模板
├── mcp.md                      # 需求文档
├── setup.py                    # CLI 配置向导入口
│
├── src/
│   ├── server.py               # MCP Server — 5 个 tool
│   ├── pingcode_client.py      # PingCode API — OAuth2 认证 + 分页 + 缓存
│   ├── health.py               # 健康度聚合引擎 — 统计 + 风险评级
│   ├── notifier.py             # Webhook 推送 — 企微/钉钉/飞书
│   ├── bot.py                  # Bot HTTP 服务 + Web 管理后台
│   ├── dingtalk_stream_bot.py  # 钉钉 Stream 模式机器人
│   ├── dingtalk_crypto.py      # 钉钉加解密
│   ├── config.py               # 配置管理 — YAML + 环境变量
│   ├── models.py               # 数据模型
│   ├── tunnel.py               # 内网穿透 — cloudflared / ngrok
│   └── setup.py                # CLI 配置向导
│
├── tests/
│   └── test_health.py
│
└── deploy/
    └── setup.sh                # Ubuntu 部署脚本 + systemd

配置参考

配置项

环境变量

config.yaml

必填

Client ID

PINGCODE_CLIENT_ID

pingcode.client_id

Client Secret

PINGCODE_CLIENT_SECRET

pingcode.client_secret

Base URL

PINGCODE_BASE_URL

pingcode.base_url

Webhook URL

NOTIFICATION_WEBHOOK_URL

notification.webhook_url

通知类型

NOTIFICATION_TYPE

notification.type

钉钉 AppKey

DINGTALK_APP_KEY

bot.dingtalk_app_key

钉钉 AppSecret

DINGTALK_APP_SECRET

bot.dingtalk_app_secret

AI API Key

DEEPSEEK_API_KEY

ai.api_key

监听端口

PORT

bot.port

常见问题

Q: PingCode Client ID / Secret 在哪找? 登录 PingCode 开放平台 → 应用管理 → 创建"自研应用" → 选择 OAuth2 client_credentials 模式 → 复制凭证。

Q: 钉钉回调 URL 验证失败? 确保事件订阅和消息接收都切换为 Stream 模式(不要混用 HTTP 模式),且"开发管理" Tab 中没有残留的 HTTP 地址配置。

Q: MCP Server 连不上? 检查 config.yaml(或环境变量)中 client_idclient_secret 是否已填写。运行 python -m src.setup 可诊断。

Q: 内网 Bot 怎么让企微/钉钉回调到?config.yaml 中设置 tunnel.enabled: true,Bot 启动时自动启动 cloudflared / ngrok 隧道。

Q: 需要监控多个项目的健康度? list_pingcode_projects 列出所有项目 → 用 project_id 逐个查,或让 AI 批量调用。

License

MIT

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chercr/pingcode-health-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server