关于 forage
Forage 是一个 MCP 服务,可帮助 AI Agent 按任务需要发现、安装和使用其他 MCP 服务。它会立即代理已安装服务的工具,并可将使用说明保存到 Agent 规则文件,供后续会话使用。
主要功能
- 01搜索 MCP 服务注册源
- 02查看软件包详情
- 03经用户批准后安装
- 04通过代理提供已安装工具
- 05将使用说明保存到规则文件
- 06跟踪已安装和运行中的工具
适用场景
- 01为特定任务查找所需服务
- 02无需重启 Agent 即可添加工具
- 03为后续会话保存配置说明
- 04查看已安装工具和安装记录
MCP 相关
Forage 充当 MCP 网关:搜索注册源、将获批的服务作为子进程启动,并向 Agent 代理其工具。新工具可用时,它会发送列表变更通知。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 所需功能的自然语言描述(例如:'query postgres database'、'search slack messages'、'manage github issues') |
| sources | array | 否 | 要搜索的注册表。默认为全部。 |
详细介绍
Forage 是一个 MCP 服务,可让 AI Agent 自动发现、安装并学习使用新工具。当 Agent 遇到难题时,它会自行寻找合适的工具、安装工具,并学会如何使用。无需重启,无需手动配置。Agent 会永久变得更聪明。
为什么选择 Forage?
AI 编码 Agent 的能力受限于会话开始时配置的工具。需要查询数据库?部署到 Vercel?搜索 Slack?Agent 只能道歉,然后由你手动安装合适的 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 Code
claude mcp add forage -- npx -y forage-mcp
Cursor
npx forage-mcp init --client cursor
就这么简单。开启新会话,Forage 即可使用。
工具
| 工具 | 说明 |
|---|---|
forage_search | 在 Official MCP Registry、Smithery 和 npm 中搜索 MCP 服务 |
forage_evaluate | 获取软件包详情,包括下载量、README 和安装命令 |
forage_install | 将 MCP 服务作为代理子进程安装并启动(需要用户批准) |
forage_learn | 将使用说明写入 CLAUDE.md / AGENTS.md / .cursor/rules/ |
forage_status | 列出所有已安装且正在运行的工具 |
forage_uninstall | 移除工具并清理规则 |
工作原理
Forage 是一个网关/代理 MCP 服务:
- 只需安装一次 Forage——它是你唯一需要手动配置的 MCP 服务
- Forage 发现工具——并行搜索 Official MCP Registry、Smithery 和 npm
- Forage 安装工具——将工具作为子进程启动,并封装其功能
- 无需重启——发送
list_changed通知,让 Agent 立即获取新工具 - 知识持久保存——
forage_learn会写入 Agent 规则文件,清单会在下次会话中自动启动工具
架构
┌─────────────────────────────────────────────┐
│ 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 安装工具时:
- Forage 将
npx -y <package>作为子进程运行 - 通过
StdioClientTransport(MCP 客户端)连接到该进程 - 通过
listTools发现子服务的工具 - 使用带命名空间的名称(
foraged__<server>__<tool>)在 Forage 服务上重新注册每个工具 - 发送
tools/list_changed通知——Agent 会立即看到新工具 - Agent 调用代理工具时,Forage 会将调用转发给子服务
持久化
Forage 将状态存储在 ~/.forage/ 中:
| 文件 | 用途 |
|---|---|
manifest.json | 已安装的工具、命令/参数和自动启动配置 |
install-log.json | 所有安装和卸载操作的审计记录 |
cache/ | 缓存的注册表搜索结果 |
启动时,Forage 会读取清单并自动启动所有之前安装的服务。Agent 会从上次中断处继续工作。
CLI
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
更多详情请参阅 CONTRIBUTING.md。
路线图
功能
-
forage update— 检查已安装工具是否有更新版本 - 支持 pip/cargo/brew 软件包(而不只是 npm)
- 优化搜索排序(根据下载量、星标数和描述相关性加权)
- 从
.env文件自动配置环境变量 -
forage doctor— 诊断常见设置问题
分发
- 发布到 npm
- 提交至 Official MCP Registry
- 提交至 Smithery
- 提交至 mcp.so 和 glama.ai
- 在 forage.dev 上建立落地页
社区
- 在 README 中添加演示 GIF / 视频
- 撰写发布博客文章
- 发布到 r/ClaudeAI、r/LocalLLaMA、Hacker News(Show HN)
- 在 MCP Discord / 社区频道分享
- 撰写用例指南(例如“在 30 秒内为 Claude Code 添加 Postgres”)
- 添加 GitHub Discussions,用于问答和功能请求
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。