关于 Plane (Rust)
Plane (Rust) 是一个非官方的 Rust MCP 服务,供 Agent 操作 Plane 项目管理。它以单个二进制文件提供 30 个工具,无需 Python 运行时,并保留上游工具架构。
主要功能
- 01提供 30 个 Plane 项目管理工具
- 02以单个 Rust 二进制文件分发
- 03无需 Python 运行时
- 04支持 stdio 与本地 HTTP 服务
- 05使用 API 密钥认证
适用场景
- 01管理 Plane 工作项和评论
- 02处理周期、模块和页面
- 03让 Agent 连接自托管的 Plane 实例
MCP 相关
通过 30 个 MCP 工具向 Agent 和其他 MCP 客户端提供 Plane 操作。支持 stdio 或本地 HTTP 端点,并使用 Plane API 密钥登录。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
plane-mcp-rs
一个快速的单二进制文件 Model Context Protocol(MCP)服务,用于管理 Plane 项目。它让 Claude、Cursor 和 Codex 等 AI Agent 能够处理 Plane 工作项、评论、周期、模块、页面等内容。
这是对采用 MIT 许可的 Python plane-mcp-server 的 Rust 移植版:提供相同的 30 个工具和工具架构,内存占用约减少 16 倍,且无需 Python 运行时。
非官方。 这是一个社区项目,与 Plane 无关联,也未获 Plane 认可。
MCP Registry 名称:mcp-name: io.github.ninerf/plane-mcp-rs
安装
从 Releases 下载二进制文件,并将其放入 PATH。支持 MCP bundle 的客户端可以从同一页面安装 plane-mcp-rs.mcpb。也可以使用 Rust 构建:
cargo install --git https://github.com/ninerf/plane-mcp-rs
配置
| 变量 | 必填 | 含义 |
|---|---|---|
PLANE_API_KEY | 是 | Plane API 密钥(Profile → Personal Access Tokens) |
PLANE_WORKSPACE_SLUG | 是 | Plane URL 中的工作区 slug |
PLANE_BASE_URL | 否 | 可自托管 URL;默认为 https://api.plane.so |
Claude Code
claude mcp add plane -e PLANE_API_KEY=your-key -e PLANE_WORKSPACE_SLUG=your-slug -- plane-mcp-rs --stdio
Cursor、Claude Desktop 和其他使用 JSON 配置的客户端
{
"mcpServers": {
"plane": {
"command": "plane-mcp-rs",
"args": ["--stdio"],
"env": { "PLANE_API_KEY": "your-key", "PLANE_WORKSPACE_SLUG": "your-slug" }
}
}
}
共享 HTTP 服务
一个进程即可为一台机器上的所有 Agent 提供服务。它仅绑定到 127.0.0.1,且自身没有身份验证,因此不要对外暴露该端口。
plane-mcp-rs --port 8096
端点为 http://127.0.0.1:8096/servers/plane/mcp。
工具
workitem、workitem_comment、workitem_activity、workitem_link、workitem_relation、workitem_attachment、
workitem_type、workitem_property、work_log、project、project_estimate、state、label、member、
workspace、module、cycle、milestone、intake、page、collection、template、initiative、customer、
customer_property、customer_request、release、release_label、release_tag、get_pql_reference。
上游服务已弃用的工具名称(例如 create_work_item 等 169 个别名)仍可使用。
与 Python 服务的差异
workitem list不会返回描述,除非你传入fields,这样输出量大约能减半。需要完整工作项时,请使用retrieve。- 结果只以文本形式发送一次,不会重复发送
structuredContent副本。 - 会直接传递 Plane 的原始响应,因此 Python 模型添加的空占位字段不会出现。
- 空列表会以
[]返回。 upload_from_url会检查每个解析出的地址和每次重定向,确保它们不指向私有网络。- 仅支持 API 密钥登录:不支持 OAuth 或托管模式。
性能
在一台 Windows 11 工作站上针对一个可自托管的 Plane 实例进行测量;用于公平比较的 plane-mcp-server 0.3.3 已经过调优(单个服务进程、不使用 mcp-proxy、关闭负载日志记录、使用相同的精简版 workitem list)。标准安装占用更多资源。你的测量结果可能不同。
| Rust | Python | ||
|---|---|---|---|
| 空闲内存(工作集) | 7.6 MB | 127.9 MB | 减少 17 倍 |
| 负载后的内存 | 12.8 MB | 135.8 MB | 减少 11 倍 |
| 冷启动至开始监听¹ | 约 0.5 s | 约 7.2 s | 快 14 倍 |
| 本地工具调用,p50 | 1.09 ms | 16.82 ms | 快 15 倍 |
tools/list,p50 | 2.78 ms | 8.9 ms | 快 3 倍 |
workitem list(20 个工作项),p50² | 约 686 ms | 约 728 ms | 大致相同 |
workitem list(20 个工作项),响应大小 | 8.6 KB | 16.5 KB | 小 48% |
| 安装大小 | 1.7 MB,1 个文件 | 109.8 MB,8,769 个文件 | |
| 发送给客户端的工具架构 | 66.5 KB | 66.5 KB | 完全相同 |
¹ 包含测量循环本身的开销,因此 Rust 的数据是上限。 ² 大部分耗时来自 Plane 本身,因此 Rust 无法显著加速。测量时使用了节奏化调用,并扣除了调用间隔的延迟。
Rust 不会减少工具架构的开销,因为架构有意保持完全相同。可使用 bench/bench.py 复现延迟和大小数据。
兼容性和测试状态
已针对自托管的 Plane 1.4.2 进行测试:
- 读取和验证: 与 Python 服务端对比了全部 30 个工具的 77 次调用,除上文所列内容外,行为均无差异。测试涵盖每个工具,但并非每项操作。
- 端到端写入: 工作项、评论(包括提及)、链接、附件、标签和状态。
- 在此 Plane 版本中,两个服务端均返回相同的 404: 工作项关联和归档。你的版本可能有所不同。
- 未进行端到端测试: 其他工具的写入操作,包括客户、发布版本、计划、页面、周期、模块、模板和工时记录。这些操作遵循上游 SDK 的路由。如果有操作失败,请提交 issue。
Linux 和 macOS 版本均在 CI 中编译并通过单元测试。上述端到端测试仅在 Windows 上运行。
致谢
工具架构、描述和 PQL 参考文本来自
plane-mcp-server(MIT)。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。