mcpField
S
should-i-use

should-i-use

远程服务
mrkeyoor.com开发工具110 周前更新

关于 should-i-use

should-i-use 是面向编码 Agent 的 MCP 服务,提供简明、经过整理的库选型、依赖检查和代码示例建议。内置索引可在运行时离线使用,回复上限为 500 个 token。

主要功能

  1. 01推荐库并提示应跳过的选项
  2. 02检查依赖维护和稳定性
  3. 03查找整理过的替代方案与评估
  4. 04提供针对任务的代码片段
  5. 05查询文档链接

适用场景

  1. 01添加依赖前选择合适的库
  2. 02检查现有项目中的依赖
  3. 03查找用法示例及其注意事项

MCP 相关

该 MCP 服务提供库选择、依赖审查、替代方案、用法指导和文档链接等工具。它可使用内置索引在本地运行,无需网络访问。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mrkeyoor.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmshould-i-use-mcp0.3.2

工具

6
参数类型必填说明
taskstring是你要完成的任务,例如 "parse CSV files in node"
ecosystemenum否可选的注册表筛选条件npm | pypi

详细介绍

should-i-use

告诉你的 Agent 哪些东西不该安装的 MCP。

大多数库文档 MCP 服务会把成千上万的文档词元塞进你的上下文,然后让模型自行判断。这个工具直接回答真正的问题:该选哪个库、该跳过哪个库,以及该怎么做。典型回答为 25 到 360 个词元。每条响应都严格限制在 500 个词元以内。

已索引 992 个库。最后更新:2026-08-16。

索引每天都会扩充。数据来自精心筛选的 npm 和 PyPI 库,指南按照固定标准诚实撰写,并以各库自身的文档为依据,介绍库的实际配置体验、哪些情况下不该使用、经过验证的替代方案、4 轴评分卡,以及适用于对应版本的代码片段。如果某个库未被索引,工具会明确说明,而不是猜测。

如果你想要一个把上下文视为预算、而不是无底洞的 Context7 替代方案,那就是它。

快速开始

无需 API 密钥,也无需数据库。索引随软件包一同提供。

npx should-i-use-mcp install

这会将服务入口写入你机器上已有的 Agent 配置:Claude Code、Claude Desktop、Cursor、Windsurf、Cline、VS Code、Zed、Codex、Gemini CLI。每个被修改的文件都会先备份为 .bak。之后请重启 Agent。

若要使用仓库本地配置,而非主目录中的配置:

npx should-i-use-mcp install --project

这会在当前目录中写入 .mcp.json 和 .cursor/mcp.json,因此每个克隆该仓库的人都会获得这个服务。

Claude Code,一行命令
claude mcp add should-i-use -- npx -y should-i-use-mcp
手动配置

如果你更愿意自行编辑 JSON,请将以下内容添加到客户端的 MCP 配置中(Cursor 使用 ~/.cursor/mcp.json,Windsurf 使用 ~/.codeium/windsurf/mcp_config.json,macOS 或 Windows 上使用 Claude Desktop 配置文件,等等):

{
  "mcpServers": {
    "should-i-use": {
      "command": "npx",
      "args": ["-y", "should-i-use-mcp"]
    }
  }
}

其他任何 MCP 客户端:命令为 npx,参数为 ["-y", "should-i-use-mcp"]。从本地检出目录运行:命令为 node,参数为 ["/path/to/should-i-use/server.js"]。VS Code 将相同对象放在 servers 下,而不是 mcpServers 下;Zed 则放在 context_servers 下;安装程序会处理这两种情况。

托管端点(逐步推出)

正在逐步推出一个托管的可流式传输 HTTP 端点:https://mrkeyoor.com/mcp。它提供实时索引,因此可能比 npm 快照新一天。如今,使用上方的 npx 安装方式是最稳定的选择。

工具

工具调用示例返回内容
pick_librarypick_library("parse CSV files in node")排名前 1 至 3 的选择及单行理由,并附上对获胜方案的跳过警告
should_i_useshould_i_use("moment")结论、附理由的 4 轴评分、主要跳过条件、最近推送和下载量信号
audit_dependenciesaudit_dependencies(<contents of package.json>)仅列出值得做出决策的依赖:无人维护、不稳定或值得替换的依赖
alternativesalternatives("axios")精选替代方案,附带“适合优先选择的情况”说明和结论
how_do_ihow_do_i("got", "retry a failed request")完成任务的 1 至 2 个最佳代码片段及其注意事项,不含其他内容
docs_linkdocs_link("fastapi", "middleware")文档 URL 和仓库链接,每项各占一行

audit_dependencies

这个工具的主张是“执行 npm install 前先问一问”。它适用于你没有编写代码、但依赖已经安装好的代码库。

传入 package.json、requirements.txt、pyproject.toml 的内容,或者仅传入以换行分隔的名称列表。它只会返回需要人工判断的依赖,并分为 REPLACE(无人维护)、WATCH(API 不稳定或维护薄弱)和 WORTH RECONSIDERING(说明了跳过理由及具名替代方案)三类。它不会对大多数普通依赖多说什么,也不会对不在索引中的软件包发表任何意见,更不会凭空臆断。

未经编辑的真实输出:

REPLACE (1 unmaintained):
- crypto-js: last push 2.0y ago, still 19.3M/wk. Nineteen million weekly
  downloads of pure inertia behind a library whose own README tells you to
  stop using it. Consider @noble/hashes or @noble/ciphers.
