
ProjectPulse MCP
io.github.alexbypa由 GitHub 账号 alexbypa 发布v1.10.0更新于 Oct 24, 2026
Monitor GitHub repo health, DORA metrics and CI signals from your AI assistant.
概览
本地 MCP 服务器,让 AI 助手为 GitHub 仓库打分和审计:健康评分、DORA 指标、CI 状态、安全告警与最佳实践。
- 可以做什么
- 为仓库计算 0-100 健康分与 A-F 等级,给出分类明细和改进建议,重复调用时附带趋势对比,并支持 2-5 个仓库并排比较。读取仓库元数据,如星标、分支、语言、许可证和最近推送时间。通过 Dependabot 告警、CodeQL 等代码扫描告警和 OpenSSF Scorecard 检查评估安全状况。查看最近的 GitHub Actions 工作流运行及结论。按 7-90 天窗口计算代理 DORA 指标(部署频率、前置时间、变更失败率、MTTR)。用 12 项清单评估开源最佳实践,并提供简单的 ping 连通性检查。
- 适用场景
- 适合在评估某个库或依赖是否可用于生产、比较备选项目的技术风险、依据 DORA 指标准备迭代或交付评审,或在不离开助手对话的情况下对仓库做快速安全与 CI 审计时使用。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js v18 或更高版本及 npm。GitHub 个人访问令牌通过 GITHUB_TOKEN 环境变量提供;公开仓库可不填,但私有仓库、更高速率限制和安全数据需要它。令牌需具备只读的 Code scanning alerts 和 Dependabot alerts 权限。需要访问 GitHub API 和 OpenSSF Scorecard 的网络连接。
安装
在 SourceWeft 中
- 打开 控制台中的 ProjectPulse MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
ProjectPulse MCP 🏥
GitHub repository health monitoring for AI assistants — works with any language, any repo.
[npm version] [license] [tests] [stars] [downloads] [OpenSSF Scorecard] [M8ven MCP]
This Model Context Protocol (MCP) server gives AI assistants the ability to analyze health, security, CI/CD status, and delivery metrics of any GitHub repository — directly from your conversations.
📑 Table of Contents
- Features
- Examples
- Use Cases
- Prerequisites
- Quick Start
- Tools
- Compatibility
- Architecture
- Transport Modes
- Configuration
- Testing
- Contributing
- License
✨ Features
- 🏥 Health Score — comprehensive 0-100 score with grade (A-F), category breakdown, and improvement suggestions
- 🔒 Security — Dependabot alerts blended with OpenSSF Scorecard checks (60/40 weighted)
- 📊 DORA Metrics — proxy DORA metrics from GitHub data: deployment frequency, lead time, change failure rate, MTTR
- 🔍 Code Scanning — CodeQL and other code scanning alerts with severity, message, and creation date
- 📦 Dependency Analysis — Dependabot alerts with severity filtering
- ⚙️ CI/CD Status — recent GitHub Actions workflow runs and conclusions
- 📋 Repository Info — stars, forks, language, license, and general metadata
- 📝 Best Practices — 12-point checklist for open-source repo quality (README, LICENSE, SECURITY.md, templates, branch protection, etc.) with A-F grade
📸 Examples
All screenshots taken live from MCP Inspector.
get_health_score — A-F grade with category breakdown
get_dora_metrics — DORA delivery metrics from GitHub data
compare_repos — Side-by-side health score ranking
check_ci_status — Recent GitHub Actions workflow runs
get_repo_health — Repository metadata and stats
analyze_dependencies — Dependabot vulnerability alerts
check_best_practices — Open-source repo quality checklist with A-F grade
💡 Use Cases
Copy-paste these prompts into Claude, Cursor, Windsurf, or any MCP-compatible assistant.
Due Diligence — Library Adoption
"Evaluate whether
facebook/reactis production-ready. Check the health score, security vulnerabilities (Dependabot and CodeQL), and whether the CI pipeline passes consistently."
Tools used: get_health_score, analyze_dependencies, analyze_code_scanning, check_ci_status
Compare Alternatives
"I need to choose between
expressjs/express,fastify/fastify, andkoajs/koa. Compare their health scores and tell me which one has the lowest technical risk."
Tools used: compare_repos
Sprint Review — DORA Metrics
"Calculate the DORA metrics for
vercel/next.jsover the last 30 days. I want to present delivery performance at our sprint review."
Tools used: get_dora_metrics
Trend Monitoring
"Check the health score of
microsoft/vscode. Has it improved or worsened since the last time we checked?"
Tools used: get_health_score (includes trend comparison on repeated calls)
Quick Security Audit
"Run a security audit of
pallets/flask: Dependabot alerts, CodeQL vulnerabilities, and CI build status. Give me a complete picture."
Tools used: analyze_dependencies, analyze_code_scanning, check_ci_status
📋 Prerequisites
- Node.js v18 or later — download
- npm (included with Node.js)
- GitHub Personal Access Token (optional for public repos, required for private repos and security data)
🚀 Quick Start
Claude Code (CLI)
Note: You need a
.envfile with yourGITHUB_TOKENin the directory where you run Claude Code.
Claude Desktop
Step 1: Get a GitHub Token
- Go to GitHub Settings > Developer settings > Personal access tokens > Fine-grained tokens
- Give it a name (e.g.,
projectpulse) - Select the repositories you want to monitor (or "All repositories")
- Under Permissions, grant Read-only access to:
Code scanning alertsDependabot alertsMetadata(enabled by default)
- Click Generate token and copy it
Step 2: Configure Claude Desktop
- Open Claude Desktop
- Go to Settings (gear icon) > Developer > Edit Config
- This opens
claude_desktop_config.json. Add theprojectpulseentry inside"mcpServers":
- Save the file and restart Claude Desktop
Step 3: Verify it works
In a new Claude Desktop conversation, try asking:
"Check the health score of facebook/react"
Claude should call the get_health_score tool and return an A-F grade with a detailed breakdown.
Troubleshooting
Other MCP Clients (Cursor, Windsurf, etc.)
Configure a new MCP server with:
- Transport:
stdio - Command:
npx - Arguments:
-y projectpulse-mcp - Environment:
GITHUB_TOKEN= your GitHub PAT
🛠️ Tools
get_health_score
Calculates a 0-100 health score with an A-F grade. Evaluates 5 weighted categories: CI reliability (25%), code freshness (20%), security posture (25%), community activity (15%), and maintenance quality (15%). Returns actionable improvement suggestions for low-scoring categories. On repeated calls for the same repo, includes a trend comparison showing score change since last check. Queries multiple GitHub API endpoints and OpenSSF Scorecard.
Side effect: saves a trend snapshot to local disk (~/.projectpulse/snapshots/).
Inputs: owner, repo
Try asking: "What's the health score of microsoft/vscode?"
get_dora_metrics
Calculates proxy DORA metrics from public GitHub data: Deployment Frequency (from releases), Lead Time for Changes (PR created → merged), Change Failure Rate (CI failure percentage), and Mean Time to Recovery (CI failure → next success). Returns null for metrics with insufficient data. Queries multiple GitHub API endpoints (releases, pulls, actions) — heavier API usage than single-endpoint tools.
Inputs: owner, repo, days (optional, 7-90, default 30)
Try asking: "Show me the DORA metrics for vercel/next.js over the last 60 days"
compare_repos
Compares health scores side-by-side for 2-5 repositories. Returns each repo's full health breakdown ranked by score. Useful for evaluating alternatives or benchmarking your project against similar ones. API calls are multiplied by the number of repos compared.
Inputs: repos (array of {owner, repo})
Try asking: "Compare the health of expressjs/express, fastify/fastify, and koajs/koa"
get_repo_health
Fetches basic repository metadata: stars, forks, open issues count, primary language, license, last push date, default branch, and archive status. Use this for a quick overview — for a computed grade, use get_health_score instead.
Inputs: owner, repo
Try asking: "Give me general info about torvalds/linux"
analyze_dependencies
Lists Dependabot security alerts for vulnerable package dependencies (npm, pip, Maven, etc.) grouped by severity (critical, high, medium, low). Optionally filter by a specific severity level. Requires a token with Dependabot alerts permission.
Inputs: owner, repo, severity (optional)
Try asking: "Show me critical dependency vulnerabilities in my-org/my-app"
check_ci_status
Returns the most recent CI/CD workflow runs from GitHub Actions: status (success, failure, in_progress), conclusion, branch, duration, and timestamps. Useful for checking if builds are green before deploying or merging.
Inputs: owner, repo, limit (optional, default 10)
Try asking: "Are the CI builds passing for facebook/react?"
analyze_code_scanning
Lists CodeQL and other code scanning alerts: rule ID, severity, vulnerability message, affected file and line number, and creation date. Requires a token with Code scanning alerts permission. Can optionally trigger a CodeQL scan and wait for results (requires Advanced Setup, not Default Setup).
Inputs: owner, repo, trigger_scan (optional, default false), poll_timeout_seconds (optional, default 300), poll_interval_seconds (optional, default 15)
Try asking: "Are there any code scanning vulnerabilities in my-org/my-api?"
check_best_practices
Evaluates whether a repository follows open-source community best practices. Runs 12 weighted checks: README, LICENSE, SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT, issue/PR templates, branch protection, Dependabot config, CI/CD workflows, description, and topics. Returns a 0-100 weighted score with A-F grade, per-check pass/fail/unknown status, and actionable suggestions for every missing item. Branch protection check requires admin token access — returns "unknown" (not penalized) if unavailable.
Inputs: owner, repo
Try asking: "Does my-org/my-repo follow open-source best practices?"
ping
Simple connectivity check. Returns "pong" with your message. Use to verify the MCP server is running.
Inputs: message
🆕 What's New
HTTP Transport (v1.7.0)
ProjectPulse now supports Streamable HTTP transport in addition to stdio. This enables running as a standalone HTTP server — ideal for Docker containers, remote deployments, and cross-runtime integrations (e.g., .NET clients consuming Node.js MCP tools over the network).
Default behavior is unchanged — npx projectpulse-mcp still uses stdio. To activate HTTP mode:
Docker example:
Health check endpoint available at GET / (returns JSON with server name and version). MCP protocol endpoint at POST /mcp.
OpenSSF Scorecard Integration
Security score now blends Dependabot alerts (60%) with OpenSSF Scorecard checks (40%) for a more complete picture. 12 security-relevant checks are evaluated — repos without a scorecard gracefully fall back to Dependabot-only scoring.
DORA Metrics
New get_dora_metrics tool calculates proxy DORA metrics from public GitHub data:
Metrics return null when insufficient data is available — works safely on any repository.
🔌 Compatibility
ProjectPulse works with any MCP-compatible client. Tested with:
🏗️ Architecture
- Tool layer: 8 independent tools, each in its own file (
src/tools/) - GitHub API: all calls through a shared Octokit client (
src/github/client.ts) with rate-limit handling - OpenSSF Scorecard: integrated via public API for security scoring
- Input validation: Zod schemas at the MCP boundary
- Transport: stdio (default) or Streamable HTTP — configurable via environment variables
🚢 Transport Modes
See What's New: HTTP Transport for Docker examples.
⚙️ Configuration
GITHUB_TOKEN
Required to avoid rate limits and access security data (Dependabot, CodeQL alerts).
Option A: Fine-grained PAT (Recommended)
- Settings > Developer settings > Personal access tokens > Fine-grained tokens
- Select target repositories
- Grant Read-only access to:
Code scanning alertsDependabot alertsMetadata(default)
Option B: Classic Token
Generate with repo + security_events scopes.
Providing the token:
- Claude Desktop: set in
claude_desktop_config.json(see Quick Start) - Claude Code / Local: create a
.envfile:
🧪 Testing
All 8 tools have dedicated test suites. Tests use Vitest with mocked GitHub API responses.
👤 Author
🤝 Contributing
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run tests (
npm test) and ensure they pass - Commit your changes
- Push to the branch and open a Pull Request
See the issues page for open tasks and bug reports.
⭐ Show your support
Give a star if this project helped you!
📝 License
MIT — see the LICENSE file for details.
来源:README.md,提交 715a318
工具
0版本历史
5- v1.10.0最新Oct 18, 2026
- v1.9.0Oct 14, 2026
- v1.8.4Sep 24, 2026
- v1.8.1Sep 23, 2026
- v1.7.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分