Token导航 LogoToken导航TokenDH.com
Pi MCP Adapter logo
运维云端未说明官方级别未说明来源级核验

Pi MCP Adapter

MCP Server

Pi MCP Adapter是一个轻量级工具,用于在不占用大量上下文窗口的情况下连接和使用MCP服务器,提供按需工具发现和调用功能。

工具数

0

提示词数

0

GitHub Stars

684

资源数

0
TypeScriptClaude云端部署ClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nicobailon

提供方

nicobailon

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Pi MCP适配器

使用MCP服务器 π 而无需燃烧上下文窗口。

https://github.com/user-attachments/assets/4b7c66ff-e27e-4639-b195-22c3db406a5a

为什么存在

马里奥写道 为什么你可能不需要MCP问题:工具定义过于冗长。一台MCP服务器可以燃烧10000多个令牌,无论你是否使用这些工具,你都要为此付出代价。连接几台服务器,在对话开始之前,你已经烧毁了一半的上下文窗口。

他的观点是:完全跳过MCP,编写简单的CLI工具。

但MCP生态系统有一些有用的东西——数据库、浏览器、API。此适配器使您可以访问而不会膨胀。一个代理工具(约200个令牌),而不是数百个。代理按需发现它需要什么。服务器只有在您实际使用时才会启动。

安装

pi install npm:pi-mcp-adapter

安装后重新启动Pi。

第一次跑步会发生什么

适配器自动读取标准MCP文件。如果您已经拥有它们,则不需要额外的设置。

你已经有了。..发生了什么
.mcp.json~/.config/mcp/mcp.jsonPi立即使用它。你第一次打开 /mcp,您将看到一个简短的提示,解释Pi检测到了哪个文件,以及Pi只将适配器特定的覆盖写入自己的文件。
主机特定配置(游标、克劳德代码、Codex等),但没有标准MCP文件运行 /mcp setup 将这些主机配置采用到Pi中。安装流程显示了它所发现的内容,允许您选择要导入的内容,并在写入之前预览确切的文件更改。
尚未配置运行 /mcp setup 脚手架最小 .mcp.json,快速添加RepoPrompt,或检查适配器在您的计算机上发现了什么。

如果你喜欢终端,你也可以运行 pi-mcp-adapter init 安装后,扫描特定于主机的配置,并将缺少的兼容性导入添加到Pi代理目录中(~/.pi/agent/mcp.json 默认情况下,或 $PI_CODING_AGENT_DIR/mcp.json 设置时)。

快速开始

首选项目配置: .mcp.json

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"]
    }
  }
}

首选用户全局共享配置: ~/.config/mcp/mcp.json

Pi还会读取Pi拥有的覆盖文件,以获取设置和特定于主机的兼容性:

  • `

/mcp.json --Pi全局覆盖(~/.pi/agent/mcp.json` 默认情况下)

  • .pi/mcp.json --Pi项目覆盖

优先级为:

  1. ~/.config/mcp/mcp.json
  2. `

/mcp.json`

  1. .mcp.json
  2. .pi/mcp.json

服务器是 默认情况下懒惰 --在你真正调用他们的工具之前,他们不会连接。适配器缓存工具元数据,以便在没有实时连接的情况下搜索和描述工作。

mcp({ search: "screenshot" })
chrome_devtools_take_screenshot
  Take a screenshot of the page or element.

  Parameters:
    format (enum: "png", "jpeg", "webp") [default: "png"]
    fullPage (boolean) - Full page instead of viewport
mcp({ tool: "chrome_devtools_take_screenshot", args: '{"format": "png"}' })

注: args 是JSON字符串,不是对象。

两个调用而不是26个工具扰乱了上下文。

配置

文件布局

当您希望一个设置跨主机工作时,使用共享的MCP文件,当您需要Pi特定的覆盖或设置时,使用Pi拥有的文件。

文件目的
~/.config/mcp/mcp.json用户全局共享MCP配置
.mcp.json项目本地共享MCP配置
`
/mcp.json`Pi全局覆盖和兼容性导入(~/.pi/agent/mcp.json 默认情况下)
.pi/mcp.jsonPi项目覆盖

