关于 my-pi
my-pi 是面向编码 Agent 的本地优先 MCP 运行时,通过受限文件操作、AST/LSP 导航和 Git 工具提供代码库访问。默认只读,写入和语言服务器进程需显式启用。
主要功能
- 01限制工作区文件访问
- 02通过内容指纹保护写入
- 03AST 搜索与 LSP 导航
- 04查看 Git 状态和差异
- 05默认只读安全配置
适用场景
- 01在受控权限下浏览代码库
- 02按符号查找定义与引用
- 03检查诊断信息和代码差异
- 04为可信工作区启用写入
MCP 相关
它以 stdio MCP 服务运行,向编码客户端提供文件、搜索、AST/LSP 和 Git 工具;默认只读,修改文件及启动语言服务器进程需要显式授权。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
my-pi
my-pi 是一个本地优先的 Model Context Protocol(MCP)运行时,面向需要受控访问真实代码库、又不希望 Agent 获得不受限制的 shell 的编码 Agent。
它通过一个 stdio MCP 服务,整合了有界文件系统操作、带内容前置条件的写入、结构化 AST 搜索、语言服务器导航、Git 状态/差异工具,以及默认明确只读的安全模型。
为什么选择 my-pi
- 本地优先: 源代码和详细的工作区状态都保留在主机上。
- 默认只读: 修改操作和语言服务器进程启动均需明确授权。
- 更安全的写入: 更新可由内容指纹进行保护,而非盲目覆盖。
- 代码感知导航: Tree-Sitter AST 搜索,加上 LSP 符号、定义、引用、悬停信息和诊断。
- Git 感知上下文: 提供有界的状态和差异功能,不暴露不受限制的命令运行器。
- 不依赖特定主机: 面向支持 MCP 的编码环境,包括 Claude Code、Cursor 和 OpenCode。
安装和运行
需要 Node.js >=24.0.0。
npm install -g @koonwang03/my-pi
my-pi-mcp --workspace /path/to/project
或者,无需全局安装即可检查生成的主机配置:
npx --yes --package @koonwang03/my-pi my-pi-mcp host-config cursor-local
服务以只读安全配置启动。仅在可信工作区中启用写入和语言服务器进程:
my-pi-mcp --workspace /path/to/project --security-profile trusted
未指定 --workspace 或 MY_PI_WORKSPACE_ROOT 时,启动将安全失败。只有在明确选择使用当前目录时,才使用 --allow-cwd。
核心 MCP 功能
稳定的 alpha 版功能集提供 13 个工具,分为四组:
- 文件系统:
fs_read、fs_write、fs_patch、fs_stat - 搜索/工作区:
search、workspace_info - AST/LSP:
ast_search、lsp_status、lsp_symbols、lsp_navigate、lsp_diagnostics - Git:
vcs_status、vcs_diff
结构化 AST 搜索支持 TypeScript、JavaScript、Python、Rust 和 Go。主机上有兼容的语言服务器可执行文件时,LSP 集成支持 TypeScript、Python、Rust 和 Go。
生成主机配置
my-pi-mcp host-config claude-code-local
my-pi-mcp host-config cursor-local
my-pi-mcp host-config opencode-current-local
安全模型
my-pi 使用明确的工作区授权和读取前敏感路径策略。默认配置有意采取严格限制;可信模式需明确选择启用修改操作和语言服务器进程。
启用可信模式前,请先查看完整的安全模型:
https://github.com/BoxBoxmari/my-pi/blob/main/docs/SECURITY_MODEL.md
项目状态
当前发布渠道:alpha。该软件包旨在用于评估和受控的本地开发;仓库中“Production Next”工作项下的协调/评估功能仍处于实验阶段。
仓库、架构、基准测试、发布证据和贡献详情:
https://github.com/BoxBoxmari/my-pi
主要可执行文件为 my-pi-mcp;ccr-mcp 保留为兼容别名。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。