Plane MCP server
Plane's official MCP server exposes its full project API — work items, cycles, modules, and more — to agents.
Plane MCP is the official server from Plane, the open-source project management tool, and it exposes Plane's full API surface to an AI agent across more than twenty modules. The agent can manage projects and their features, create and update work items and search them by text or readable identifier, run cycles (sprints) and modules, group work under epics, milestones, and workspace initiatives, triage an intake queue, define custom work-item types and properties, manage states and labels, log time against work, and read or write Plane's wiki pages. Comments, links, relations, and activity history round out the surface so an agent can participate in planning the same way a teammate would.
The canonical deployment is the hosted endpoint at https://mcp.plane.so over Streamable HTTP, with an OAuth path for Plane Cloud and an API-key path that reads a personal or workspace access token from request headers. You can also run it locally over stdio with uvx, authenticating via a Plane API key and workspace slug. It is MIT-licensed and free to use.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Available tools
| Tool | Description |
|---|---|
| get_me | Retrieves the authenticated user's profile. |
| get_workspace_members | Lists the members of the workspace. |
| get_workspace_features | Lists which workspace features are enabled. |
| update_workspace_features | Enables or disables workspace features. |
| list_projects | Lists the projects in the workspace. |
| create_project | Creates a new project. |
| retrieve_project | Retrieves the details of a project. |
| update_project | Updates an existing project. |
| delete_project | Deletes a project. |
| archive_project | Archives a project. |
| unarchive_project | Restores a project from the archive. |
| get_project_worklog_summary | Returns a time-tracking summary for a project. |
| get_project_members | Lists the members of a project. |
| get_project_features | Lists which project features are enabled. |
| update_project_features | Enables or disables project features. |
| get_project_estimate | Retrieves a project's active estimate. |
| list_project_estimate_points | Lists the points of a project estimate. |
| create_project_estimate | Creates an estimate for a project. |
| update_project_estimate | Updates a project estimate. |
| delete_project_estimate | Deletes a project estimate. |
| link_estimate_to_project | Links an estimate to a project. |
| create_project_estimate_points | Creates points for a project estimate. |
| update_project_estimate_point | Updates a single estimate point. |
| delete_project_estimate_point | Deletes a single estimate point. |
| list_work_items | Lists work items (issues) in a project. |
| list_workspace_work_items | Lists work items across the entire workspace. |
| create_work_item | Creates a new work item. |
| retrieve_work_item | Retrieves a work item by ID. |
| retrieve_work_item_by_identifier | Retrieves a work item by its readable identifier such as ENG-42. |
| update_work_item | Updates an existing work item. |
| delete_work_item | Deletes a work item. |
| add_work_item_assignee | Adds an assignee to a work item. |
| remove_work_item_assignee | Removes an assignee from a work item. |
| add_work_item_label | Adds a label to a work item. |
| remove_work_item_label | Removes a label from a work item. |
| list_archived_work_items | Lists the archived work items in a project. |
| archive_work_item | Archives a work item. |
| unarchive_work_item | Restores a work item from the archive. |
| search_work_items | Searches work items by text. |
| list_work_item_activities | Lists the activity history of a work item. |
| retrieve_work_item_activity | Retrieves a single work-item activity entry. |
| list_work_item_comments | Lists the comments on a work item. |
| retrieve_work_item_comment | Retrieves a single work-item comment. |
| create_work_item_comment | Adds a comment to a work item. |
| update_work_item_comment | Updates a work-item comment. |
| delete_work_item_comment | Deletes a work-item comment. |
| list_work_item_links | Lists the links attached to a work item. |
| retrieve_work_item_link | Retrieves a single work-item link. |
| create_work_item_link | Attaches a link to a work item. |
| update_work_item_link | Updates a work-item link. |
| delete_work_item_link | Removes a work-item link. |
| list_work_item_relations | Lists the relations between work items. |
| create_work_item_relation | Creates a relation between two work items. |
| remove_work_item_relation | Removes a relation between work items. |
| list_work_item_types | Lists the work-item types in a project. |
| create_work_item_type | Creates a new work-item type. |
| retrieve_work_item_type | Retrieves a work-item type. |
| update_work_item_type | Updates a work-item type. |
| delete_work_item_type | Deletes a work-item type. |
| list_work_item_properties | Lists the custom properties defined on work items. |
| create_work_item_property | Creates a custom work-item property. |
| retrieve_work_item_property | Retrieves a custom work-item property. |
| update_work_item_property | Updates a custom work-item property. |
| delete_work_item_property | Deletes a custom work-item property. |
| attach_properties_to_work_item_type | Attaches custom properties to a work-item type. |
| detach_property_from_work_item_type | Detaches a custom property from a work-item type. |
| list_work_item_property_options | Lists the options of a custom property. |
| retrieve_work_item_property_option | Retrieves a single custom-property option. |
| create_work_item_property_option | Creates an option for a custom property. |
| update_work_item_property_option | Updates a custom-property option. |
| delete_work_item_property_option | Deletes a custom-property option. |
| get_work_item_property_value | Reads a custom-property value on a work item. |
| set_work_item_property_value | Sets a custom-property value on a work item. |
| delete_work_item_property_value | Clears a custom-property value on a work item. |
| list_work_logs | Lists the time-tracking work logs. |
| create_work_log | Logs time against a work item (in minutes). |
| update_work_log | Updates a work log entry. |
| delete_work_log | Deletes a work log entry. |
| list_states | Lists the workflow states in a project. |
| create_state | Creates a new workflow state. |
| retrieve_state | Retrieves a workflow state. |
| update_state | Updates a workflow state. |
| delete_state | Deletes a workflow state. |
| list_labels | Lists the labels in a project. |
| create_label | Creates a new label. |
| retrieve_label | Retrieves a label. |
| update_label | Updates a label. |
| delete_label | Deletes a label. |
| list_cycles | Lists the cycles (sprints) in a project. |
| create_cycle | Creates a new cycle. |
| retrieve_cycle | Retrieves a cycle. |
| update_cycle | Updates a cycle. |
| delete_cycle | Deletes a cycle. |
| list_archived_cycles | Lists the archived cycles in a project. |
| add_work_items_to_cycle | Adds work items to a cycle. |
| remove_work_item_from_cycle | Removes a work item from a cycle. |
| list_cycle_work_items | Lists the work items in a cycle. |
| transfer_cycle_work_items | Moves incomplete work items between cycles. |
| archive_cycle | Archives a cycle. |
| complete_cycle | Marks a cycle as complete. |
| unarchive_cycle | Restores a cycle from the archive. |
| list_modules | Lists the modules in a project. |
| create_module | Creates a new module. |
| retrieve_module | Retrieves a module. |
| update_module | Updates a module. |
| delete_module | Deletes a module. |
| list_archived_modules | Lists the archived modules in a project. |
| add_work_items_to_module | Adds work items to a module. |
| remove_work_item_from_module | Removes a work item from a module. |
| list_module_work_items | Lists the work items in a module. |
| archive_module | Archives a module. |
| unarchive_module | Restores a module from the archive. |
| list_epics | Lists the epics in a project. |
| create_epic | Creates a new epic. |
| update_epic | Updates an epic. |
| retrieve_epic | Retrieves an epic. |
| delete_epic | Deletes an epic. |
| list_milestones | Lists the milestones in a project. |
| create_milestone | Creates a new milestone. |
| retrieve_milestone | Retrieves a milestone. |
| update_milestone | Updates a milestone. |
| delete_milestone | Deletes a milestone. |
| add_work_items_to_milestone | Adds work items to a milestone. |
| remove_work_items_from_milestone | Removes work items from a milestone. |
| list_milestone_work_items | Lists the work items in a milestone. |
| list_initiatives | Lists the workspace initiatives. |
| create_initiative | Creates a new initiative. |
| retrieve_initiative | Retrieves an initiative. |
| update_initiative | Updates an initiative. |
| delete_initiative | Deletes an initiative. |
| list_intake_work_items | Lists the work items in the intake (triage) queue. |
| create_intake_work_item | Creates a work item in the intake queue. |
| retrieve_intake_work_item | Retrieves an intake work item. |
| update_intake_work_item | Updates an intake work item. |
| delete_intake_work_item | Deletes an intake work item. |
| list_workspace_pages | Lists the workspace-level wiki pages. |
| list_project_pages | Lists the project-level wiki pages. |
| attach_page_to_work_item | Attaches a wiki page to a work item. |
| list_work_item_pages | Lists the pages attached to a work item. |
| detach_page_from_work_item | Detaches a wiki page from a work item. |
| retrieve_workspace_page | Retrieves a workspace-level wiki page. |
| retrieve_project_page | Retrieves a project-level wiki page. |
| create_workspace_page | Creates a workspace-level wiki page. |
| create_project_page | Creates a project-level wiki page. |
| get_pql_reference | Returns reference documentation for Plane Query Language (PQL). |
Required configuration
- PLANE_API_KEYRequired
A Plane personal or workspace access token (stdio mode).
- PLANE_WORKSPACE_SLUGRequired
The slug identifying your Plane workspace (stdio mode).
- PLANE_BASE_URLOptional
API base URL; defaults to https://api.plane.so.
What you can do with it
Turn discussion into tracked work
An agent files a properly typed, labelled work item in the right project and cycle so the task is tracked instead of lost.
Plan and report on a sprint
Ask what is in flight for a cycle and the agent lists its work items, summarizes status, and can transfer unfinished items forward.
FAQ
- Is it free?
- Yes. The server is official and MIT-licensed, free to run or connect; it works within your Plane plan and the Plane API's limits.
- Does it support remote/OAuth?
- Yes. The canonical deployment is the hosted endpoint at https://mcp.plane.so over Streamable HTTP, with OAuth for Plane Cloud and an API-key header path; you can also run it locally with uvx.