当Pi需要持久化仅适配器设置时,Pi特定的文件是导入或共享全局服务器的写入目标,例如 directTools.

服务器选项

{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "some-mcp-server"],
      "lifecycle": "lazy",
      "idleTimeout": 10
    }
  }
}
字段描述
commandstdio传输的可执行文件
args命令参数
env环境变量;支持 ${VAR}$env:VAR 插值法
cwd工作目录;支持 ${VAR}, $env:VAR,以及 ~ 扩张
urlHTTP端点(带SSE回退的StreamableHTTP)
headersHTTP标头;支持 ${VAR}$env:VAR 插值法
auth"bearer""oauth"
oauth.grantType"authorization_code" (默认)或 "client_credentials" 用于非交互式机器身份验证
bearerToken / bearerTokenEnv令牌或环境变量名称; bearerToken 支持 ${VAR}$env:VAR 插值法
lifecycle"lazy" (默认), "eager",或 "keep-alive"
idleTimeout空闲断开连接前几分钟(覆盖全局)
exposeResources将MCP资源作为工具公开(默认值:true)
directToolstrue, string[],或 false --单独注册工具,而不是通过代理
excludeToolsstring[] 要隐藏的工具名称(与原始名称匹配,如 get_screenshot 以及前缀名称,如 figma_get_screenshot)
debug显示服务器stderr(默认值:false)

生命周期模式

  • lazy (默认)--启动时不连接。在第一次工具调用时连接。空闲超时后断开连接。缓存的元数据使搜索/列表在没有连接的情况下正常工作。
  • eager --启动时连接,但如果连接断开,则不要自动重新连接。默认情况下没有空闲超时(设置 idleTimeout 明确启用)。
  • keep-alive --启动时连接。通过健康检查自动重新连接。无空闲超时。用于您始终需要可用的服务器。

设置

{
  "settings": {
    "toolPrefix": "server",
    "idleTimeout": 10
  },
  "mcpServers": { }
}
设置说明
toolPrefix"server" (默认), "short" (条纹 -mcp 后缀),或 "none"
idleTimeout全局空闲超时(分钟)(默认值:10,0禁用)
directTools所有服务器的全局默认值(默认值:false)。每台服务器都会覆盖此设置。
disableProxyTool隐藏 mcp 代理工具一旦配置,直接工具就可以从缓存中完全使用。
autoAuth在上自动运行OAuth connect/当服务器需要身份验证时,工具会调用,然后重试一次(默认值:false)。
sampling允许MCP服务器对Pi模型进行采样 modelPreferences.hints 在当前/默认回退之前(默认值:当UI批准可用时为true)。
samplingAutoApprove跳过采样确认提示。在非UI会话中采样时需要(默认值:false)。

每台服务器 idleTimeout 覆盖全局设置。

直接工具

默认情况下,所有MCP工具都可以通过单个 mcp 代理工具。这使得上下文保持较小,但意味着LLM必须通过代理搜索来发现MCP工具。如果你想让特定的工具直接显示在代理的工具列表中——旁边 read, bash, edit等等。--添加 directTools 到你的配置。

每台服务器:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"],
      "directTools": true
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "directTools": ["search_repositories", "get_file_contents"]
    },
    "huge-server": {
      "command": "npx",
      "args": ["-y", "mega-mcp@latest"]
    }
  }
}
价值观行为
true将此服务器上的所有工具注册为单独的Pi工具
["tool_a", "tool_b"]仅注册这些工具(使用原始MCP名称)
省略或 false仅代理(默认)

要为所有服务器设置全局默认值,请执行以下操作:

{
  "settings": {
    "directTools": true
  },
  "mcpServers": {
    "huge-server": {
      "directTools": false
    }
  }
}

每台服务器 directTools 覆盖全局设置。上面的示例为每个服务器注册了直接工具,除了 huge-server.

在使用时排除特定工具 directTools: true,添加 excludeTools 在服务器上:

