关于 Reuse Before Generate
Reuse Before Generate 是零依赖的 MCP 服务和命令行工具,可在 AI 编码助手生成新项目或模块前搜索公开代码与软件包索引。它并行查询代码托管平台、包索引和软件目录。
主要功能
- 01搜索公开代码库和软件包索引
- 02并行查询多个来源
- 03以结构化 Markdown 返回结果
- 04来源不可用时继续查询
- 05通过命令行执行搜索
适用场景
- 01搭建新项目之前查找现有库
- 02为构想寻找桌面应用或命令行工具
- 03跨语言包索引比较软件包
MCP 相关
提供 `check_before_building` 和 `reuse_before_generate` 工具,让 MCP 客户端在生成代码前搜索现有方案。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keywords | array | 是 | 必填:根据描述自行推断 3–4 个精准搜索词,运用你对用户实际意图的理解;尤其是在描述含糊、非正式或来自非母语者时更要如此。选择维护者实际会写在 README 中的具体领域名词,而不是通用类别词:例如,对于“检查我的代码是否不小心包含密钥的东西”,优先使用 ["git", "secrets", "detect", "leak"],而不是 ["secret", "scanner", "detect", "git"]——“scanner”范围太广,会带来无关的安全工具清单文章,而“leak”/“secrets”则符合 gitleaks/trufflehog 实际描述自身的方式。避免使用通用工具生态词汇(mcp、agent、server、tool、app),除非描述中没有更具体的词——它们会带来噪声(awesome 列表、无关的 MCP 服务),而非真正的竞品。关键是优先选择维护者用来描述工具本身的词,而不是描述用户问题的词:真正的“在终端中美化 JSON”工具可能会称自己为“viewer”或“processor”,而不是“pretty-printer”/“colorizer”;真正的静态站点链接检查器可能会说它验证“rendered HTML”,而不是“static site alt-text”。如果第一次猜测不合适,请在脑海中模拟你设想的工具的 README,并从那句话中直接提取词语。 |
| description | string | 是 | 即将构建的项目/模块的通俗描述——说明它做什么,而不是如何实现。越具体,匹配质量越高。 |
详细介绍
reuse-before-generate
你的想法很可能已经有人实现过。先查查看,再动手构建。
当你让 AI 编码助手构建应用或模块时,它往往会过度热情地从头开始搭建成千上万行代码——即使已经有经过实战检验的开源库或维护良好的工具可用。
reuse-before-generate 是一个零依赖的 MCP 服务(也是一个命令行工具),可在代码生成开始前拦截 AI 工作流。它会从多个角度搜索公开代码和软件包索引,将结果整理为结构化 Markdown,并引导 AI 搜索现有的 SaaS 产品和社区讨论。
检查的数据源
该服务会并行检查以下数据源:
| 数据源 | 搜索内容 |
|---|---|
| GitHub | 公开代码仓库 |
| GitLab | 公开项目 |
| Show HN | Hacker News 上的产品和项目发布信息 |
| Flathub | Linux 桌面 GUI 应用 |
| F-Droid | Android 开源应用和实用工具 |
| GNOME Extensions | 桌面 Shell 扩展 |
| Homebrew | 精选命令行实用工具和软件包 |
| AUR | Arch Linux 工具、守护进程和脚本 |
| PyPI | Python 软件包和实用工具 |
| Conda / Bioconda | Conda-forge 和 Bioconda 软件包 |
| CRAN / Bioconductor | R 软件包和生物信息学库 |
| npm | JavaScript 和 TypeScript 软件包 |
| crates.io | Rust crate |
| NuGet | .NET 软件包 |
| Hugging Face | AI 模型和管道 |
| Docker Hub | 公开容器镜像 |
| Maven Central | Java 构件 |
| RubyGems | Ruby gem |
| Packagist | PHP 软件包 |
所有新增数据源均使用公开端点,无需 API 密钥。服务会尽力查询这些数据源:如果某个数据源不可用或受到速率限制,仍会返回其他数据源的结果。GitHub 令牌为可选项,只会提高 GitHub 的搜索速率限制。
快速开始与安装
无需 API 密钥即可开始使用。
1. Claude Code CLI
claude mcp add -s user reuse-before-generate -- npx -y reuse-before-generate
2. Cursor、Claude Desktop、Antigravity、Windsurf 或 VS Code
将以下内容添加到你的 mcpServers 配置中(例如 ~/.claude/mcp.json、~/.gemini/antigravity-ide/mcp_config.json 或 Cursor 设置):
{
"mcpServers": {
"reuse-before-generate": {
"command": "npx",
"args": ["-y", "reuse-before-generate@latest"]
}
}
}
可选:提高 GitHub API 限额
你可以选择传入 GitHub 令牌,以提高 GitHub 的速率限制:
{
"mcpServers": {
"reuse-before-generate": {
"command": "npx",
"args": ["-y", "reuse-before-generate@latest"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
3. 在终端中直接运行(CLI 模式)
你可以直接从 Shell 运行搜索,无需 MCP 客户端:
npx reuse-before-generate "terminal markdown viewer"
# or if cloned locally:
node index.js "gnome speech to text offline"
4. 斜杠命令 / Agent 技能
在受支持的 AI 编码助手(Antigravity、Claude Code)中,你可以通过斜杠命令直接调用:
/reuse-before-generate <project description or keywords>
🤖 为 AI Agent 设置自动检查
若要确保 AI 助手在编写代码之前检查是否已有解决方案,请将以下指令添加到你的 CLAUDE.md、.cursorrules、GEMINI.md 或 AGENTS.md 中:
Before scaffolding a new project or substantial new module from scratch:
1. Call `check_before_building` (or `reuse_before_generate`) from the `reuse-before-generate` MCP server.
2. Follow up with web search for existing commercial products or self-hosted tools as directed by the tool.
3. Present existing alternatives in a concise table and ask the user whether to reuse or extend an existing project instead of building from scratch.
🤖 AI 使用说明
有关本项目如何使用 AI 的详情,请参阅我会将哪些工作交给 AI,哪些不会。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。