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>).

Packages

Package details

extension

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