{
  "mcpServers": {
    "figma": {
      "url": "http://localhost:3845/mcp",
      "directTools": true,
      "excludeTools": ["get_figjam", "figma_get_code_connect_map"]
    }
  }
}

excludeTools 过滤直接工具、代理搜索/列表/描述以及 /mcp 面板视图。

每个直接工具在系统提示(名称+描述+模式)中花费约150-300个令牌。适合5-20个工具的目标集。对于具有75个以上工具的服务器,请坚持使用代理或使用 string[].

直接工具从Pi代理目录中的元数据缓存中注册(~/.pi/agent/mcp-cache.json 默认情况下,或 $PI_CODING_AGENT_DIR/mcp-cache.json 设置时),因此启动时不需要服务器连接。添加后的第一个会话 directTools 对于新服务器,缓存还不存在——工具只能回退到代理,缓存在后台填充。要强制执行: /mcp reconnect .

当您更改直接工具时,会切换到 /mcp 或通过编写新配置 /mcp setup,扩展会自动触发Pi的正常重载流。这可以一次性刷新扩展、提示、技能和MCP工具注册,因此新配置的直接工具可以在不手动重新启动的情况下出现。

交互式配置:/mcp 打开一个交互式面板,显示所有服务器的连接状态、工具和直接/代理切换。您可以从同一覆盖层重新连接服务器并在直接和代理之间切换工具。对于OAuth,在需要身份验证的服务器上按Enter键,或 ctrl+a 在任何OAuth服务器上。

引导式首次运行设置:/mcp setup 检查检测到的共享MCP文件,采用来自其他主机的兼容性导入,打开发现的配置路径,预览文件写入前后的确切差异,构建一个最小的项目 .mcp.json,或将RepoPrompt快速添加到标准/共享MCP文件中。

子代理集成: 如果您使用子代理扩展,代理可以在其前端请求直接MCP工具 mcp:server-name 语法。有关详细信息,请参阅子代理README。

MCP UI集成

它是如何工作的:

  1. 代理调用了一个类似的工具 launch_dashboard
  2. 该工具的元数据包括 _meta.ui.resourceUri 指向UI资源
  3. pi-mcp适配器获取UI HTML并在iframe中打开它
  4. UI可以调用MCP工具并将消息发送回代理

原生渲染: 在macOS上,如果 一瞥 已安装(pi install npm:glimpseui),UI在本机WKWebView窗口中打开,而不是在浏览器选项卡中打开。设置 MCP_UI_VIEWER=browser 强制浏览器,或 MCP_UI_VIEWER=glimpse 需要本地渲染。

双向沟通: UI进行了回应。当它发送提示或意图时,消息会被存储并 triggerTurn() 唤醒代理人。代理通过以下方式检索消息 mcp({ action: "ui-messages" }) 并做出响应,实现应用程序和代理实时协作的对话式UI。

会话重用: 当代理在其UI已打开的情况下再次调用同一工具时,适配器会将新结果推送到现有窗口,而不是替换它。这启用了实时更新——代理可以优化图表、添加数据或响应用户输入,而不会丢失当前视图。不同的工具仍然像以前一样取代了会话。

来自UI的消息类型:

类型目的
prompt触发代理响应的用户消息
intent具有名称+参数的结构化操作
notify即发即弃通知
message通用消息有效载荷
(自定义)按意图转发的任何其他类型

正在检索UI消息:

mcp({ action: "ui-messages" })

返回UI会话中累积的消息。每条消息包括 type, sessionId, serverName, toolName,以及 timestamp提示信息包括 prompt,意图信息包括 intentparams.

浏览器控件:

  • Cmd/Ctrl+Enter --完成并关闭
  • 逃脱 --取消并关闭
  • 完成/取消按钮 --与键盘快捷键相同

技术说明:

  • 工具同意检查UI是否可以调用MCP工具(从不/每台服务器一次/始终)
  • 适用于stdio和HTTP MCP服务器
  • 浏览器使用本地408KB AppBridge捆绑包(MCP SDK+Zod)↔服务器通信

本地示例:交互式可视化工具

一个最小的MCP UI示例 examples/interactive-visualizer 演示图表、双向消息传递和流媒体。从该目录:

