Github Repo Mcp

io.github.thedhruv-07由 GitHub 账号 thedhruv-07 发布v0.1.0更新于 Oct 24, 2026

MCP server for GitHub repo health, commit summaries, issue triage, and RAG Q&A.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

让助手评估公开 GitHub 仓库的健康度、近期提交、新手议题,并基于其文档回答问题。

可以做什么
提供四个用于分析公开 GitHub 仓库的工具。get_repo_health 根据提交新鲜度、议题处理比例和贡献者数量给出确定性的 0-100 健康分,并立即标记已归档仓库。summarize_recent_commits 按类型(功能/修复/文档/重构/杂项)汇总最近 N 天的提交。find_good_first_issues 查找新手标签议题,评估其清晰度,并标记可能被错误标注的议题。ask_repo 通过基于嵌入的语义搜索,对 README、docs 文件和热门议题讨论进行自由文本问答。
适用场景
适合在评估不熟悉的仓库时使用:判断项目是否仍在积极维护、近期有哪些变化、某个议题是否真的适合新手,或在不逐篇阅读的情况下就文档内容提问。
运行要求
以 npm 包形式通过 stdio 在本地运行,需要 Node.js。GITHUB_TOKEN 可选,但可将 GitHub 速率限制从每小时 60 次提升到 5000 次。ask_repo 还需要 QDRANT_URL、QDRANT_API_KEY 和 VOYAGE_API_KEY。需要访问 GitHub、Voyage AI 和 Qdrant Cloud 的网络连接。
安装前请注意
需要密钥:GITHUB_TOKEN、QDRANT_API_KEY 和 VOYAGE_API_KEY。ask_repo 会把仓库内容(README、文档和议题文本)发送到 Voyage AI 生成嵌入,并将生成的向量存入 Qdrant Cloud 集合,因此仓库文本会离开本机。已索引内容不会刷新,回答可能基于过时的文档。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Github Repo Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

github-repo-mcp

An MCP (Model Context Protocol) server that lets any AI agent — Claude Desktop, Claude Code, Cursor — reason about a public GitHub repository directly, instead of the human manually reading READMEs, commit logs, and issue trackers.

Why this exists

Evaluating an unfamiliar repo ("is this actively maintained? is this issue actually beginner-friendly? what changed recently?") is repetitive manual work every developer does. This server turns that into four callable tools any MCP-compatible agent can use.

Tools

ToolWhat it does
get_repo_healthDeterministic 0–100 health score from commit recency, issue-triage ratio, and contributor count. Flags archived repos immediately.
summarize_recent_commitsGroups commits from the last N days by type (feature/fix/docs/refactor/chore) for a quick "what changed" view.
find_good_first_issuesFinds beginner-labeled issues, scores each for genuine clarity, and flags ones that look mislabeled (e.g. touches core architecture despite the "good first issue" tag).
ask_repoFree-text Q&A over README + docs/*.md + top issue threads via embeddings-based semantic search (Voyage AI + Qdrant cosine similarity).

Setup

bash
npm installcp .env.example .env# Add a GitHub personal access token to .env — raises the rate limit from 60/hr to 5000/hr.# No special scopes needed for public repo data: https://github.com/settings/tokens## ask_repo also needs, both free tier:#   VOYAGE_API_KEY  — https://dashboard.voyageai.com/ (API Keys -> Create new key)#   QDRANT_URL, QDRANT_API_KEY — https://cloud.qdrant.io/ (create a free cluster)npm run build

Running locally with Claude Desktop

Add this to your Claude Desktop MCP config (claude_desktop_config.json):

json
{  "mcpServers": {    "github-repo-mcp": {      "command": "node",      "args": ["/absolute/path/to/github-repo-mcp/build/index.js"],      "env": { "GITHUB_TOKEN": "your_token_here" }    }  }}

Restart Claude Desktop, then try: "Use github-repo-mcp to check the health of facebook/react and find me a good first issue."

Architecture notes

  • GitHub API, not scraping — clean, documented, generously rate-limited with a token.
  • Deterministic scoring, generative explanation — get_repo_health's score is a fixed formula (recency + issue triage + contributor diversity), not an LLM guess. This keeps the number reproducible; an LLM (in the calling agent) can narrate why on top of it.
  • Mislabel detection in find_good_first_issues — real "good first issue" labels are often wrong. The tool checks body length, red-flag keywords (architecture, migration, security), and comment count to catch issues that are mislabeled, not just present them at face value.

Demo

See docs/demo.md for a real (not mocked) protocol exchange against facebook/react, including the embeddings-based ask_repo retrieving the correct answer for a query that shares no words with the source text.

How ask_repo retrieval works

ask_repo started as keyword-window retrieval over the README (see git history) and was upgraded to embeddings-based RAG, implemented in src/rag.ts:

  1. On first query for a repo, chunk README + docs/*.md (top-level, cap 15 files) + top 8 most-discussed issue threads (title + body, ~500-word chunks, 50-word overlap)
  2. Embed each chunk with Voyage AI (voyage-3.5-lite)
  3. Store vectors in Qdrant Cloud, one collection per repo (repo_<owner>_<name>)
  4. On every query: embed the question, cosine-similarity search top-5 chunks
  5. Subsequent queries for the same repo skip re-indexing (checked via the collection's points_count) — only the query itself gets embedded

Why embeddings over keyword matching: keyword overlap requires literal shared words — "how do I install React?" and a README section titled "Getting Started" share zero words and would never match. Embeddings place semantically similar text near each other in vector space regardless of exact wording, so retrieval survives paraphrasing and synonyms — the actual failure mode keyword search hits in practice.

Known simplifications (marked ponytail: in src/rag.ts), each with a stated upgrade path:

  • Issue threads index title+body only, not the full comment discussion (avoids one extra API call per issue) — fetch /issues/{n}/comments if answers need to reflect resolution discussion, not just the original report.
  • Chunk sizing uses word count as a token-count approximation, not a real tokenizer.
  • No staleness check — a repo indexed once stays indexed even if its docs change. Add a TTL or a pushed_at check against the stored index if content goes stale.

License

MIT

来源:README.md,提交 c57f171

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分