plane-mcp
MCP server for Plane, the open-source project management tool, exposing a focused set of task and comment management tools for a single Plane project. Includes a setup wizard to bind a local folder to a Plane project and configure Claude Code or Codex.
README
plane-mcp
An MCP (Model Context Protocol) server for Plane, the open-source project management tool — plus a setup wizard that binds a project folder to a Plane project in one command.
One CLI, four subcommands:
plane-mcp(orplane-mcp setup) — interactively binds the current folder to a Plane project (writes MCP config for Claude Code / Codex, updates the agent memo).plane-mcp mcp— the MCP server itself (stdio).plane-mcp list— lists projects from your local registry.plane-mcp update— self-upgrade via pipx.
Design
Most Plane MCP servers expose dozens of tools and make the model pass
workspace and project on every call. This one is deliberately narrow:
one MCP server instance = one Plane project, fixed via environment
variables at startup. The model gets a small, task-focused tool surface and
can never write to the wrong project.
Tools (MCP)
| Tool | Purpose |
|---|---|
list_tasks(status_group?, state_id?, assignee_id?, limit?, cursor?) |
List tasks; status_group=backlog shows only the backlog. |
get_task(id_or_identifier) |
By UUID or PROJ-42 identifier. |
create_task(name, …) |
Create a task. |
update_task(issue_id, …) |
Patch any fields. |
change_status(issue_id, status_group OR state_id) |
Sugar over update. |
add_comment(issue_id, body_html) |
Post an HTML comment (sanitized via nh3). |
list_comments(issue_id) |
Read comments, incl. presigned URLs for inline images. |
add_comment_with_image(issue_id, body_html, image_path) |
Comment with an embedded image. |
upload_attachment(issue_id, file_path) |
Attach a local file. |
list_attachments(issue_id) / get_attachment_url(…) / delete_attachment(…) |
Manage attachments. |
read_attachment_image(issue_id, attachment_id) |
Return an image attachment as native MCP image content. |
list_states() / list_members() / list_labels() |
Lookups, cached 5 min. |
status_group ∈ backlog, unstarted, started, completed, cancelled.
Installation
brew install pipx # or: sudo apt install pipx
pipx ensurepath
pipx install git+https://github.com/babazulu/plane-mcp
Configure your projects
Create ~/.config/plane-mcp/projects.toml with one entry per Plane project
you work with:
[projects.MyProject]
id = "00000000-0000-0000-0000-000000000000" # Plane project UUID
api_key = "plane_api_..." # Plane API key (Workspace Settings → API tokens)
workspace_slug = "my-workspace"
base_url = "https://plane.example.com" # your Plane host (or https://app.plane.so)
Verify with:
plane-mcp list
Bind a project folder
cd /path/to/my/project
plane-mcp # interactive: pick the agent and the Plane project
Or fully flag-driven:
plane-mcp setup --agent codex --project MyProject
plane-mcp setup --agent claude --project MyProject --dir /other/path
What it does:
- Creates/merges
./.mcp.json(Claude Code) or./.codex/config.toml(Codex) — adds or updates theplane-<name>MCP server entry and leaves existing entries untouched. - Upserts an agent memo block in
CLAUDE.md(Claude) orAGENTS.md(Codex), bounded by<!-- plane-mcp:start --> … end -->markers. - Prints a first prompt to copy into the agent.
On the next launch in that folder, Claude Code or Codex picks up the
plane-<name> MCP server and can work with tasks.
MCP server configuration (ENV)
The MCP host (Claude Code / Codex) passes these from its config. If you run
plane-mcp mcp by hand, set them yourself:
PLANE_API_URL=https://plane.example.com
PLANE_API_KEY=...
PLANE_WORKSPACE_SLUG=...
PLANE_PROJECT_ID=<uuid>
Development
git clone https://github.com/babazulu/plane-mcp
cd plane-mcp
python3 -m venv .venv && . .venv/bin/activate
pip install -e .
plane-mcp list
plane-mcp setup --dir /tmp/test-folder --agent codex --project MyProject
Releases
- Bump
versioninpyproject.tomlandsrc/plane_mcp/__init__.py. - Commit and push (CI runs lint + build).
- Tag:
git tag v0.2.0 && git push --tags— CI attaches the wheel and sdist to a GitHub Release.
Troubleshooting
plane-mcp: missing required env vars — the MCP host didn't pass the
PLANE_* variables. Re-run plane-mcp setup in the folder, or check the
env block in .mcp.json / .codex/config.toml.
no project registry found — create ~/.config/plane-mcp/projects.toml
(see Configure your projects).
The agent doesn't see the MCP server — make sure plane-mcp is on
PATH for the process that spawns the agent, and that the config file sits
in the folder you launched the agent from:
which plane-mcp # should print a path
plane-mcp mcp < /dev/null # should fail fast with a readable env-var error
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.