Plane MCP 服务器
一种模型上下文协议服务器,使大型语言模型能够与Plane.so交互,通过Plane的API管理项目和问题,从而实现更高效的工作流管理。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"plane": {
"args": [
"path/to/plane-mcp-server/build/index.js"
],
"command": "node",
"env": {
"PLANE_API_KEY": "your_plane_api_key_here",
"PLANE_WORKSPACE_SLUG": "your_workspace_slug_here"
}
}
}
}
该服务需要配置环境变量:PLANE_API_KEY、PLANE_WORKSPACE_SLUG
服务介绍
Plane MCP 服务器
这是一个 Model Context Protocol (MCP) 服务器,它使 LLMs 能够与 Plane.so 交互,允许它们通过 Plane 的 API 管理项目和问题。使用此服务器,像 Claude 这样的 LLM 可以直接与您的项目管理工作流程进行交互,同时保持用户控制和安全性。
功能
- 列出您在 Plane 工作区中的所有项目
- 获取特定项目的详细信息
- 创建具有可自定义属性的新问题
- 列出并筛选项目中的问题
- 获取特定问题的详细信息
- 使用新信息更新现有问题
先决条件
- Node.js 22.x 或更高版本
- 一个 Plane.so API 密钥
- 一个 Plane.so 工作区
安装
选项 1:使用 Smithery
最快捷的方法是使用 Smithery 直接安装服务器:
# Install to Claude for Desktop
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client claude
该命令将自动设置 Plane MCP 服务器以供 Claude 使用。安装后,您需要通过 Claude 设置来配置服务器,提供您的 Plane API 密钥和工作区 slug。
有效的客户端选项包括:claude, cline, windsurf, roo-cline, witsy, enconvo, cursor
使用 Cursor 安装的示例:
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client cursor
选项 2:手动设置
如果您更喜欢手动设置服务器,请按照以下步骤操作:
- 克隆此仓库:
git clone https://github.com/kelvin6365/plane-mcp-server.git
cd plane-mcp-server
- 安装依赖项:
npm install
- 构建服务器:
npm run build
与桌面版 Claude 一起使用
注意: 如果您使用了上面的选项 1(Smithery),可以跳过此部分。Smithery 会自动为您配置 MCP 服务器。
-
打开您的 Claude 桌面版配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加 Plane MCP 服务器配置:
{
"mcpServers": {
"plane": {
"command": "node",
"args": ["path/to/plane-mcp-server/build/index.js"],
"env": {
"PLANE_API_KEY": "your_plane_api_key_here",
"PLANE_WORKSPACE_SLUG": "your_workspace_slug_here"
}
}
}
}
- 重启 Claude 桌面版
可用工具
注意: 工具名称使用连字符(例如,
list-projects),而不是下划线。服务器会自动将下划线转换为连字符以保证兼容性。
list-projects
列出您在 Plane 工作区中的所有项目。
参数:无
示例:
{}
get-project
获取特定项目的详细信息。
参数:
project_id: 要检索的项目的 ID
示例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
create-issue
在指定项目中创建一个新的问题。
参数:
project_id: 要创建问题的项目IDname: 问题标题description_html: 问题的HTML描述(Plane API需要)priority(可选): 问题优先级("urgent", "high", "medium", "low", "none")state_id(可选): 该问题的状态IDassignees(可选): 分配给此问题的用户ID数组
注意:
assignees参数必须是用户ID字符串的数组。常见的错误包括提供字典/对象而不是数组,或将整个问题数据意外嵌套在 assignees 字段中。服务器将尝试处理这些情况,但最好使用正确的格式。
示例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "Implement new feature",
"description_html": "<p>We need to implement the new reporting feature</p>",
"priority": "high",
"assignees": ["user-id-1", "user-id-2"]
}
list-issues
列出指定项目中的问题,并可选择过滤条件。
参数:
project_id: 获取问题的项目IDstate_id(可选): 按状态ID过滤priority(可选): 按优先级过滤assignee_id(可选): 按分配者ID过滤limit(可选): 返回的最大问题数量(默认:50)
示例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"priority": "high",
"limit": 10
}
get-issue
获取特定问题的详细信息。
参数:
project_id: 包含问题的项目IDissue_id: 要检索的问题ID
示例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
update-issue
更新项目中的现有问题。
参数:
project_id: 包含问题的项目IDissue_id: 要更新的问题IDname(可选): 更新后的问题标题description_html(可选): 问题的HTML描述(Plane API需要)priority(可选): 更新后的问题优先级state_id(可选): 更新后的问题状态IDassignees(可选): 更新后的分配给此问题的用户ID数组
注意:
assignees参数必须是用户ID字符串的数组,遵循与 create-issue 工具相同的格式指南。
示例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"priority": "urgent",
"description_html": "<p>Updated description with <strong>more details</strong></p>"
}
开发
- 安装开发依赖项:
npm install --save-dev typescript @types/node
- 在开发模式下启动服务器:
npm run dev
测试
您可以使用MCP Inspector测试服务器:
npx @modelcontextprotocol/inspector node dist/index.js
示例
以下是一些您可以在设置好Plane MCP服务器后尝试与Claude进行的示例交互:
- “你能列出我Plane工作区中的所有项目吗?”
- “请在市场部项目中创建一个标题为‘更新社交媒体策略’的高优先级问题。”
- “开发项目中所有的高优先级问题是什么?”
- “将QA项目中的问题#123的优先级更改为紧急。”
Claude会使用适当的工具与Plane互动,并在创建或修改任何问题之前征求您的同意。
安全考虑
- API密钥需要适当的Plane权限才能正常工作
- 所有修改数据的操作都需要用户的明确批准
- 环境变量应得到妥善保护
- API密钥不应提交到版本控制系统
贡献
- Fork 仓库
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个 Pull Request
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
支持
如果你遇到任何问题或有疑问:
- 查看 GitHub Issues 部分
- 参阅 MCP 文档 modelcontextprotocol.io
- 用详细的复现步骤打开一个新的 issue