piagent_
← ~/map

$ cat ~/map/pi-mcp.md

pi-mcp

一个托管 pi agent 的 MCP 服务端:RPC 驱动、沙盒隔离、热恢复与 agent 链式调用。

tools✓ 11月2日

事实速查

仓库
github.com/sr9000/pi-mcp ↗
GitHub Stars
★ 0
Forks
0
许可证
MIT
npm / 月
—
最后推送
2026年11月1日

安装

先 uv sync --extra dev,再在设置 PI_MCP_DB、PI_MCP_AGENTS_DIR 与 PI_MCP_ACCESS_TOKEN 后启动:uv run pi-mcp(默认 stdio 传输;HTTP 加 --transport streamable-http --host 0.0.0.0 --port 8000)。run 工具要求宿主机装有 pi 与 bubblewrap。

## 速览

一个用 Python 写的 MCP 服务端,经 pi 的 RPC 模式运行并托管 pi 编码 agent:bubblewrap 隔离的 pi 进程在回合之间保持存活,MCP 客户端用 run、send_message、resurrect 等工具启动、驱动、rip 并复活 agent,链式 agent 经划定的子挂载与每 agent 令牌回调。

## 要点

## 常见问题

Q 它与 Pi MCP Adapter 是什么关系?

方向相反:Pi MCP Adapter 让 pi 把 MCP 服务器当工具用且不耗上下文,而 pi-mcp 把 pi agent 本身暴露给 MCP 客户端,由客户端经 RPC 启动并托管它们。

Q 宿主机需要什么才能跑 agent?

run 工具要求宿主机装有 pi 与 bubblewrap(bwrap);没有它们也可以用 pi-mcp-fake 预置假会话来试用服务端。

Q 被 rip 的 agent 还能救回来吗?

能——resurrect 用保存的属性为同一 agent id 与会话启动新进程,属性不可覆盖;带 prompt 则立刻开始那一轮,不带则回到 idle。send_message 仍要求进程在运行,所以先 resurrect。

Q 被隔离的 agent 能反过来调用这个服务端吗?

能——每个 agent 都会得到生成的 /tmp/pi-agent/mcp.json,指向回环端点,其 bearer 令牌专为该 agent 铸造、在别处不被接受;设 PI_MCP_CHILD_MCP=0 可关闭子端点。

Q 怎么查看 agent 做过什么?

read 选择 stdout 或 errors 日志,grep 把宿主机的 grep 代理到日志流,list_tmp、grep_tmp、read_tmp 检查转发的 /tmp 树,范围限定在该 agent。

## 参考链接

## 相关条目

## 教程

最后更新: 2026年11月1日