Plane MCP
STDIOAllows AI agents and developer tools to interact programmatically with Plane workspace.
Allows AI agents and developer tools to interact programmatically with Plane workspace.
The Plane MCP Server brings the power of Model Context Protocol (MCP) to Plane, allowing AI agents and developer tools to interact programmatically with your Plane workspace.
Whether you're building intelligent assistants, automation scripts, or workflow-driven tools, this server provides a seamless bridge to Plane’s API—so you can create projects, manage issues, assign tasks, and keep your work in sync with AI-powered tools.
This server unlocks all sorts of useful capabilities for anyone working with Plane:
Spin up projects and work items directly from your AI or app interface.
Update progress, assign team members, set properties, or add comments—all programmatically.
Move issues through workflows and update their states on the fly.
Organize work with labels, modules, and cycles.
Analyze data about your team’s work across projects.
Build smart apps that interact naturally with Plane—whether it’s an AI agent logging work, or a bot keeping projects tidy.
get_user
get_projects
create_project
name
(string, required): Project namelist_issue_types
project_id
(string, required): UUID of the projectget_issue_type
project_id
(string, required): UUID of the projecttype_id
(string, required): UUID of the issue typecreate_issue_type
project_id
(string, required): UUID of the projectissue_type_data
: Object containing:
name
(string, required): Name of the issue typedescription
(string, required): Description of the issue typeupdate_issue_type
project_id
(string, required): UUID of the projecttype_id
(string, required): UUID of the issue typeissue_type_data
(object): Fields to update on the issue typedelete_issue_type
project_id
(string, required): UUID of the projecttype_id
(string, required): UUID of the issue typelist_states
project_id
(string, required): UUID of the projectget_state
project_id
(string, required): UUID of the projectstate_id
(string, required): UUID of the statecreate_state
project_id
(string, required): UUID of the projectstate_data
: Object containing:
name
(string, required): Name of the statecolor
(string, required): Color code for the stateupdate_state
project_id
(string, required): UUID of the projectstate_id
(string, required): UUID of the statestate_data
(object): Fields to update on the statedelete_state
project_id
(string, required): UUID of the projectstate_id
(string, required): UUID of the statelist_labels
project_id
(string, required): UUID of the projectget_label
project_id
(string, required): UUID of the projectlabel_id
(string, required): UUID of the labelcreate_label
project_id
(string, required): UUID of the projectlabel_data
: Object containing:
name
(string, required): Name of the labelcolor
(string, required): Color code for the labelupdate_label
project_id
(string, required): UUID of the projectlabel_id
(string, required): UUID of the labellabel_data
(object): Fields to update on the labeldelete_label
project_id
(string, required): UUID of the projectlabel_id
(string, required): UUID of the labelget_issue_using_readable_identifier
project_identifier
(string, required)issue_identifier
(string, required): Issue numbe: Project identifier (e.g., "PROJ") r (e.g., "123")get_issue_comments
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueadd_issue_comment
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issuecomment_html
(string, required): HTML content of the commentcreate_issue
project_id
(string, required): UUID of the projectissue_data
: Object containing:name
(string, required): Title of the issuedescription_html
(string, required): HTML description of the issueupdate_issue
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueissue_data
(object): Fields to update on the issuelist_modules
project_id
(string, required): UUID of the projectget_module
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the modulecreate_module
project_id
(string, required): UUID of the projectmodule_data
: Object containing:
name
(string, required): Name of the moduleupdate_module
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the modulemodule_data
(object): Fields to update on the moduledelete_module
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the modulelist_module_issues
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the moduleadd_module_issues
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the moduleissues
(string[], required): Array of issue UUIDs to adddelete_module_issue
project_id
(string, required): UUID of the projectmodule_id
(string, required): UUID of the moduleissue_id
(string, required): UUID of the issue to removelist_cycles
project_id
(string, required): UUID of the projectget_cycle
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cyclecreate_cycle
project_id
(string, required): UUID of the projectcycle_data
: Object containing:name
(string, required): Name of the cyclestart_date
(string, required): Start date (YYYY-MM-DD)end_date
(string, required)
: End date (YYYY-MM-DD)update_cycle
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cyclecycle_data
(object): Fields to update on the cycledelete_cycle
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cyclelist_cycle_issues
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cycleadd_cycle_issues
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cycleissues
(string[], required): Array of issue UUIDs to adddelete_cycle_issue
project_id
(string, required): UUID of the projectcycle_id
(string, required): UUID of the cycleissue_id
(string, required): UUID of the issue to removeget_issue_worklogs
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueget_total_worklogs
project_id
(string, required): UUID of the projectcreate_worklog
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueworklog_data
: Object containing:
description
(string, required): Description of the work doneduration
(integer, required): Duration in minutesupdate_worklog
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueworklog_id
(string, required): UUID of the worklogworklog_data
(object): Fields to update on the worklogdelete_worklog
project_id
(string, required): UUID of the projectissue_id
(string, required): UUID of the issueworklog_id
(string, required): UUID of the worklogPLANE_API_KEY
- Your Plane API token. You can generate one from the Workspace Settings > API Tokens page (/settings/api-tokens/
) in the Plane app.PLANE_WORKSPACE_SLUG
- The workspace slug for your Plane instance. The workspace-slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL.PLANE_API_HOST_URL
(optional) - The host URL of the Plane API Server. Defaults to https://api.plane.so/You can add Plane to Claude Desktop by updating your claude_desktop_config.json
:
{ "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>" } } } }
You can also connect Plane to VSCode by editing your .vscode.json
or mcp.json
file:
{ "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>" } } } }
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.