关于 whichlib
whichlib 是面向编码 Agent 的 MCP 服务,可搜索、比较并评分 GitHub 仓库,帮助选择依赖。评分明示热度、维护、采用情况和许可证等依据。
主要功能
- 01按需求推荐仓库
- 02并排比较仓库
- 03查找并评分趋势仓库
- 04展示评分明细和结论
适用场景
- 01按项目需求选择库
- 02采用前比较候选仓库
- 03按语言查找新兴趋势仓库
MCP 相关
它向 MCP 客户端提供 recommend_repos、compare_repos 和 trending_repos 三种工具,可通过 stdio 本地运行或使用托管 HTTP 服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://whichlib.com/mcpclaude mcp add --transport http josifb-whichlib https://whichlib.com/mcp{"mcpServers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}在 Cursor 中打开{"servers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}{"mcpServers":{"josifb-whichlib":{"serverUrl":"https://whichlib.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://whichlib.com/mcp需要授权工具
3| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| need | string | 是 | 用通俗语言描述需求,例如 "python pdf parser"、"react state management"。说明要完成的任务,而不是库名。 |
| limit | integer | 否 | 要返回的仓库数量,范围为 1-10。 |
| language | string | 否 | GitHub 语言名称,例如 "TypeScript"、"Python"、"Rust"、"C++"。JavaScript 也会匹配 TypeScript 仓库,反之亦然;Python 也会匹配 Jupyter Notebook。省略则搜索所有语言。 |
详细介绍
whichlib
面向编码 Agent 的依赖选择器。询问该使用哪个库,即可获得经过评分和验证的答案,而不是猜测。
whichlib 是一款包含三个工具的 MCP 服务。它使用 MCP 2026-07-28;旧版客户端也能继续使用。它返回的每个仓库都附带透明的 0–100 分评分(活跃势头、维护情况、采用度,包括 npm 和 PyPI 下载量、许可证)、等级、一句话评价和完整评分细目,因此 Agent 可以说明选择理由,你也能了解背后的原因。
面向团队(候补名单): 当你的仓库使用的依赖变得陈旧时收到提醒,并设置团队编码 Agent 添加依赖时必须遵守的规则。为 候补名单议题点一个 👍;达到 20 人报名后就会开发。whichlib 本身将保持免费。
安装
Claude Code:
claude mcp add whichlib -- npx -y whichlib
Cursor、Windsurf 和其他 MCP 客户端:
{ "mcpServers": { "whichlib": { "command": "npx", "args": ["-y", "whichlib"] } } }
需要 Node 22 或更高版本。无需账户或 API 密钥。
无需安装即可使用(托管版,无需 Node):
claude mcp add --transport http whichlib https://whichlib.com/mcp
使用限制和 Web API:https://whichlib.com/docs/
工具
| 工具 | 提问 | 返回内容 |
|---|---|---|
recommend_repos | 用通俗语言描述 need,可选填 language,limit 为 1–10 | 最符合需求的仓库,按匹配度(评分 × 相关性)排序,并为每个仓库提供下载量和评价 |
compare_repos | repos:2–10 个 owner/repo 格式的名称 | 并排列出各个仓库,最佳者排在最前,附带相同的评分细目 |
trending_repos | period:day / week / month / rising,可选填 language 和 limit | 指定时间段内获得星标最多的仓库,并附带评分;rising:按本周新增星标数列出任意创建时间的仓库 |
例如,在 Claude Code 中询问:“我该使用哪个 Python PDF 解析器?”→ MinerU、pdfplumber、pypdf,并附带评分、每周下载量以及类似“快速增长,每周 26k 次下载,3 天前推送,Apache-2.0”的评价。
评分
| 部分 | 权重 | 依据 |
|---|---|---|
| 活跃势头 | 40% | 7 天内新增的星标数(有每日星标数时使用),否则按创建以来的每日星标数计算;已知 npm / PyPI 下载趋势时会按其调整(0.5–2 倍)。采用对数刻度。 |
| 维护情况 | 25% | 距上次推送的天数;30 天内得满分,一年后得 0 分。广泛使用的仓库(10k+ 星标或每周 100k+ 次下载)得分不会低于一半。 |
| 采用度 | 25% | 星标、分叉数以及 npm / PyPI 每周下载量,采用对数刻度。 |
| 许可证 | 10% | 宽松许可证 1.0,弱著佐权 0.75,强著佐权 0.5,无许可证 0。 |
等级:Strong ≥ 75,Solid ≥ 50,Watch ≥ 25,Avoid;创建时间不足 30 天的仓库会标记为 New(“太新,无法判断”),不受其评分影响。已归档仓库的评分上限为 20。在包含 20 项需求的评测中,排名第一的推荐有 75% 的概率被接受为答案,排名前五的推荐则 100% 包含一个被接受的答案;评测及其报告保存在该仓库中。
环境变量(全部可选)
GITHUB_TOKEN:将 GitHub 搜索限额从每分钟 10 次提高到 30 次。无需任何权限的细粒度令牌即可。每次推荐会执行三次搜索。WHICHLIB_HISTORY=off:不下载每日星标数。默认情况下,服务会在后台将最近 10 天的数据保存在~/.whichlib/stars/,并且每 12 小时最多从raw.githubusercontent.com刷新一次,因此活跃势头评分会使用前 1,000 个仓库(按语言划分)和新晋热门仓库的实际每周新增星标数。下载过程中不会发送任何数据。FRESH_REPOS_DATA_DIR:改用包含每日快照或星标数的文件夹(参见仓库的数据分支)。WHICHLIB_TELEMETRY=off或DO_NOT_TRACK=1:禁用匿名调用计数。计数内容:工具名称、随机安装 ID、版本、平台、Node 主版本,以及调用所用的 MCP 协议版本。绝不会记录查询、仓库名称或结果。 汇总数据公开于 https://whichlib-telemetry.todorovskijosif.workers.dev/stats。
源代码、仪表板、数据
代码库:https://github.com/josifb/whichlib(MIT)。其中还包含 Fresh Repos 仪表板(按日/周/月展示星标最多的新代码库,支持排序,单个 HTML 文件)、每夜快照和数据丰富任务、推荐评估,以及 80 多个单元测试。
在代码库的 whichlib/ 文件夹中进行开发:
npm test # unit tests, no network
npm run mcp:smoke # start the server over stdio and call every tool live
npm run eval # 20-need recommendation eval (set GITHUB_TOKEN)
npm run snapshot # today's top repos per period and language -> data/snapshots/
npm run enrich # add npm / PyPI packages and weekly downloads to the latest snapshot
npm run score # top repos from the latest snapshot with score and verdict
npm run pull-data # copy snapshots from the data branch
目录结构:
mcp/server.mjs MCP entry (stdio) mcp/tools.mjs tool logic
mcp/expand.mjs query expansion mcp/telemetry.mjs anonymous call counting
mcp/github-api.mjs GitHub client + cache mcp/data.mjs snapshot history provider
mcp/eval/ needs, metrics, runner, inspect, results/
lib/score.js the score, shared by browser and Node
snapshot/src/ query, normalize, github, registry, enrich, history, run, score-report, pull-data
dashboard/index.html redirect to whichlib.com/repos (Fresh Repos)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。