Pi MCP 上下文适配器
让 Pi 按需使用 MCP 服务器,避免工具定义占满上下文。
- Star 数
- ★ 1.6k
- 最近更新
- 今天
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 60/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用Codex · Claude Code(部分支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 已在项目中使用 .mcp.json 的 Pi 开发者,希望按需调用 Chrome DevTools 等 MCP 服务,而不是在会话开始时加载全部工具定义。
- 不适合
- 不使用 Pi 编码代理、想要独立代理服务的团队
- 需要跨会话共享 MCP 服务器进程的用户
- 需要图像或音频采样的 MCP 工作流
- 源码审查
- 60/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Pi MCP Adapter 是面向 Pi coding agent 的 MCP 扩展包,通过单个 mcp 代理工具访问多个 MCP 服务器。它默认延迟连接服务器,并将工具、资源、提示词和说明的元数据缓存到 Pi agent 目录,使搜索和查看信息通常不必先建立连接。服务器可采用 stdio、HTTP 或 rmcp-mux Unix socket 传输,并支持 lazy、eager、keep-alive 与 lazy-keep-alive 生命周期。它也可把指定 MCP 工具注册为 Pi 的 direct tools,或通过 mcpScript 在工作线程中编排多次 MCP 调用。配置主要来自共享 MCP 文件和 Pi 专属覆盖文件,OAuth 凭据存入操作系统凭据存储。
扩展读取 .mcp.json、~/.config/mcp/mcp.json、~/.agents/mcp.json、~/.agents/mcp/mcp.json 及 Pi 覆盖文件,并按文档所列优先级合并服务器配置。模型可调用 mcp({ search }) 搜索缓存的 Pi 与 MCP 工具、用 mcp({ describe }) 获取参数说明,再以 mcp({ tool, args }) 调用目标工具;mcp({ connect }) 会连接或刷新指定服务器。它在首次实际调用时启动 lazy 服务器、缓存其元数据,并在空闲超时后断开连接;HTTP 服务可配置 bearer 或 OAuth 认证。/mcp 面板、/mcp setup、/mcp reconnect、/mcp disable 和 /mcp-auth 提供交互式配置与状态操作;mcpScript 则提供 tools.search、tools.describe 和 tools.call 等 JavaScript API。对于过大的文本结果,默认 Output Guard 会截断内联输出并将完整文本写入权限为 0600 的临时文件。
- 已在项目中使用 .mcp.json 的 Pi 开发者,希望按需调用 Chrome DevTools 等 MCP 服务,而不是在会话开始时加载全部工具定义。
- 同时配置多个数据库、浏览器或 API MCP 服务的工程师,希望通过 mcp({ search }) 先发现工具,再只连接实际需要的服务器。
- 需要把少量高频 MCP 操作直接放入 Pi 工具列表、但不想把大型服务器的全部工具暴露给模型的团队。
- 在远程或无头 Pi 会话中使用 OAuth MCP 服务的用户,需要通过 auth-start 和 auth-complete 完成浏览器授权。
- 希望复用 Cursor、Claude Code、Codex 等宿主配置的 Pi 用户,可通过 /mcp setup 或 pi-mcp-adapter init 显式导入兼容配置。
如何安装或部署这个 Agent?
先安装 Pi coding agent 与 npm。执行 pi install npm:pi-mcp-adapter,然后重启 Pi。若已有项目配置,在项目根目录创建或保留 .mcp.json,例如:{"mcpServers":{"chrome-devtools":{"command":"npx","args":["-y","[email protected]"]}}}。没有标准 MCP 配置时,可在安装后运行 /mcp setup,或执行 pi-mcp-adapter init 扫描宿主配置并添加兼容导入。HTTP OAuth 服务还需要服务端对应的 OAuth 配置和可用的操作系统凭据存储。
如何使用这个 Agent?
启动 Pi 后,先调用 mcp({ search: "screenshot" }) 查找工具;再用 mcp({ describe: "chrome_devtools_take_screenshot" }) 查看参数;最后调用 mcp({ tool: "chrome_devtools_take_screenshot", args: { format: "png" } })。使用 /mcp 查看服务器状态并切换 direct/proxy 工具,使用 /mcp reconnect <server> 刷新某台服务器。多步工作可调用默认启用的 mcpScript,在其中使用 await tools.search(...)、await tools.describe(...) 与 await tools.call(...)。如需远程 OAuth,先执行 mcp({ action: "auth-start", server: "linear-server" }),在浏览器授权后将回调 URL 通过 mcp({ action: "auth-complete", server: "linear-server", args: { redirectUrl: "..." } }) 交回同一 Pi 会话。
这个 Agent 有哪些优点和局限?
- 以约 200 token 的单一代理工具替代大量直接工具定义,并通过按需发现降低初始上下文占用。
- 延迟连接与磁盘元数据缓存结合,使搜索、列表和描述在多数情况下无需先启动 MCP 服务器。
- 同时支持 stdio、HTTP/SSE 回退和显式 rmcp-mux socket,并提供四种连接生命周期策略。
- 可按服务器或工具选择 directTools、includeTools、excludeTools 与 approveTools,在可发现性和提示词体积之间调整。
- 默认 Output Guard 限制大型文本 MCP 输出,并对 OAuth 凭据使用操作系统凭据存储而非持久化明文。
- 核心运行环境是 Pi coding agent;文档只说明对其他宿主配置的兼容导入,未说明可作为独立通用代理部署。
- 首次使用 lazy 服务器仍需连接和启动,direct tools 的初始缓存尚未生成时会先以代理模式工作。
- 跨 Pi 会话共享服务器尚未实现;普通配置下每个 Pi 会话运行自己的服务器进程。
- OAuth 在无头环境仍依赖可用且已解锁的操作系统凭据存储;不可用时会拒绝回退到明文凭据。
- MCP sampling 仅支持文本;上下文注入、工具、停止序列、音频和图像内容会被明确拒绝。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Pi MCP 上下文适配器 当前 | 60 · 存在缺口 | Agent 插件 / 技能免费 | ★ 1.6k | 今天 | TypeScript | — |
| mcp-agent | 53 · 缺口较多 | 开发框架免费 + 模型费 | ★ 8.6k | 9 个月前 | Python | Claude.ai · OpenAI API · Claude API |
| Claude Code 架构研究 | 43 · 缺口较多 | 命令行工具 | ★ 12k | 7 个月前 | — | — |
| MATLAB MCP Server | 69 · 存在缺口 | MCP 服务器免费 | ★ 1.8k | 10 天前 | Go | Claude Code · Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:适配器默认惰性连接,避免不必要的服务器启动;提供审批工具(approveTools)和用户确认机制;数据流透明性通过状态快照和跟踪选项体现;敏感数据处理包括OAuth凭据存储在操作系统凭据库,且失败时关闭而非降级;依赖安全方面,依赖列表包含已知包,但未提供漏洞扫描或锁定文件证据;外部影响方面,适配器不自动启动或停止外部守护进程,但会启动MCP服务器进程;回滚方面,提供禁用/启用命令,但未提供完整回滚机制;来源归属方面,作者身份明确,但发布者未验证。扣分原因:依赖安全缺乏具体证据,回滚机制不完整,来源归属因发布者未验证而受限。
证据显示:文档和配置描述一致,自洽性良好;依赖项在package.json中明确列出,但未验证可用性;失败消息方面,文档描述了错误处理,但未提供具体示例。扣分原因:依赖可用性未验证,失败消息缺乏具体示例。
证据显示:面向Pi编码代理用户,场景包括本地和远程OAuth;能力边界明确,如不支持某些功能;触发精度通过工具前缀和审批模式控制;环境适配包括多种配置文件和平台支持。扣分原因:环境适配未覆盖所有平台,触发精度依赖用户配置。
证据显示:信息架构清晰,README详细;安装说明明确;命名稳定,版本号明确;示例和FAQ存在;已知限制部分列出;许可证为MIT;版本变更日志存在;维护责任由作者承担,但发布者未验证。扣分原因:维护责任因发布者未验证而受限。
证据显示:输出可用性通过工具元数据缓存和状态快照提升;边际价值在于减少上下文窗口消耗;成本效益通过惰性连接和按需启动体现。扣分原因:未提供性能基准或实际使用数据。
证据显示:README中的声明与代码结构一致,但未提供独立验证;跨来源佐证有限,主要依赖单一仓库;事实与推断分离不明确。扣分原因:缺乏独立验证和跨来源佐证。
- 发布者身份未验证,需谨慎评估供应链风险。
- 依赖安全未提供漏洞扫描或锁定文件证据,建议检查依赖版本。
- 回滚机制不完整,仅提供禁用/启用,无完整回滚。
- 远程OAuth流程涉及敏感信息,需确保使用安全环境。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
This is a fix release, and the biggest fix is for servers with long tool or resource names. A single long name, like a Home Assistant resource with a file path in it, used to make OpenAI, Anthropic, Bedrock and other strict providers reject every request. Those names are now shortened to fit, and the full name still works anywhere you write it for the adapter. Pi also starts faster, a mistyped mcp action now gives a clear error instead of quietly doing something else, and a few terminal annoyances are gone. Highlights …在 GitHub 查看 ↗ -
发布说明摘录
This release makes the agent's MCP work faster and cheaper. On servers that support MCP Tasks, slow tools like a CI run or a report export no longer hold up your session: Pi gets control back right away, and the result arrives as a new message when the job finishes. Semantic search now finds tools by meaning using the model logins you already have in Pi, and shows full parameters only for the tools it's confident about. The agent can also ask a tool for just the values it needs instead of reading a whole page of output. Highlights …在 GitHub 查看 ↗ -
发布说明摘录
pi-mcp-adapter 6.0.0 makes Pi a better home for your MCP tools, especially if you use Executor. Pi now asks you before an Executor app does anything that needs approval, instead of letting the model approve it. When an app needs an account you haven't connected, Pi opens the sign-in link and finishes the call for you. You can also save a workflow you repeat as your own named tool. The adapter's old mcpScript tool is gone, because Pi's own codemode now does that job and works with the rest of Pi. Highlights …在 GitHub 查看 ↗
常见问题
它会在 Pi 启动时启动所有 MCP 服务器吗?
是否需要把所有 MCP 工具都放进模型的工具列表?
MCP 服务的密钥和 OAuth 令牌如何处理?
能否使用现有 Claude Code 或 Codex 的 MCP 配置?
/mcp setup 或 pi-mcp-adapter init 显式采用兼容配置;默认不会自动加载宿主专属配置。