pi-mcp-adapter-builtin-compat
Stops pi-mcp-adapter from printing a false "no longer reads mcp.json" migration warning on Pi 0.99+ (builtin:mcp vs <inline:mcp>).
Package details
Install pi-mcp-adapter-builtin-compat from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-mcp-adapter-builtin-compat- Package
pi-mcp-adapter-builtin-compat- Version
1.0.1- Published
- Sep 30, 2026
- Downloads
- 292/mo · 292/wk
- Author
- ganziliang
- License
- MIT
- Types
- extension
- Size
- 10 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./extensions/mcp-adapter-compat.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-mcp-adapter-builtin-compat
消除 Pi 0.99+ 上升级/启动时一直出现的这条误报:
Warning: pi-mcp-adapter no longer reads C:\Users\<you>\.pi\agent\mcp.json.
Move it with: mv "...\.pi\agent\mcp.json" "...\.pi\agent\mcp-adapter.json"
Warning: pi-mcp-adapter no longer reads <project>\.pi\mcp.json.
Move it with: mv "<project>\.pi\mcp.json" "<project>\.pi\mcp-adapter.json"
⚠️ 先别照着 mv
这条警告建议的 mv 是错的,不要执行:
- Pi 0.99 开始自带 MCP 支持,
~/.pi/agent/mcp.json(以及受信任项目的.pi/mcp.json)现在正是 Pi 内置 MCP 的配置文件; - 把
mcp.json移成mcp-adapter.json,等于把这些服务器从 Pi 内置 MCP 转交给pi-mcp-adapter接管,配置语义和工具暴露方式都会变。
真正的原因
| 组件 | 行为 |
|---|---|
| Pi ≥ 0.99 | 内置 MCP 命令注册为 builtin:mcp |
| pi-mcp-adapter 3.3.0 | hasBuiltInMcpCommand() 只认 <inline:mcp> |
于是 adapter 误判「Pi 没有内置 MCP」,弹迁移警告(还会多注册一个 mcp 别名命令)。
这是上游的版本兼容问题,不是你的配置问题。
安装
pi install npm:pi-mcp-adapter-builtin-compat
可选:如果希望装完的第一次启动也不弹警告,把它排在 pi-mcp-adapter 之前:
{
"packages": [
"npm:pi-mcp-adapter-builtin-compat",
"npm:pi-mcp-adapter"
]
}
排在后面也可以,只是第一次启动可能仍弹一次警告,从第二次启动起永久干净。 (原因:Pi 按「项目扩展 → 全局扩展 → 配置的包」顺序加载;补丁对当次已经加载完的 adapter 来不及生效,但它改的是源文件,jiti 下次会按 mtime 重新转译。已实测。)
行为
- 幂等:已打过补丁就什么都不做,不清缓存、不影响启动速度。
- 只改一行:精确字符串匹配
hasBuiltInMcpCommand()的判断语句,同时认<inline:mcp>与builtin:mcp。 - 只动自己的缓存:仅删除 jiti 里
pi-mcp-adapter-index.*的转译缓存条目。 - 自动失效:上游修好后(源码里不再有旧判断),本扩展自动静默,可以卸载。
- 不猜不写:匹配不到锚点时不写入任何内容,只提示一次。
- 关闭开关:
PI_MCP_ADAPTER_COMPAT=0。
卸载
pi remove npm:pi-mcp-adapter-builtin-compat
卸载后,如果 adapter 已被本扩展改过,那个改动会保留到下次 pi update/重装 adapter 为止;之后警告会回来。
上游
修复点:pi-mcp-adapter 的 hasBuiltInMcpCommand() 需要接受 Pi 的 builtin: 前缀
(<inline:mcp> → 同时匹配 builtin:mcp)。上游合并后本包装可弃用。
License
MIT