by kelvin6365
Facilitates LLM interaction with Plane.so to list projects, retrieve details, create new issues, and update existing issues via a Model Context Protocol server.
Plane MCP Server provides a set of tools that let large language models directly manage projects and issues in Plane.so through its API. By exposing operations such as listing projects, fetching project details, creating issues, listing and filtering issues, retrieving issue details, and updating issues, the server enables seamless integration of LLMs into project‑management workflows.
Installation – The quickest method is via Smithery:
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client claude
For manual setup, clone the repo, run npm install
, and build with npm run build
.
Configuration – Add the server to Claude (or another supported client) 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"
}
}
}
}
Restart the client after saving.
Invocation – Use the defined tools (list-projects
, get-project
, create-issue
, list-issues
, get-issue
, update-issue
) within prompts. The client will call the server, which forwards the request to Plane.so and returns the result.
Q: Which Node.js version is required? A: Node.js 22.x or newer.
Q: How are credentials protected? A: The API key and workspace slug are supplied as environment variables; never commit them to the repository.
Q: Can I customize the tool names?
A: Tool names use hyphens (e.g., list-projects
). Underscores are automatically converted, but the canonical names are hyphenated.
Q: What clients are supported? A: Claude for Desktop, Cursor, WindSurf, EnConvo, Witsy, and others listed in the Smithery install command.
Q: How do I test the server locally?
A: Run npx @modelcontextprotocol/inspector node dist/index.js
after building.
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.
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
If you prefer to set up the server manually, follow these steps:
git clone https://github.com/kelvin6365/plane-mcp-server.git
cd plane-mcp-server
npm install
npm run build
Note: If you used Option 1 (Smithery) above, you can skip this section. Smithery automatically configures the MCP server for you.
Open your Claude for Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
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"
}
}
}
}
Note: Tool names use hyphens (e.g.,
list-projects
), not underscores. The server will automatically convert underscores to hyphens for compatibility.
Lists all projects in your Plane workspace.
Parameters: None
Example:
{}
Gets detailed information about a specific project.
Parameters:
project_id
: ID of the project to retrieveExample:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
Creates a new issue in a specified project.
Parameters:
project_id
: ID of the project where the issue should be createdname
: Title of the issuedescription_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 issueassignees
(optional): Array of user IDs to assign to this issueNote: 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"]
}
Lists issues from a specified project with optional filtering.
Parameters:
project_id
: ID of the project to get issues fromstate_id
(optional): Filter by state IDpriority
(optional): Filter by priorityassignee_id
(optional): Filter by assignee IDlimit
(optional): Maximum number of issues to return (default: 50)Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"priority": "high",
"limit": 10
}
Gets detailed information about a specific issue.
Parameters:
project_id
: ID of the project containing the issueissue_id
: ID of the issue to retrieveExample:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
Updates an existing issue in a project.
Parameters:
project_id
: ID of the project containing the issueissue_id
: ID of the issue to updatename
(optional): Updated title of the issuedescription_html
(optional): HTML description of the issue (required by Plane API)priority
(optional): Updated priority of the issuestate_id
(optional): Updated state ID of the issueassignees
(optional): Updated array of user IDs to assign to this issueNote: 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>"
}
npm install --save-dev typescript @types/node
npm run dev
You can test the server using the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Here are some example interactions you can try with Claude after setting up the Plane MCP server:
Claude will use the appropriate tools to interact with Plane while asking for your approval before creating or modifying any issues.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "plane": { "command": "npx", "args": [ "-y", "@kelvin6365/plane-mcp-server" ], "env": { "PLANE_API_KEY": "<YOUR_API_KEY>", "PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>" } } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by Skyvern-AI
Automates browser‑based workflows by leveraging large language models and computer‑vision techniques, turning natural‑language prompts into fully functional web interactions without writing custom scripts.
by ahujasid
Enables Claude AI to control Blender for prompt‑assisted 3D modeling, scene creation, and manipulation via a socket‑based Model Context Protocol server.
by PipedreamHQ
Connect APIs quickly with a free, hosted integration platform that enables event‑driven automations across 1,000+ services and supports custom code in Node.js, Python, Go, or Bash.
by elie222
Organizes email inbox, drafts replies in the user's tone, tracks follow‑ups, and provides analytics to achieve inbox zero quickly.
by grab
Enables Cursor AI to read and programmatically modify Figma designs through a Model Context Protocol integration.
by ahujasid
Enables Claude AI to control Ableton Live in real time, allowing AI‑driven creation, editing, and playback of tracks, clips, instruments, and effects through a socket‑based server.
by leonardsellem
Provides tools and resources to enable AI assistants to manage and execute n8n workflows via natural language commands.
by GongRzhe
Provides a Model Context Protocol server that enables AI assistants to send, read, search, and organize Gmail messages, supporting attachments, label and filter management, and automatic OAuth2 authentication.
by mario-andreschak
A unified platform that manages AI models, MCP servers, and complex workflows, offering secure key storage, visual flow building, and an interactive chat UI.