REPLACE (1 unmaintained):
- python-jose: last push 4mo ago, still 10.6M/wk. It works, it is widely
  deployed, and the API is pleasant, but a cryptography library with a
  three-and-a-half-year release gap and a ten-month turnaround on two
  critical advisories is not where new code should start. Consider pyjwt
  or joserfc.

这两个都是目前仍在使用的热门软件包。下载量并不能反映维护状况,而这正是此工具要解决的问题。

安装后的一个好用起始提示词:“audit my dependencies”。

经过测量的 Token 预算

  • 通常的回答:25 到 360 个 Token,具体取决于工具以及库页面需要说明多少内容。
  • 硬性上限:每次响应 500 个 Token,由 clamp.js 强制执行。较长的回答会在句子边界处截断,并附上指向 docs_link 的链接。
  • 冒烟测试(npm run smoke)会启动服务,使用打包的数据调用每个工具,并在任何响应超出上限时失败。该预算是测试指标,不是承诺。

在随机从此索引抽取的库上进行 10 轮、每轮 20 个查询,并与 Context7 对比;Token 数按字符数除以 4 估算。我们的方案调用一次 how_do_i;对方则需要 Agent 实际会进行的两次调用:resolve-library-id,再加上使用默认预算的文档调用。查询文本仅根据各库的描述编写,从未参考我们存储的答案。

每个回答的 Token 中位数
should-i-use238
Context71154
比率4.8x(各轮范围为 3.9x-6.2x)

200 条记录中,199 条由两个服务都给出了回答;Context7 有 1 个库没有可用条目,此索引则没有。

这里的每个数字都来自实际测量的 MCP 响应,并非供应商声明。关于此比率能证明和不能证明什么,请参阅下方的局限性。

数据的制作方式

每个条目都是一份按照固定标准编写的指南,以库自身的文档为依据,并通过验证器检查,同时参考注册表和仓库信号——而非抓取文档:

  • 指南和结论:介绍库的用途、适用场景和应跳过的情况,发布于 mrkeyoor.com/libs,作者为 Keyoor。
  • 评分:4 个维度(API 稳定性、文档质量、维护状况、生态系统),每项 1-5 分,并为每项评分附上一句理由。
  • 信号:每日从注册表和 GitHub 更新最后一次推送时间、每周下载量和星标数。
  • 代码片段:针对已索引版本进行检查,并注明各自的注意事项。

打包的快照(data/libraries.json)每天从该索引导出。所谓诚实,就是维护信号表明应该跳过热门选项时,索引会明确告诉你这一点。没有任何库付费以获得收录或更改评分。

设置 SHOULD_I_USE_DATA=/path/to/libraries.json,即可让服务使用你自己的快照(格式相同:库文档组成的 JSON 数组)。

要求

  • Node 20+
  • 无其他要求。运行时无需数据库,也无需网络访问。

局限性

在依赖它之前,值得了解以下几点:

  • 覆盖范围经过筛选,并不完整。 目前收录了几百个库,而非 npm 和 PyPI 上的所有软件包。因此,audit_dependencies 不会提示任何未编入索引的内容;审计结果干净,表示“我所了解的内容中没有任何标记项”,而不是“你的依赖项没有问题”。
  • 除非添加策略行,否则这些工具只提供建议。 Agent 会在自行决定时调用 MCP 工具,因此单靠它们只能起到强烈建议的作用,而不是拦截器:没有任何机制会强制每次 npm install 都经过检查。若要让检查接近自动化,请在项目中运行 npx should-i-use-mcp install --with-policy:它会在 CLAUDE.md/AGENTS.md 中追加一行依赖策略(如果两者都不存在,则创建 AGENTS.md),之后,读取项目规则的 Agent 就会在添加任何依赖项之前查询索引。
  • 指南基于研究,而非实际试用。 每份指南都根据固定标准,参考库的文档、发行说明、变更日志和问题历史编写,而不是通过实际安装每个版本得出。下载量最高的 50 个条目还会在干净的容器中验证安装(最近一次运行结果:49/50 安装成功;唯一一次超时是 sglang 的 CUDA wheel 树,其自带指南也对此发出警告)。
  • 指南反映特定时间点的情况。 信号每天更新,指南则通过流水线审核,因此,某个库如果本周发布了重大版本或找到新维护者,实际情况可能已超出指南所述。若答案看起来过时,请查看 docs_link。
  • pick_library 根据关键词而非嵌入向量排序。 普通表述效果很好;不常见或比喻性的表述可能完全无法匹配。如果没有匹配项,它会明确说明,而不是含糊其辞,但你可能需要换种说法。
  • 基准测试仅供参考,并非定论。 在随机抽取的库上执行了 10 轮、每轮 20 个查询,并在两天内进行测量。4.8 倍的比率是实际测量结果,各轮范围为 3.9 倍至 6.2 倍,并非普遍规律。方法和每一行数据都在 bench/ 中;如果这个数字对你很重要,可以自行重新运行。
  • 评判结果仅代表个人观点。 这些结果有依据、有来源,也有论证,但仍然是个人判断。不同意某项结果,也可以作为有效的错误报告提交。

贡献

  • 缺少某个库,或评判结果有误? 提交问题。对评判结果提出质疑,有助于改进索引。
  • 代码变更:欢迎提交针对服务(server.js、tools.js、clamp.js、data.js、install.js)的 PR。响应内容请控制在 500 个 token 以内;npm run smoke 会检查这一点。
  • 数据变更:data/libraries.json 是生成文件,因此对它的修改会在下次导出时被覆盖。请改为提交问题,修复内容会在上游落地。

许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。