食谱MCP服务器
此MCP服务器位于您的AI代码代理旁边,并为其提供了一个方便的工具来管理和与配方数据库交互以进行编码。这将帮助您的AI代理记住您或您的团队经常使用的编码模式、最佳实践和常见解决方案。也就是说,你的代码库的“食谱”!部落知识变得易于获取。
当你的AI代理做了一些好事时,告诉它:“把你所做的保存到食谱中”。
当你的AI代理需要知道如何做某事时,告诉它:“查找\[任务\]的配方”。
主要特点
- 📚 团队知识共享 -数据库位于您的项目目录中,将其提交给您的团队共享食谱
- 🔍 全文检索 -基于FTS5的快速食谱和代码片段搜索
- 🏷️ 有组织的 -用关键字标记食谱,为每个食谱添加多个代码片段
- 📝 生活文档 -随着食谱的演变,添加添加剂
- 🤖 AI友好 -专为AI编码代理设计,可轻松存储和检索编码模式
- 🔒 安全意识 -内置警告,防止意外泄露机密
设置
选项1:在项目中安装(建议用于团队共享)
在您的项目中安装该包,以便与您的团队共享食谱:
cd your-project
npm install github:brownrl/recipes_mcp数据库(recipes.db)将在首次使用时在项目根目录中创建。 将此文件提交到您的存储库 这样你的团队就可以分享食谱了!
git add recipes.db
git commit -m "Add recipe database"选项2:全局/自定义位置
对于所有项目共享的个人配方数据库:
export RECIPES_DB_PATH=~/my-recipes/recipes.db将此添加到您的 ~/.bashrc 或 ~/.zshrc 使其成为永久性的。
用法
独立运行
node index.js服务器在stdio上运行,并将输出: Recipes MCP Server running on stdio
如果数据库不存在,它将自动创建包含所有必要表和全文搜索索引的数据库。
Claude桌面配置
添加到您的 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"recipes": {
"command": "node",
"args": ["/absolute/path/to/your-project/node_modules/recipes_mcp/index.js"],
"cwd": "/absolute/path/to/your-project"
}
}
}重要提示: 集 cwd 到您的项目目录,以便在正确的位置创建数据库!
备选方案-自定义数据库位置:
{
"mcpServers": {
"recipes": {
"command": "node",
"args": ["/absolute/path/to/your-project/node_modules/recipes_mcp/index.js"],
"env": {
"RECIPES_DB_PATH": "/Users/yourname/shared-recipes/recipes.db"
}
}
}
}重要提示: 替换 /Users/YOUR_USERNAME/path/to/recipes_mcp/ 随着 绝对路径 安装此服务器的位置。
临床(VSCode扩展)配置
添加到您的 .vscode/mcp.json 或工作区设置:
{
"servers": {
"recipes": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/recipes_mcp/index.js"]
}
}
}魅力粉碎配置
添加到您的 .crush.json 在项目根目录中:
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"recipes": {
"command": "node",
"type": "stdio",
"args": ["./node_modules/recipes_mcp/index.js"]
}
}
}工具
食谱MCP服务器提供了13个工具来管理您的编码知识库:
发现和搜索
- 关于 -获取服务器信息、可用工具和工作流指导
- list_recipes -显示所有带有id、标题和描述的食谱
- 搜索密码 -按任何单词搜索食谱(多个单词=OR)。按相关性排序的结果
- 搜索_剪辑 -在所有食谱中搜索代码片段
检索
- 获取密码 -获取完整的食谱详细信息,包括关键字、片段和附录
- get_snippet -按ID获取代码片段(当您从搜索结果中获得ID时使用)
- 获取密码片段 -获取特定配方的所有代码片段
- get_cipe_snippet -通过recipe_id+ref name获取代码片段(在浏览配方时使用)
创造
- create_recipe_how -获取创建具有适当结构的食谱的详细指南
- 创建密码 -使用标题、描述、关键字和代码片段创建新配方
- recipe_add_snippet -将代码片段添加到现有配方中
修改
- update_recipe -在配方中添加附录(用于更新和注释)
- 删除密码 -删除配方和所有相关数据(关键字、片段、附录)
搜索行为
基本搜索:
- 使用任何单词或短语搜索:
express,bash array,server setup - 多个单词匹配为 或 默认情况下(查找包含任何单词的食谱)
- 结果是 按相关性排序 -匹配更多单词的食谱排名更高
- 使用引号表示精确的短语:
"express server"
示例:
bash array→ 使用“bash”或“array”查找食谱(对两者都较高的食谱进行排名)"bash array"→ 仅包含精确短语“bash-array”的食谱express→ 所有提及快递的食谱
高级搜索(高级用户):
为了精确控制,请使用FTS5语法:
word1 AND word2-必须包含这两个单词word1 NOT word2-有第一个单词,但没有第二个单词"exact phrase"-精确短语匹配
代码段访问方法
获取片段的两种方法:
- 按ID -
get_snippet(id)
- 当您从搜索结果中获得代码段ID时使用 - 示例:搜索片段后,您得到ID 42
- 按配方+参考 -
get_recipe_snippet(recipe_id, ref)
- 浏览食谱时使用,并知道片段名称 - 示例:从配方#5中获取“设置”片段
代码段参考格式:
代码段使用独特的引用格式: snippet:recipe_id:ref
例子: snippet:1:setup 参考配方1中的“设置”片段
数据库模式
服务器管理4个主表+4个FTS索引:
- 食谱 -主配方表(id、标题、描述、内容、created_at)
- recipe_keywords -搜索关键字(recipe_id,关键字)
- recipe_snippets -代码片段(id、recipe_id、ref、片段、语言、描述、created_at)
- recipe_附录 -更新和注释(id、recipe_id、内容、created_at)
所有表都有相应的FTS5虚拟表,用于通过基于自动触发的同步进行快速搜索。
维护
数据库位置
默认情况下,数据库创建于 ./recipes.db 在您当前的工作目录中。
要使用自定义位置,请设置 RECIPES_DB_PATH 环境变量:
export RECIPES_DB_PATH=/path/to/my-recipes.db团队协作
与团队分享食谱:
- 提交
recipes.db到您的项目存储库 - 团队成员提取最新代码并自动获取所有食谱
- 随着食谱的添加/更新,提交并推送数据库
- 大家保持同步!
最佳实践:
- 添加
recipes.db对你的项目(不要忽视它) - 为代码库中的常见模式创建配方
- 随着方法的发展,用附录更新食谱
- 使用描述性关键字便于搜索
- ⚠️ 永远不要泄露秘密 -在食谱中使用env变量或占位符
重置数据库
要删除并重新创建所有表(警告:删除所有数据):
node node_modules/recipes_mcp/seed.cjs --drop备份数据库
cp recipes.db recipes_backup_$(date +%Y%m%d).db示例
示例1:创建配方
问你的AI代理:
创建一个使用CORS设置Express服务器的配方。包括设置、中间件和服务器启动代码段
代理人将使用 create_recipe 使用适当的关键字和代码片段的工具。
⚠️ 安全说明: 切勿在配方中包含API密钥、密码或机密!请改用环境变量或占位符。
示例2:查找食谱
问你的AI代理:
“搜索有关Express服务器的食谱”
代理人将使用 search_recipes 寻找相关食谱。
示例3:获取特定代码段
问你的AI代理:
“从Express配方中获取设置片段”
代理人将使用 get_recipe_snippet 使用recipe_id和ref检索确切的代码。
