MCP Connector

Integrate Language Models with Plane Project Management

An MCP server for Plane.so - list projects and manage issue creation, filtering, retrieval, and updates.

Works with plane

91
Spark score
out of 100
Updated 7 months ago
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Enable language models to directly interact with Plane.so for seamless project and task management. Automate project workflows by integrating AI capabilities into your existing Plane setup.

Outcomes

What it gets done

01

List and retrieve project details from Plane.

02

Create, view, filter, and update issues within Plane projects.

03

Configure API access for secure integration with your Plane workspace.

04

Utilize AI to manage project tasks and information.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-plane | bash

Capabilities

Tools your agent gets

list-projects

Displays all projects in your Plane workspace

get-project

Retrieves detailed information about a specific project

create-issue

Creates a new issue in the specified project with customizable properties

list-issues

Displays and filters issues from projects

get-issue

Retrieves detailed information about a specific issue

update-issue

Updates existing issues with new information

Overview

Plane MCP Server

This MCP server exposes six tools for Plane.so: project listing and detail retrieval, and issue creation, filtering, retrieval, and updates with priority, state, and assignees. Use it when an AI assistant needs to manage Plane.so projects and issues. Requires Node.js 22+, a Plane.so API key, and a workspace.

What it does

An MCP server enabling LLMs to interact with Plane.so, managing projects and issues through Plane's API while keeping the user in control. It exposes six tools (named with hyphens, e.g. list-projects, though the server auto-converts underscores for compatibility): list-projects lists all projects in the workspace with no parameters; get-project retrieves details for a specific project by project_id; create-issue creates a new issue given a project_id, name, and required description_html, with optional priority (urgent/high/medium/low/none), state_id, and an assignees array of user ID strings (a documented common error is passing a dictionary or nesting issue data inside assignees instead of a plain string array - the server attempts to handle this defensively, but the correct array format is recommended); list-issues lists a project's issues with optional filters by state_id, priority, assignee_id, and a result limit (default 50); get-issue retrieves a specific issue by project_id and issue_id; and update-issue updates an existing issue's name, description_html, priority, state_id, or assignees.

When to use - and when NOT to

Use it when an AI assistant needs to manage Plane.so projects and issues - listing projects, creating or updating issues with priority and assignees, or filtering a project's issue list. It requires Node.js 22.x or higher, a Plane.so API key, and a Plane.so workspace.

Capabilities

Six tools covering project listing/detail retrieval and full issue lifecycle management (create, list with filtering, get, update) including priority levels, workflow state, and assignee arrays - the create/update issue operations require an HTML description per Plane's own API requirements.

How to install

npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client claude

Smithery supports multiple clients (claude, cline, windsurf, roo-cline, witsy, enconvo, cursor) via the --client flag, and automatically configures the MCP server so the manual setup steps below can be skipped entirely. For manual setup: clone the repository, npm install, npm run build, then add to claude_desktop_config.json with PLANE_API_KEY, PLANE_WORKSPACE_SLUG, and an optional PLANE_HOST environment variable:

{
  "mcpServers": {
    "plane": {
      "command": "node",
      "args": ["path/to/plane-mcp-server/build/index.js"],
      "env": { "PLANE_API_KEY": "your_plane_api_key_here", "PLANE_WORKSPACE_SLUG": "your_workspace_slug_here" }
    }
  }
}

Who it's for

Teams using Plane.so for project management who want an AI assistant to list projects, and create, filter, retrieve, or update issues - setting priority, workflow state, and assignees - conversationally instead of through the Plane web app. Its security posture has also been independently reviewed under the MseeP.ai security assessment program, with the result published alongside the project.

Source README

Plane MCP Server

Trust Score
smithery badge

MseeP.ai Security Assessment Badge
Verified on MseeP

A Model Context Protocol (MCP) server that enables LLMs to interact with Plane.so, allowing them to manage projects and issues through Plane's API. Using this server, LLMs like Claude can directly interact with your project management workflows while maintaining user control and security.

Features

  • List all projects in your Plane workspace
  • Get detailed information about specific projects
  • Create new issues with customizable properties
  • List and filter issues from projects
  • Get detailed information about specific issues
  • Update existing issues with new information

Prerequisites

  • Node.js 22.x or higher
  • A Plane.so API key
  • A Plane.so workspace

Installation

Option 1: Using Smithery

