plane-mcp-adapter
Facilitate programmatic interaction with Plane workspaces via its comprehensive API, enabling automated management of projects, tasks, cycles, and auxiliary data structures using the Model Context Protocol.
Author

makeplane
Quick Info
Actions
Tags
Plane Model Context Protocol Integration Service
This service establishes a robust conduit between AI systems leveraging the Model Context Protocol (MCP) and your organization's Plane deployment. It grants external agents the capacity to interact dynamically with Plane entities, facilitating advanced automation and intelligent orchestration of development workflows.
By deploying this adapter, developers can engineer sophisticated assistants, background automation agents, or custom tooling that interfaces seamlessly with Plane's rich feature set—allowing for dynamic issue creation, state modification, assignment adjustments, and real-time data synchronization.
Core Functionality Unlocked
This integration empowers sophisticated operations within your Plane environment:
- Resource Provisioning: Instantly spin up new projects and individual work items directly via AI or external application commands.
- Attribute Manipulation: Programmatically update task statuses, reassign ownership, modify metadata, or append detailed conversational records.
- Workflow Advancement: Drive issues through defined lifecycle stages dynamically.
- Organizational Structuring: Manage and categorize work using labels, hierarchical modules, and time-boxed cycles.
- Operational Intelligence: Extract and analyze performance metrics across various projects and teams.
- Intelligent Interfacing: Support the development of bespoke applications where AI agents naturally interact with task management data (e.g., automated logging or proactive cleanup bots).
Available Operations (Tools)
User Context
get_user- Retrieves the profile details for the currently authenticated user.
- Parameters: None.
Project Management
get_projects- Fetches a catalog of all accessible projects.
-
Parameters: None.
-
create_project - Provisions a completely new project entity.
- Parameters:
name(string, required): The designated title for the new project.
Issue Classifications
-
list_issue_types- Enumerates all defined issue classification schemas within a specified project.
- Parameters:
project_id(string, required): The unique system identifier (UUID) of the project.
-
get_issue_type - Retrieves detailed configuration for a specific issue classification.
-
Parameters:
project_id(string, required): Project UUID.type_id(string, required): UUID of the specific issue type definition.
-
create_issue_type - Establishes a novel issue classification within a project boundary.
-
Parameters:
project_id(string, required): Project UUID.issue_type_data: Payload object containing:name(string, required): Identifier for the new type.description(string, required): Elaboration on the type's purpose.
-
update_issue_type - Modifies attributes of an existing issue classification.
-
Parameters:
project_id(string, required): Project UUID.type_id(string, required): Issue Type UUID.issue_type_data(object): Fields slated for modification.
-
delete_issue_type - Permanently removes a defined issue classification.
- Parameters:
project_id(string, required): Project UUID.type_id(string, required): Issue Type UUID.
Workflow Stages (States)
list_states- Obtains all defined workflow stages for a given project.
-
Parameters:
project_id(string, required): Project UUID.
-
get_state - Retrieves specific attributes of a workflow stage.
-
Parameters:
project_id(string, required): Project UUID.state_id(string, required): UUID corresponding to the stage.
-
create_state - Introduces a new transition state into a project's workflow.
-
Parameters:
project_id(string, required): Project UUID.state_data: Payload object containing:name(string, required): Name for the new stage.color(string, required): Hexadecimal or named color representation.
-
update_state - Modifies the configuration of an extant workflow stage.
-
Parameters:
project_id(string, required): Project UUID.state_id(string, required): State UUID.state_data(object): Fields to revise for the state.
-
delete_state - Decommissions a specific workflow stage.
- Parameters:
project_id(string, required): Project UUID.state_id(string, required): State UUID.
Metadata Tags (Labels)
list_labels- Retrieves the complete set of metadata tags applicable to a project.
-
Parameters:
project_id(string, required): Project UUID.
-
get_label - Fetches the configuration details for a singular metadata tag.
-
Parameters:
project_id(string, required): Project UUID.label_id(string, required): UUID of the requested label.
-
create_label - Registers a new organizational tag within a project.
-
Parameters:
project_id(string, required): Project UUID.label_data: Payload object containing:name(string, required): The unique textual identifier for the tag.color(string, required): Associated color value.
-
update_label - Modifies the properties of an existing metadata tag.
-
Parameters:
project_id(string, required): Project UUID.label_id(string, required): Label UUID.label_data(object): Fields designated for update.
-
delete_label - Removes a metadata tag from project scope.
- Parameters:
project_id(string, required): Project UUID.label_id(string, required): Label UUID.
Work Items (Issues)
get_issue_using_readable_identifier- Retrieves comprehensive details for an issue using its human-readable reference (e.g., PROJ-123).
-
Parameters:
project_identifier(string, required): The alphanumeric key defining the project (e.g., "PROJ").issue_identifier(string, required): The sequential number portion of the reference (e.g., "123").
-
get_issue_comments - Fetches the entire chronological thread of user comments associated with a specific work item.
-
Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.
-
add_issue_comment - Injects a new commentary entry into a work item's history.
-
Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.comment_html(string, required): The content of the comment, formatted in HTML.
-
create_issue - Generates a new work item within a specified project.
-
Parameters:
project_id(string, required): Project UUID.issue_data: Payload object containing:name(string, required): The summary title of the task.description_html(string, required): The primary body content, in HTML format.
-
update_issue - Applies modifications to an existing work item's attributes.
- Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.issue_data(object): The collection of fields to revise.
Component Groupings (Modules)
list_modules- Retrieves all defined component groupings within a project context.
-
Parameters:
project_id(string, required): Project UUID.
-
get_module - Fetches the structural definition of a specific component grouping.
-
Parameters:
project_id(string, required): Project UUID.module_id(string, required): UUID of the module.
-
create_module - Initializes a new organizational grouping structure inside a project.
-
Parameters:
project_id(string, required): Project UUID.module_data: Payload object containing:name(string, required): The designation for this grouping.
-
update_module - Revises the metadata or structure of an existing grouping.
-
Parameters:
project_id(string, required): Project UUID.module_id(string, required): Module UUID.module_data(object): Fields to be updated.
-
delete_module - Permanently invalidates a component grouping.
- Parameters:
project_id(string, required): Project UUID.module_id(string, required): Module UUID.
Module-Issue Association
list_module_issues- Lists all work items currently affiliated with a specific grouping.
-
Parameters:
project_id(string, required): Project UUID.module_id(string, required): Module UUID.
-
add_module_issues - Affiliates one or more existing work items to a component grouping.
-
Parameters:
project_id(string, required): Project UUID.module_id(string, required): Module UUID.issues(string[], required): A list of Issue UUIDs to be associated.
-
delete_module_issue - Dissociates a work item from its current module grouping.
- Parameters:
project_id(string, required): Project UUID.module_id(string, required): Module UUID.issue_id(string, required): UUID of the work item to detach.
Time Periods (Cycles)
list_cycles- Retrieves all active and archived time-boxed periods for a project.
-
Parameters:
project_id(string, required): Project UUID.
-
get_cycle - Fetches configuration details for a specific time period.
-
Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): UUID of the cycle.
-
create_cycle - Defines a new, time-bound period for planning.
-
Parameters:
project_id(string, required): Project UUID.cycle_data: Payload object containing:name(string, required): Identifier for the time period.start_date(string, required): Opening date in 'YYYY-MM-DD' format.end_date(string, required): Closing date in 'YYYY-MM-DD' format.
-
update_cycle - Adjusts the properties of an established time period.
-
Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): Cycle UUID.cycle_data(object): Fields to revise for the cycle.
-
delete_cycle - Erases a defined time period record.
- Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): Cycle UUID.
Cycle-Issue Association
list_cycle_issues- Lists all work items slated for completion within a specific time period.
-
Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): Cycle UUID.
-
add_cycle_issues - Assigns a cohort of work items to a designated time period.
-
Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): Cycle UUID.issues(string[], required): An array containing the UUIDs of the issues to schedule.
-
delete_cycle_issue - Removes a work item from its current cycle assignment.
- Parameters:
project_id(string, required): Project UUID.cycle_id(string, required): Cycle UUID.issue_id(string, required): UUID of the work item being unassigned from the cycle.
Effort Tracking (Work Logs)
get_issue_worklogs- Retrieves all recorded time entries against a particular work item.
-
Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.
-
get_total_worklogs - Calculates the aggregate time committed across all issues in a project.
-
Parameters:
project_id(string, required): Project UUID.
-
create_worklog - Records a new block of effort expended on an issue.
-
Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.worklog_data: Payload object containing:description(string, required): Summary of the activity performed.duration(integer, required): Time spent, quantified in minutes.
-
update_worklog - Revises the details of a previously submitted time entry.
-
Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.worklog_id(string, required): UUID of the specific time entry to modify.worklog_data(object): Fields targeted for revision.
-
delete_worklog - Purges a specific time logging record.
- Parameters:
project_id(string, required): Project UUID.issue_id(string, required): Work Item UUID.worklog_id(string, required): UUID of the time entry to discard.
System Configuration Requirements
To authorize access and target the correct instance, the following environment variables must be configured:
PLANE_API_KEY: Your personal Plane API authentication credential, obtainable from the application interface under Workspace Settings -> API Tokens (/settings/api-tokens/).PLANE_WORKSPACE_SLUG: The unique segment identifier for your workspace, derived from the Plane URL structure.PLANE_API_HOST_URL(Optional): The base endpoint URL for the Plane API. Defaults to the public endpoint:https://api.plane.so/
Deployment Instructions
Integration with Claude Desktop
To enable interaction via Claude Desktop, modify your local configuration file (claude_desktop_config.json) as follows:
{
"mcpServers": {
"plane": {
"command": "npx",
"args": [
"-y",
"@makeplane/plane-mcp-server"
],
"env": {
"PLANE_API_KEY": "
Integration with VS Code
For integration within the Visual Studio Code environment, append the following configuration to your .vscode.json or dedicated mcp.json file:
{
"servers": {
"plane": {
"command": "npx",
"args": [
"-y",
"@makeplane/plane-mcp-server"
],
"env": {
"PLANE_API_KEY": "
Licensing Information
This service component is released under the permissive MIT License. Full usage, modification, and redistribution rights are granted subject to the terms detailed in the accompanying LICENSE file within the source repository.
