关于 Repocrunch
Repocrunch 分析公开 GitHub 仓库,并以确定性方式返回结构化 JSON,不使用 AI 或 LLM。它提供 Python 库、命令行、REST API 和 MCP 服务,适用于仓库调研与工具集成。
主要功能
- 01检测技术栈和依赖项
- 02概述架构与仓库健康状况
- 03报告安全相关信号
- 04支持多种语言生态
- 05输出一致的结构化 JSON
- 06提供库、命令行、REST API 和 MCP 接口
适用场景
- 01查看仓库的技术和依赖
- 02评估维护指标与安全信号
- 03将仓库分析结果接入开发工具
MCP 相关
Repocrunch 可通过 STDIO 作为 MCP 服务运行,向 MCP 客户端提供仓库分析。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
RepoCrunch
将任意公开的 GitHub 仓库分析为结构化 JSON。不使用 AI 或大模型——完全确定性。
提供一个仓库,即可获得技术栈、依赖项、架构、健康指标和安全信号,并以简洁、一致的 JSON 格式呈现。可将其用作 Python 库、CLI 工具、REST API 或 MCP 服务。
快速开始
需要 Python 3.11+。
pip install repocrunch
repocrunch analyze fastapi/fastapi --pretty
就这么简单。也支持 uv:
uvx repocrunch analyze astral-sh/uv --pretty
从源代码安装
git clone https://github.com/kimwwk/repocrunch.git
cd repocrunch
uv venv && uv pip install -e ".[all]"
只安装所需内容:
uv pip install -e "." # Library only (httpx + pydantic)
uv pip install -e ".[cli]" # + CLI
uv pip install -e ".[api]" # + REST API
uv pip install -e ".[mcp]" # + MCP server
uv pip install -e ".[all]" # Everything
设置 GitHub Token(可选)
不使用 Token 时,每小时可调用 API 60 次。使用 Token 后,每小时可调用 5,000 次。Token 还允许你分析自己有权访问的私有仓库。
export GITHUB_TOKEN=ghp_...
用法
CLI
repocrunch analyze fastapi/fastapi --pretty # Full analysis, pretty JSON
repocrunch analyze facebook/react -f tech_stack # Single field
repocrunch analyze https://github.com/gin-gonic/gin # Full URL works too
repocrunch serve # Start REST API on :8000
repocrunch mcp # Start MCP server (STDIO)
Python 库
from repocrunch import analyze, analyze_sync
# Async
result = await analyze("fastapi/fastapi")
# Sync
result = analyze_sync("pallets/flask")
print(result.summary.stars)
print(result.tech_stack.framework)
print(result.model_dump_json(indent=2))
REST API
repocrunch serve
# Then:
curl "http://localhost:8000/analyze?repo=fastapi/fastapi" | python -m json.tool
curl "http://localhost:8000/health"
curl "http://localhost:8000/docs" # OpenAPI docs
MCP 服务(适用于 Claude、Cursor 等)
repocrunch mcp # Starts STDIO transport
输出示例
$ repocrunch analyze pallets/flask --pretty
{
"schema_version": "1",
"repo": "pallets/flask",
"url": "https://github.com/pallets/flask",
"analyzed_at": "2026-02-08T19:07:31Z",
"summary": {
"stars": 71143,
"forks": 16697,
"watchers": 2092,
"last_commit": "2026-02-06T21:23:01Z",
"age_days": 5787,
"license": "BSD-3-Clause",
"primary_language": "Python",
"languages": { "Python": 99.9, "HTML": 0.1 }
},
"tech_stack": {
"runtime": "Python",
"framework": null,
"package_manager": "pip",
"dependencies": { "direct": 6, "dev": 0 },
"key_deps": ["blinker", "click", "itsdangerous", "jinja2", "markupsafe", "werkzeug"]
},
"architecture": {
"monorepo": false,
"docker": false,
"ci_cd": ["GitHub Actions"],
"test_framework": "pytest",
"has_tests": true
},
"health": {
"open_issues": 2,
"open_prs": 0,
"contributors": 862,
"commit_frequency": "daily",
"maintenance_status": "actively_maintained"
},
"security": {
"has_env_file": false,
"dependabot_enabled": false,
"branch_protection": false,
"security_policy": false
},
"warnings": [
"Branch protection status unknown (requires admin access or authenticated request)"
]
}
支持的生态系统
| 语言 | 清单文件 | 包管理器检测 |
|---|---|---|
| JavaScript / TypeScript | package.json | npm、yarn、pnpm、bun(根据锁文件识别) |
| Python | pyproject.toml、requirements.txt | pip、poetry、uv、pdm、pipenv |
| Rust | Cargo.toml | cargo |
| Go | go.mod | go |
| Java / Kotlin | pom.xml、build.gradle、build.gradle.kts | maven、gradle |
| Ruby | Gemfile | bundler |
| C / C++ | CMakeLists.txt | cmake |
框架检测覆盖所有支持的生态系统中的 40 多种框架(FastAPI、Django、React、Next.js、Spring Boot、Rails、Gin、Actix 等)。
检测内容
| 类别 | 信号 |
|---|---|
| 摘要 | Star 数、Fork 数、关注者数、仓库年龄、许可证、语言 |
| 技术栈 | 运行时、框架、包管理器、直接依赖/开发依赖数量、关键依赖 |
| 架构 | Monorepo、Docker、CI/CD 平台、测试框架 |
| 健康状况 | 提交频率(每日/每周/每月/零星/不活跃)、维护状态、贡献者、未关闭的问题 |
| 安全性 | 是否提交了 .env 文件、是否启用 Dependabot、分支保护、是否存在 SECURITY.md |
路线图
尚未实现,但已列入计划:
- 密钥正则扫描 — 检测文件树中泄露的 API 密钥、Token 和密码
- 架构类型分类 — 区分库、应用程序和框架
- API 速率限制 — 对 REST API 按密钥进行限流
- npm/npx 包 —
npx repocrunch analyze owner/repo - 漏洞扫描 — 检测依赖项中的已知 CVE
- 比较模式 — 并排分析多个仓库
- 历史跟踪 — 跟踪仓库健康状况随时间的变化
- 平台部署 — Apify Store、Smithery、mcp.so、RapidAPI
已发布:RepoCrunch 已发布到 PyPI —
pip install repocrunch。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。