The quickest way to get started is to use Smithery to install the server directly:

# Install to Claude for Desktop
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client claude

This command will automatically set up the Plane MCP Server for use with Claude. After installation, you'll need to configure the server with your Plane API key and workspace slug through the Claude settings.

Valid client options are: claude, cline, windsurf, roo-cline, witsy, enconvo, cursor

Example for installing with Cursor:

npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client cursor

Option 2: Manual Setup

If you prefer to set up the server manually, follow these steps:

  1. Clone this repository:
git clone https://github.com/kelvin6365/plane-mcp-server.git
cd plane-mcp-server
  1. Install dependencies:
npm install
  1. Build the server:
npm run build

Usage with Claude for Desktop

Note: If you used Option 1 (Smithery) above, you can skip this section. Smithery automatically configures the MCP server for you.

  1. Open your Claude for Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the Plane MCP server configuration:

{
  "mcpServers": {
    "plane": {
      "command": "node",
      "args": ["path/to/plane-mcp-server/build/index.js"],
      "env": {
        "PLANE_API_KEY": "your_plane_api_key_here",
        "PLANE_WORKSPACE_SLUG": "your_workspace_slug_here",
        "PLANE_HOST": "optional"
      }
    }
  }
}
  1. Restart Claude for Desktop

Available Tools

Note: Tool names use hyphens (e.g., list-projects), not underscores. The server will automatically convert underscores to hyphens for compatibility.

list-projects

Lists all projects in your Plane workspace.

Parameters: None

Example:

{}

get-project

Gets detailed information about a specific project.

Parameters:

  • project_id: ID of the project to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

create-issue

Creates a new issue in a specified project.

Parameters:

  • project_id: ID of the project where the issue should be created
  • name: Title of the issue
  • description_html: HTML description of the issue (required by Plane API)
  • priority (optional): Priority of the issue ("urgent", "high", "medium", "low", "none")
  • state_id (optional): ID of the state for this issue
  • assignees (optional): Array of user IDs to assign to this issue

Note: The assignees parameter must be an array of user ID strings. Common errors include providing a dictionary/object instead of an array, or accidentally nesting the entire issue data inside the assignees field. The server will attempt to handle these cases, but it's best to use the correct format.

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "Implement new feature",
  "description_html": "<p>We need to implement the new reporting feature</p>",
  "priority": "high",
  "assignees": ["user-id-1", "user-id-2"]
}

list-issues

Lists issues from a specified project with optional filtering.

Parameters:

  • project_id: ID of the project to get issues from
  • state_id (optional): Filter by state ID
  • priority (optional): Filter by priority
  • assignee_id (optional): Filter by assignee ID
  • limit (optional): Maximum number of issues to return (default: 50)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "priority": "high",
  "limit": 10
}

get-issue

Gets detailed information about a specific issue.

Parameters:

  • project_id: ID of the project containing the issue
  • issue_id: ID of the issue to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

update-issue

Updates an existing issue in a project.

Parameters:

  • project_id: ID of the project containing the issue
  • issue_id: ID of the issue to update
  • name (optional): Updated title of the issue
  • description_html (optional): HTML description of the issue (required by Plane API)
  • priority (optional): Updated priority of the issue
  • state_id (optional): Updated state ID of the issue
  • assignees (optional): Updated array of user IDs to assign to this issue

Note: The assignees parameter must be an array of user ID strings, following the same format guidelines as the create-issue tool.

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "priority": "urgent",
  "description_html": "<p>Updated description with <strong>more details</strong></p>"
}

Development

  1. Install development dependencies:
npm install --save-dev typescript @types/node
  1. Start the server in development mode:
npm run dev

Testing

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Examples

Here are some example interactions you can try with Claude after setting up the Plane MCP server:

  1. "Can you list all the projects in my Plane workspace?"
  2. "Please create a new high-priority issue in the Marketing project titled 'Update social media strategy'"
  3. "What are all the high-priority issues in the Development project?"
  4. "Update issue #123 in the QA project to change its priority to urgent"

Claude will use the appropriate tools to interact with Plane while asking for your approval before creating or modifying any issues.

Security Considerations

  • The API key requires proper Plane permissions to function
  • All operations that modify data require explicit user approval
  • Environment variables should be properly secured
  • API keys should never be committed to version control

Star History

Star History Chart

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.