pi mcp
用于连接MCP(模型上下文协议)HTTP服务器的Pi扩展
](https://www.npmjs.com/package/@eliemessiecode/pi-mcp) ](https://www.npmjs.com/package/@eliemessiecode/pi-mcp) 
特性
- 通过HTTP/SSE或流式HTTP连接到MCP服务器
- 服务器上可用的自动发现工具
- 将MCP工具注册为原生Pi工具
- 通过斜线命令管理连接
- 跨会话的持久配置
- 全局和每个项目的服务器配置
安装
通过npm(推荐)
npm install -g @eliemessiecode/pi-mcp通过面包
bun install -g @eliemessiecode/pi-mcp通过Pi
pi install npm:@eliemessiecode/pi-mcp通过Git
pi install git:github.com/ElieMessieCode/pi-mcp手册
复制 pi-mcp 文件夹到:
~/.pi/agent/extensions/pi-mcp/(全球-所有项目).pi/extensions/pi-mcp/(项目本地)
用法
命令
| 命令 | 描述 | |
|---|---|---|
/mcp add [options] | 添加服务器(选项: --global, --project, --insecure, --timeout) | |
/mcp remove | 删除服务器 | |
/mcp list | 列出已配置的服务器(按作用域分组) | |
/mcp connect [name] | 连接到服务器-如果没有名称,则全部连接 | |
/mcp disconnect [name] | 断开与服务器的连接-如果没有名称,则全部断开 | |
/mcp tools [name] | 列出可用工具 | |
/mcp resources [name] | 列出可用资源 | |
/mcp prompts [name] | 列出可用提示 | |
/mcp status | 显示连接状态 | |
/mcp refresh [name] | 刷新工具列表 | |
/mcp scopes | 显示配置文件路径 | |
| `/mcp move --global\ | --project` | 在作用域之间移动服务器 |
/mcp export [file] | 将服务器导出为JSON格式 | |
/mcp import | 从JSON导入服务器 | |
/mcp-status | 快速状态概述 | |
/mcp-logs | 查看调试日志 | |
/mcp-logs clear | 清除调试日志 |
例子
添加MCP服务器(全局):
/mcp add my-server https://my-mcp-server.com/mcp仅为当前项目添加服务器:
/mcp add unity http://localhost:53559 --project添加具有身份验证的服务器:
/mcp add github https://api.github.com/mcp Authorization=Bearer ghp_xxx连接到所有服务器:
/mcp connect使用MCP工具(自动注册):
Tools are automatically registered with the prefix: mcp__支持的协议
- 可流式传输的HTTP (推荐):支持SSE的JSON-RPC
- 上海证券交易所:服务器发送通知事件
- 简单HTTP:请求响应JSON-RPC
支持的数据类型
MCP工具通过以下方式自动转换为Pi工具:
- JSON模式到TypeBox参数的转换
- 支持的类型:
string,number,integer,boolean,array,object - 自动描述和记录
配置范围
| 范围 | 路径 | 用法 |
|---|---|---|
| 全球 | ~/.pi/agent/mcp/servers.json | 在所有项目中共享 |
| 项目 | .pi/mcp/servers.json | 针对当前项目 |
服务器在Pi启动时自动连接。
项目结构
pi-mcp/
├── index.ts # Main extension
├── package.json # Package metadata
├── README.md # This documentation
├── LICENSE # MIT license
├── CHANGELOG.md # Version history
└── CONTRIBUTING.md # Contribution guidelines兼容MCP服务器示例
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
const server = new McpServer({
name: "example-server",
version: "1.0.0",
});
server.tool("get_weather",
{ city: { type: "string", description: "City name" } },
async ({ city }) => ({
content: [{ type: "text", text: `Weather in ${city}: Sunny, 22C` }]
})
);
server.start(3000);故障排除
连接失败:
- 验证URL是否可访问
- 检查身份验证标头
- 使用
/mcp status查看错误
未检测到工具:
- 使用
/mcp refresh刷新 - 验证服务器是否实现
tools/list - 如果使用Docker,请检查Docker日志:
docker logs
请求超时:
- 默认超时:30秒
- 检查网络延迟
Pi显示0个工具:
- 确保Unity编辑器正在运行(适用于Unity MCP)
- 检查Unity中的MCP插件是否已连接
- 查看日志:
/mcp-logs
路线图
高优先级
- \[x\] 服务器宕机时自动重新连接
- \[x\] 定期对服务器连接进行健康检查
- \[x\] 服务器断开连接时的工具清理
中等优先级
- \[x\] MCP资源支持(
/mcp resources) - \[x\] MCP提示支持(
/mcp prompts) - \[x\] TLS/SSL跳过选项(
--insecure) - \[x\] 每台服务器可配置超时(
--timeout) - \[x\] 在作用域之间移动服务器(
/mcp move --global|--project) - \[x\] 导出/导入服务器配置
低优先级
- \[\]服务器组(
/mcp group add) - \[\]工具筛选器(
/mcp add x --filter="assets-*") - \[\]连接历史记录
- \[\]使用指标
- \[\]自定义工具模板
已知Bug
- \[\]处理URL中的特殊字符
- \[\]更明确的超时错误消息
- \[\]支持基本身份验证
贡献
欢迎投稿!
- 分叉回购
- 创建分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 推(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
麻省理工学院-见 许可证 详见
______________________________________________________________________
v1.2.0的新增功能
- 服务器掉线时自动重新连接(最多3次尝试)
- 服务器连接的定期健康检查(间隔30秒)
- 服务器断开连接时自动清理工具
- MCP资源支持
- MCP提示支持
- TLS/SSL跳过选项(
--insecure) - 每台服务器可配置超时(
--timeout) - 在作用域之间移动服务器(
/mcp move) - 导出/导入服务器配置
______________________________________________________________________
存储库:
