home / mcp / plane mcp server

Plane MCP Server

Plane's Official Model Context Protocol Server šŸ”Œ āŒØļø šŸ”„

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "makeplane-plane-mcp-server": {
      "url": "https://mcp.plane.so/http/mcp",
      "headers": {
        "PLANE_API_KEY": "your-api-key",
        "PLANE_BASE_URL": "https://api.plane.so",
        "PLANE_ACCESS_TOKEN": "your-access-token",
        "PLANE_WORKSPACE_SLUG": "your-workspace-slug"
      }
    }
  }
}

You have a Plane MCP Server that lets you interact with Plane APIs through AI agents. It provides multiple transports, supports both local and remote deployments, and is designed to be extended with new tools and resources to suit your automation and integration needs.

How to use

You connect an MCP client to Plane MCP Server to leverage a rich set of automation tools. Choose a transport that matches your environment: stdio for local runs, HTTP for remote access, or SSE for legacy setups. The recommended approach is to use the UVX-based stdio transport for a straightforward local workflow, but you can also connect remotely via OAuth or a PAT for centralized usage.

How to install

Prerequisites: you need Python installed, as this server is implemented with Python and FastMCP. You also need a shell environment to run commands and set environment variables.

1) Clone or obtain the Plane MCP Server package and navigate into its directory.

2) Install dependencies for the runtime environment you plan to use (e.g., Python packages or any build steps described for your setup).

3) Run the server using one of the supported transports. The stdio transport is recommended for local use and uses UVX to start the server.

4) Configure your MCP client to connect to the Plane MCP Server using the transport you chose. Below are example configurations you can adapt.

{
  "mcpServers": {
    "plane": {
      "command": "uvx",
      "args": ["plane-mcp-server", "stdio"],
      "env": {
        "PLANE_API_KEY": "<your-api-key>",
        "PLANE_WORKSPACE_SLUG": "<your-workspace-slug>",
        "PLANE_BASE_URL": "https://api.plane.so"
      }
    }
  }
}

Additional notes on the transport options

Remote HTTP transports connect to hosted Plane MCP services and support OAuth or PAT-based authentication. Use the provided URLs and client configurations to connect from your tools.

Configuration

Authentication is required for local (stdio) usage via environment variables. Remote HTTP transports authenticate through the connection method (OAuth flow or PAT headers) and do not require these local variables.

Security and access

When using stdio transport locally, protect your API key and workspace slug. For HTTP transports, rely on OAuth or PAT-based access controls to secure remote connections.

Troubleshooting

If you cannot connect, verify that the transport you selected is running, the API key and workspace slug are correctly set in the stdio configuration, and that any remote URLs are reachable from your network.

Notes

The SSE transport is maintained for backward compatibility but is deprecated in favor of the HTTP transports. Prefer the HTTP transports for new implementations.

Tools availability

The Plane MCP Server exposes a comprehensive set of tools to manage Plane projects, work items, cycles, modules, initiatives, intake work items, work item properties, and user data. See the Tools section for a complete list.

Available tools

list_projects

List all projects in a workspace with optional pagination and filtering

create_project

Create a new project with name, identifier, and optional configuration

retrieve_project

Retrieve a project by ID

update_project

Update a project with partial data

delete_project

Delete a project by ID

get_project_worklog_summary

Get work log summary for a project

get_project_members

Get all members of a project

get_project_features

Get features configuration of a project

update_project_features

Update features configuration of a project

list_work_items

List all work items in a project with optional filtering and pagination

create_work_item

Create a new work item with name, assignees, labels, and other attributes

retrieve_work_item

Retrieve a work item by ID with optional field expansion

retrieve_work_item_by_identifier

Retrieve a work item by project identifier and issue sequence number

update_work_item

Update a work item with partial data

delete_work_item

Delete a work item by ID

search_work_items

Search work items across a workspace with query string

list_cycles

List all cycles in a project

create_cycle

Create a new cycle with name, dates, and owner

retrieve_cycle

Retrieve a cycle by ID

update_cycle

Update a cycle with partial data

delete_cycle

Delete a cycle by ID

list_archived_cycles

List archived cycles in a project

add_work_items_to_cycle

Add work items to a cycle

remove_work_item_from_cycle

Remove a work item from a cycle

list_cycle_work_items

List work items in a cycle

transfer_cycle_work_items

Transfer work items from one cycle to another

archive_cycle

Archive a cycle

unarchive_cycle

Unarchive a cycle

list_modules

List all modules in a project

create_module

Create a new module with name, dates, status, and members

retrieve_module

Retrieve a module by ID

update_module

Update a module with partial data

delete_module

Delete a module by ID

list_archived_modules

List archived modules in a project

add_work_items_to_module

Add work items to a module

remove_work_item_from_module

Remove a work item from a module

list_module_work_items

List work items in a module

archive_module

Archive a module

unarchive_module

Unarchive a module

list_initiatives

List all initiatives in a workspace

create_initiative

Create a new initiative with name, dates, state, and lead

retrieve_initiative

Retrieve an initiative by ID

update_initiative

Update an initiative with partial data

delete_initiative

Delete an initiative by ID

list_intake_work_items

List all intake work items in a project with optional pagination

create_intake_work_item

Create a new intake work item in a project

retrieve_intake_work_item

Retrieve an intake work item by work item ID with optional field expansion

update_intake_work_item

Update an intake work item with partial data

delete_intake_work_item

Delete an intake work item by ID

list_work_item_properties

List work item properties for a work item type

create_work_item_property

Create a new work item property with type, settings, and validation rules

retrieve_work_item_property

Retrieve a work item property by ID

update_work_item_property

Update a work item property with partial data

delete_work_item_property

Delete a work item property by ID

get_me

Get current authenticated user information