npm install
npm run build
npm run install-local

重新启动pi,然后让代理显示一个图表——它调用 show_chart 并在Glimpse(macOS)或浏览器中打开UI。使用 npm run uninstall-local 删除MCP条目。

导入现有配置

共享MCP文件会自动加载。使用 imports 仅适用于尚未涵盖的特定于主机的配置格式 .mcp.json~/.config/mcp/mcp.json.

{
  "imports": ["cursor", "claude-code", "claude-desktop"],
  "mcpServers": { }
}

支持的兼容性导入: cursor, claude-code, claude-desktop, vscode, windsurf, codex

pi-mcp-adapter init 检测这些特定于主机的配置,并将缺失的导入添加到Pi代理的dir配置中。

项目配置

更喜欢 .mcp.json 用于项目本地共享MCP配置。使用 .pi/mcp.json 仅当您需要特定于Pi的项目覆盖时。项目文件覆盖用户全局共享MCP配置和Pi全局覆盖。

用法

模式示例
状态mcp({ })
列表服务器mcp({ server: "name" })
搜索mcp({ search: "screenshot navigate" })
描述mcp({ describe: "tool_name" })
呼叫mcp({ tool: "...", args: '{"key": "value"}' })
连接mcp({ connect: "server-name" })
UI消息mcp({ action: "ui-messages" })

默认情况下,MCP代理和直接工具结果呈现紧凑:长文本显示前三行加上 Ctrl+O to expand 提示,而完整结果在展开时仍然可用,并且仍然原封不动地返回给模型。

搜索包括MCP工具和Pi工具(来自扩展)。Pi工具首先出现在 [pi tool] 前缀。空格分隔的单词是OR’d。

工具名称在连字符和下划线上模糊匹配-- context7_resolve_library_id 发现 context7_resolve-library-id.

命令

命令它的作用
/mcp交互式面板和首轮入职界面
/mcp setup引导导入设置,最小化 .mcp.json、RepoPrompt快速添加和配置路径检查
/mcp tools列出所有工具
/mcp reconnect重新连接所有服务器
/mcp reconnect 连接或重新连接单个服务器
/mcp logout 清除服务器存储的OAuth凭据并断开连接
/mcp-auth在交互式UI会话中打开OAuth服务器选择器
/mcp-auth 特定服务器的OAuth设置

如果 settings.autoAuthtrue, mcp({ connect: ... }), mcp({ tool: ... }),直接工具调用会在需要时自动运行OAuth并重试一次。

在交互式会话中,您还可以通过以下方式进行身份验证 /mcp 随着 ctrl+a 或在需要身份验证的服务器上输入。在非交互式会话中,基于浏览器的OAuth仍然需要 /mcp-auth . /mcp-auth 如果没有服务器,则仅在交互式UI中打开选择器。

运作原理

  • mcp 上下文中的工具(约200个令牌),而不是数百个
  • 默认情况下,服务器是懒惰的——它们在第一次工具调用时连接,而不是在启动时连接
  • 工具元数据已缓存到磁盘,因此在没有实时连接的情况下搜索/列出/描述工作
  • 空闲服务器在10分钟后断开连接(可配置),下次使用时自动重新连接
  • 基于npx的服务器解析为直接二进制路径,跳过约143 MB的npm父进程
  • MCP服务器验证参数,而不是适配器
  • 保持活动服务器进行健康检查并自动重新连接
  • 可以通过以下方式将特定工具从代理升级为一流的Pi工具 directTools config,因此LLM可以直接看到它们,而不必搜索

局限性

  • 跨会话服务器共享尚未实现(每个Pi会话运行自己的服务器进程)
  • 紧凑型MCP结果渲染总结了文本,但内联图像仍由Pi的图像显示设置控制,并可能在紧凑型文本摘要下方渲染。
  • MCP采样支持仅限于文本;上下文包含、工具、停止序列、音频和图像内容被拒绝,并带有显式错误。

目录标签

目录标签

TypeScriptClaude云端部署MCP服务器本地部署工具代理按需调用轻量级适配器

支持客户端

ClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP