Plane MCP 服务器
一种模型上下文协议服务器,使人工智能界面能够无缝与Plane的项目管理系统交互,通过标准化的API实现对项目、问题、状态及其他工作项的管理。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"plane": {
"args": [
"-y",
"@makeplane/plane-mcp-server"
],
"command": "npx",
"env": {
"PLANE_API_HOST_URL": "\u003cHOST_URL_FOR_SELF_HOSTED",
"PLANE_API_KEY": "\u003cYOUR_API_KEY\u003e",
"PLANE_WORKSPACE_SLUG": "\u003cYOUR_WORKSPACE_SLUG\u003e"
}
}
}
}
服务介绍
Plane MCP 服务器
Plane MCP 服务器是一个模型上下文协议(MCP)服务器,它提供了与Plane API的无缝集成,为开发人员和AI接口提供项目、工作项和自动化功能。
用例
- 创建、更新项目和工作项
- 分配人员、属性以及写评论以推进工作
- 移动并观察处于不同状态的各种工作项
- 为工作项添加标签
- 从Plane内的项目和成员中提取和分析数据
- 构建与Plane生态系统交互的AI驱动工具和应用程序
配置参数
PLANE_API_KEY- 用户的API令牌。可以从UI中的/settings/api-tokens/页面获取。PLANE_WORKSPACE_SLUG- 您的Plane实例的工作区slug。PLANE_API_HOST_URL(可选) - Plane API服务器的主机URL。默认值为 https://api.plane.so/
工具
用户
get_user- 获取当前用户的信息- 不需要参数
项目
-
get_projects- 获取当前用户的所有项目- 不需要参数
-
create_project- 创建一个新项目name: 项目名称 (字符串, 必填)
问题类型
-
list_issue_types- 获取特定项目的全部问题类型project_id: 项目的UUID (字符串, 必填)
-
get_issue_type- 获取特定问题类型的详细信息project_id: 项目的UUID (字符串, 必填)type_id: 问题类型的UUID (字符串, 必填)
-
create_issue_type- 在项目中创建一个新的问题类型project_id: 项目的UUID (字符串, 必填)issue_type_data: 包含以下内容的对象:name: 问题类型的名称 (字符串, 必填)description: 问题类型的描述 (字符串, 必填)
-
update_issue_type- 更新现有问题类型project_id: 项目的UUID (字符串, 必填)type_id: 问题类型的UUID (字符串, 必填)issue_type_data: 要更新的问题类型字段 (对象)
-
delete_issue_type- 删除一个问题类型project_id: 项目的UUID (字符串, 必填)type_id: 问题类型的UUID (字符串, 必填)
状态
-
list_states- 获取特定项目的所有状态project_id: 项目的 UUID(字符串,必填)
-
get_state- 获取特定状态的详细信息project_id: 项目的 UUID(字符串,必填)state_id: 状态的 UUID(字符串,必填)
-
create_state- 在项目中创建新状态project_id: 项目的 UUID(字符串,必填)state_data: 包含以下内容的对象:name: 状态名称(字符串,必填)color: 状态的颜色代码(字符串,必填)
-
update_state- 更新现有状态project_id: 项目的 UUID(字符串,必填)state_id: 状态的 UUID(字符串,必填)state_data: 要更新的状态字段(对象)
-
delete_state- 删除状态project_id: 项目的 UUID(字符串,必填)state_id: 状态的 UUID(字符串,必填)
标签
-
list_labels- 获取特定项目的所有标签project_id: 项目的 UUID(字符串,必填)
-
get_label- 获取特定标签的详细信息project_id: 项目的 UUID(字符串,必填)label_id: 标签的 UUID(字符串,必填)
-
create_label- 在项目中创建新标签project_id: 项目的 UUID(字符串,必填)label_data: 包含以下内容的对象:name: 标签名称(字符串,必填)color: 标签的颜色代码(字符串,必填)
-
update_label- 更新现有标签project_id: 项目的 UUID(字符串,必填)label_id: 标签的 UUID(字符串,必填)label_data: 要更新的标签字段(对象)
-
delete_label- 删除标签project_id: 项目的 UUID(字符串,必填)label_id: 标签的 UUID(字符串,必填)
问题
-
get_issue_using_readable_identifier- 使用可读标识符获取问题详情(例如,PROJ-123)project_identifier: 项目标识符(例如,“PROJ”)(字符串,必填)issue_identifier: 问题编号(例如,“123”)(字符串,必填)
-
get_issue_comments- 获取特定问题的所有评论project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)
-
add_issue_comment- 向问题添加评论project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)comment_html: 评论的 HTML 内容(字符串,必填)
-
create_issue- 创建新问题project_id: 项目的 UUID(字符串,必填)issue_data: 包含以下内容的对象:name: 问题标题(字符串,必填)description_html: 问题的 HTML 描述(字符串,必填)
-
update_issue- 更新现有问题project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)issue_data: 要更新的问题字段(对象)
模块
-
list_modules- 获取特定项目的所有模块project_id: 项目的 UUID(字符串,必填)
-
get_module- 获取特定模块的详细信息project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)
-
create_module- 在项目中创建新模块project_id: 项目的 UUID(字符串,必填)module_data: 包含以下内容的对象:name: 模块名称(字符串,必填)
-
update_module- 更新现有模块project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)module_data: 要更新的模块字段(对象)
-
delete_module- 删除模块project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)
模块问题
-
list_module_issues- 获取特定模块的所有问题project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)
-
add_module_issues- 向模块添加问题project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)issues: 要添加的问题 UUID 数组(字符串数组,必填)
-
delete_module_issue- 从模块中移除一个问题project_id: 项目的 UUID(字符串,必填)module_id: 模块的 UUID(字符串,必填)issue_id: 要移除的问题 UUID(字符串,必填)
周期
-
list_cycles- 获取特定项目的所有周期project_id: 项目的 UUID(字符串,必填)
-
get_cycle- 获取特定周期的详细信息project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)
-
create_cycle- 在项目中创建新周期project_id: 项目的 UUID(字符串,必填)cycle_data: 包含以下内容的对象:name: 周期名称(字符串,必填)start_date: 开始日期(YYYY-MM-DD)(字符串,必填)end_date: 结束日期(YYYY-MM-DD)(字符串,必填)
-
update_cycle- 更新现有周期project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)cycle_data: 要更新的周期字段(对象)
-
delete_cycle- 删除周期project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)
周期问题
-
list_cycle_issues- 获取特定周期内的所有问题project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)
-
add_cycle_issues- 向周期中添加问题project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)issues: 要添加的问题 UUID 数组(字符串数组,必填)
-
delete_cycle_issue- 从周期中移除一个问题project_id: 项目的 UUID(字符串,必填)cycle_id: 周期的 UUID(字符串,必填)issue_id: 要移除的问题的 UUID(字符串,必填)
工作日志
-
get_issue_worklogs- 获取特定问题的所有工作日志project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)
-
get_total_worklogs- 获取项目总记录时间project_id: 项目的 UUID(字符串,必填)
-
create_worklog- 为一个问题创建新的工作日志project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)worklog_data: 包含以下内容的对象:description: 工作描述(字符串,必填)duration: 持续时间(以分钟为单位)(整数,必填)
-
update_worklog- 更新现有的工作日志project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)worklog_id: 工作日志的 UUID(字符串,必填)worklog_data: 要更新的工作日志字段(对象)
-
delete_worklog- 删除一个工作日志project_id: 项目的 UUID(字符串,必填)issue_id: 问题的 UUID(字符串,必填)worklog_id: 工作日志的 UUID(字符串,必填)
使用方法
Claude Desktop
通过编辑您的 claude_desktop_config.json 文件将 Plane 添加到 Claude Desktop。
{
"mcpServers": {
"plane": {
"command": "npx",
"args": [
"-y",
"@makeplane/plane-mcp-server"
],
"env": {
"PLANE_API_KEY": "<YOUR_API_KEY>",
"PLANE_API_HOST_URL": "<HOST_URL_FOR_SELF_HOSTED",
"PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>"
}
}
}
}
VSCode
通过编辑您的 .vscode.json/mcp.json 文件将 Plane 添加到 VSCode。
{
"servers": {
"plane": {
"command": "npx",
"args": [
"-y",
"@makeplane/plane-mcp-server"
],
"env": {
"PLANE_API_KEY": "<YOUR_API_KEY>",
"PLANE_API_HOST_URL": "<HOST_URL_FOR_SELF_HOSTED",
"PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>"
}
}
}
}
许可证
本项目根据 MIT 开源许可证的条款进行许可。