AI代理工具发现服务

Forage是一个MCP服务,允许AI代理自动发现、安装并学习使用新工具,无需重启或手动配置。

  • by isaac-levine
  • TypeScript
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 isaac-levine/forage

使用说明

🌿 饲料

AI代理的自我改进工具发现。

安装一台MCP服务器。你的代理人会找到剩下的。

npm · GitHub · 贡献


Forage是一个MCP服务器,它允许AI代理自动发现、安装和学习使用新工具。当代理遇到问题时,它会寻找合适的工具,安装它,并自学如何使用它。无需重新启动。无需手动配置。代理人变得永远更聪明。

为什么?

AI编码代理仅限于在会话开始时配置的任何工具。需要查询数据库吗?部署到Vercel?搜索Slack?代理道歉,您手动安装正确的MCP服务器。

Forage关闭了这个循环:

Agent encounters a task it can't do
  → forage_search("query postgres database")
  → forage_install("@modelcontextprotocol/server-postgres")
  → Tools available IMMEDIATELY (no restart)
  → forage_learn() saves instructions to CLAUDE.md
  → Next session: auto-starts, agent already knows how to use it

快速开始

克劳德代码

claude mcp add forage -- npx -y forage-mcp

光标

npx forage-mcp init --client cursor

就是这样。开始一个新的会话,Forage就准备好了。

工具

工具 说明
forage_search 在全球范围内搜索MCP服务器 MCP官方登记处, 史密瑟里,以及 npm
forage_evaluate 获取软件包的详细信息——下载、README、安装命令
forage_install 安装并启动MCP服务器作为代理子流程(需要用户批准)
forage_learn 将使用说明写入CLAUDE.md/AGENTS.md/.cursor/rules/
forage_status 列出所有已安装和正在运行的工具
forage_uninstall 移除工具并清理规则

运作原理

饲料是一种 网关/代理 MCP服务器:

  1. 您只需安装一次Forage --它是您手动配置的唯一MCP服务器
  2. Forage发现工具 --并行搜索官方MCP注册表、Smithery和npm
  3. Forage安装工具 --将它们作为子进程启动,包装它们的功能
  4. 无需重新启动 --发射 list_changed 通知,以便代理立即获取新工具
  5. 知识永存 — forage_learn 写入代理规则文件,清单自动启动工具下一个会话
Architecture
┌─────────────────────────────────────────────┐
│  Claude Code / Cursor / Codex               │
│                                             │
│  "I need to query a Postgres database"      │
└──────────────────┬──────────────────────────┘
                   │ MCP
                   ▼
┌─────────────────────────────────────────────┐
│  Forage MCP Server                          │
│                                             │
│  forage_search ─── Official Registry        │
│  forage_install    Smithery                 │
│  forage_learn      npm                      │
│  forage_status                              │
│                                             │
│  ┌─────────────┐  ┌─────────────┐          │
│  │ Postgres MCP│  │ GitHub MCP  │  ...      │
│  │ (subprocess)│  │ (subprocess)│          │
│  └─────────────┘  └─────────────┘          │
└─────────────────────────────────────────────┘

当您通过Forage安装工具时:

  1. 饲料跑 npx -y <package> 作为一个孩子的过程
  2. 通过以下方式连接到它 StdioClientTransport (MCP客户端)
  3. 通过以下方式发现子服务器的工具 listTools
  4. 使用命名空间名称在Forage服务器上重新注册每个工具(foraged__<server>__<tool>)
  5. 发送 tools/list_changed 通知--代理立即看到新工具
  6. 当代理调用代理工具时,Forage会将调用转发给子服务器
Persistence

饲料储存其状态 ~/.forage/:

文件 目的
manifest.json 已安装的工具、命令/args、自动启动配置
install-log.json 所有安装和卸载的审计跟踪
cache/ 缓存注册表搜索结果

启动时,Forage读取清单并自动启动所有以前安装的服务器。你的经纪人就在它停下来的地方接电话。

命令行界面

Forage还为人类提供了一个CLI:

forage search "postgres database"    # Search registries
forage list                          # List installed tools
forage init                          # Set up for Claude Code
forage init --client cursor          # Set up for Cursor

安全

[!重要] 未经用户明确批准,Forage无法安装工具。每个 forage_install 呼叫需要 confirm: true.

  • 审计跟踪 --每次安装/卸载都会记录时间戳 ~/.forage/install-log.json
  • 无远程后端 --一切都在本地运行。注册表搜索是对公共API的只读GET请求。
  • 未存储任何秘密 --子服务器的环境变量在安装时传递,而不是持久化。

发展

git clone https://github.com/isaac-levine/forage.git
cd forage
npm install
npm run build

使用Claude Code进行本地测试:

claude mcp add forage-dev -- node /path/to/forage/dist/server.js

看 贡献.md 了解更多详情。

路线图

特性

  • [ ] forage update --检查已安装工具的更新版本
  • []支持pip/cargo/brew包(不仅仅是npm)
  • []更智能的搜索排名(按下载量、星级、描述相关性加权)
  • []自动配置环境变量 .env 文件
  • [ ] forage doctor --诊断常见的设置问题

分布

社区

  • []README中的演示GIF/视频
  • []撰写发布博客文章
  • []发布到r/ClaudeAI,r/LocalLLaMA,黑客新闻(Show HN)
  • []分享MCP Discord/社区频道
  • []编写用例指南(例如“在30秒内将Postgres添加到Claude代码中”)
  • []添加GitHub讨论以进行问答和功能请求

许可证

麻省理工学院