MCP Server for GitHub repository search and file reading — search GitHub repositories via API with star-sorted results and a free search-page fallback
Three tools with Chinese descriptions and basic English translations. All have input schemas with types and descriptions, but descriptions are verbose (300+ chars) and mix implementation details with user guidance. Tool names are action verbs (search_, web_search_, read_) but descriptions lack clarity on when to use each vs. alternatives. No output schemas documented. Error handling is present but generic. Parameters have types and defaults but lack constraint documentation (e.g., limit max values not enforced in schema).
读取 GitHub 仓库中某个文件的内容。 搜到仓库后,用本工具读关键文件了解实现思路。 读到的代码可以直接复用,需要在代码中标注来源。
在 GitHub 搜索仓库,返回仓库 URL。 这是搜索 GitHub 的首选途径,强烈优先使用本工具;不强制禁用 gh CLI / curl, 但 MCP 工具不可用时才用它们兜底。按 star 排序,优先找到最成熟的项目。 中文关键词会自动翻译成英文技术关键词并追加 star 过滤(如 "电商网站" → "ecommerce stars:>50"),因为 GitHub 对中文相关性排序不可靠。
通过 GitHub 官方搜索页搜索开源项目(免费,无需 API Key,无限额度)。 当 search_github 限流时用这个替代。搜索 GitHub 上的仓库。 解析 github.com/search 的 HTML 结果页,不依赖第三方搜索引擎。
Output schemas not documented. Tools return free-form strings; LLMs cannot parse structured results or chain tools reliably. search_github returns formatted text, not JSON with repo objects.
Descriptions are 300+ characters and mix Chinese/English, implementation details (API rate limits, token config), and user guidance. Violates 10 - 1024 char guideline and wastes tokens on non-essential context.
Parameter constraints not enforced in schema. 'limit' has default and description but no maximum constraint in JSON Schema (max: 30 stated in description only, not in schema). LLMs may pass invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Tool selection guidance missing. Descriptions do not explain when to use search_github vs. web_search_github (rate limit fallback is mentioned but not formalized). LLMs may pick wrong tool.
Error messages are helpful (rate limit guidance, network error hints) but not categorized as retryable/user-fixable/fatal. LLMs lack explicit recovery classification.