Skip to main content

Plane MCP Agent

Project description



Plane Logo

Modern project management for all teams

Discord online members Commit activity per month

WebsiteReleasesTwitterDocumentation

Plane Screens

Meet Plane, an open-source project management tool to track issues, run sprints cycles, and manage product roadmaps without the chaos of managing the tool itself. 🧘♀️

Version: 0.11.1

Plane is evolving every day. Your suggestions, ideas, and reported bugs help us immensely. Do not hesitate to join in the conversation on Discord or raise a GitHub issue. We read everything and respond to most.

🚀 Installation

Getting started with Plane is simple. Choose the setup that works best for you:

  • Plane Cloud Sign up for a free account on Plane Cloud—it's the fastest way to get up and running without worrying about infrastructure.

  • Self-host Plane Prefer full control over your data and infrastructure? Install and run Plane on your own servers. Follow our detailed deployment guides to get started.

Installation methods Docs link
Docker Docker
Kubernetes Kubernetes

Instance admins can configure instance settings with God mode.

🌟 Features

  • Work Items Efficiently create and manage tasks with a robust rich text editor that supports file uploads. Enhance organization and tracking by adding sub-properties and referencing related issues.

  • Cycles Maintain your team’s momentum with Cycles. Track progress effortlessly using burn-down charts and other insightful tools.

  • Modules Simplify complex projects by dividing them into smaller, manageable modules.

  • Views Customize your workflow by creating filters to display only the most relevant issues. Save and share these views with ease.

  • Pages Capture and organize ideas using Plane Pages, complete with AI capabilities and a rich text editor. Format text, insert images, add hyperlinks, or convert your notes into actionable items.

  • Analytics Access real-time insights across all your Plane data. Visualize trends, remove blockers, and keep your projects moving forward.

🛠️ Local development

See CONTRIBUTING

⚙️ Built with

React Router Django Node JS

📸 Screenshots

Plane Views

Plane Cycles and Modules

Plane Analytics

Plane Pages

📝 Documentation

Explore Plane's product documentation and developer documentation to learn about features, setup, and usage.

❤️ Community

Join the Plane community on GitHub Discussions and our Discord server. We follow a Code of conduct in all our community channels.

Feel free to ask questions, report bugs, participate in discussions, share ideas, request features, or showcase your projects. We’d love to hear from you!

🛡️ Security

If you discover a security vulnerability in Plane, please report it responsibly instead of opening a public issue. We take all legitimate reports seriously and will investigate them promptly. See Security policy for more info.

To disclose any security issues, please email us at security@plane.so.

🤝 Contributing

There are many ways you can contribute to Plane:

Please read CONTRIBUTING.md for details on the process for submitting pull requests to us.

Repo activity

Plane Repo Activity

We couldn't have done this without you.

Plane-MCP: https://github.com/makeplane/plane-mcp-server

Plane MCP Server

A Model Context Protocol (MCP) server for Plane integration. This server provides tools and resources for interacting with Plane through AI agents.

Features

  • 🔧 Plane Integration: Interact with Plane APIs and services
  • 🔌 Multiple Transports: Supports stdio, SSE, and streamable HTTP transports
  • 🌐 Remote & Local: Works both locally and as a remote service
  • 🛠️ Extensible: Easy to add new tools and resources

Usage

The server supports three transport methods. We recommend using uvx as it doesn't require installation.

1. Stdio Transport (for local use)

MCP Client Configuration (using uvx - recommended):

{
  "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"
      }
    }
  }
}

2. Remote HTTP Transport with OAuth

Connect to the hosted Plane MCP server using OAuth authentication.

URL: https://mcp.plane.so/http/mcp

MCP Client Configuration (for tools like Claude Desktop without native remote MCP support):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/mcp"]
    }
  }
}

Note: OAuth authentication will be handled automatically when connecting to the remote server.

3. Remote HTTP Transport using PAT Token

Connect to the hosted Plane MCP server using a Personal Access Token (PAT).

URL: https://mcp.plane.so/api-key/mcp

Headers:

  • Authorization: Bearer <PAT_TOKEN>
  • X-Workspace-slug: <SLUG>

MCP Client Configuration (for tools like Claude Desktop without native remote MCP support):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/api-key/mcp"],
      "headers": {
        "Authorization": "Bearer <PAT_TOKEN>",
        "X-Workspace-slug": "<SLUG>"
      }
    }
  }
}

4. SSE Transport (Legacy)

⚠️ Legacy Transport: SSE (Server-Sent Events) transport is maintained for backward compatibility. New implementations should use the HTTP transport (sections 2 or 3) instead.

Connect to the hosted Plane MCP server using OAuth authentication via Server-Sent Events.

URL: https://mcp.plane.so/sse

MCP Client Configuration (for tools that support SSE transport):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/sse"]
    }
  }
}

Note: OAuth authentication will be handled automatically when connecting to the remote server. This transport is deprecated in favor of the HTTP transport.

Configuration

Authentication

The server requires authentication via environment variables:

  • PLANE_BASE_URL: Base URL for Plane API (default: https://api.plane.so) - Optional
  • PLANE_API_KEY: API key for authentication (required for stdio transport)
  • PLANE_WORKSPACE_SLUG: Workspace slug identifier (required for stdio transport)
  • PLANE_ACCESS_TOKEN: Access token for authentication (alternative to API key)

Example (for stdio transport):

export PLANE_BASE_URL="https://api.plane.so"
export PLANE_API_KEY="your-api-key"
export PLANE_WORKSPACE_SLUG="your-workspace-slug"

Note: For remote HTTP transports (OAuth or PAT), authentication is handled via the connection method (OAuth flow or PAT headers) and does not require these environment variables.

Available MCP Tools

This server utilizes dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.

Tool Name Description
plane_cycles Consolidated Action-Routed tool for cycles. Methods: list_cycles, create_cycle, retrieve_cycle, update_cycle, delete_cycle, list_cycle_work_items, add_work_items_to_cycle
plane_epics Consolidated Action-Routed tool for epics. Methods: list_epics, create_epic, retrieve_epic, update_epic, delete_epic
plane_initiatives Consolidated Action-Routed tool for initiatives. Methods: list_initiatives, create_initiative
plane_intake Consolidated Action-Routed tool for intake. Methods: list_intake_work_items, create_intake_work_item
plane_labels Consolidated Action-Routed tool for labels. Methods: list_labels, create_label
plane_milestones Consolidated Action-Routed tool for milestones. Methods: list_milestones, create_milestone, retrieve_milestone, update_milestone, delete_milestone
plane_modules Consolidated Action-Routed tool for modules. Methods: list_modules, create_module, retrieve_module, update_module, delete_module
plane_pages Consolidated Action-Routed tool for pages. Methods: retrieve_project_page, create_project_page
plane_projects Consolidated Action-Routed tool for projects. Methods: list_projects, retrieve_project
plane_states Consolidated Action-Routed tool for states. Methods: list_states, create_state
plane_users Consolidated Action-Routed tool for users. Methods: list_users, get_me
plane_work_items Consolidated Action-Routed tool for work_items. Methods: list_work_items, create_work_item, update_work_item, delete_work_item, search_work_items, retrieve_work_item_by_identifier, retrieve_work_item, list_work_item_activities, list_work_item_comments, create_work_item_comment, list_work_item_links, create_work_item_link, list_work_item_relations, list_work_item_types, list_work_logs, create_work_log
plane_workspaces Consolidated Action-Routed tool for workspaces. Methods: get_workspace, get_workspace_members, get_workspace_features, update_workspace_features

Security & Governance

This project is built on agent-utilities, inheriting enterprise-grade security and governance features.

Authentication & Authorization

Feature Description
OIDC Token Delegation RFC 8693 token exchange for user-context propagation from A2A → MCP
Eunomia Policies Fine-grained, policy-driven tool authorization (none, embedded, remote)
Scoped Credentials Tools execute with the caller's scoped identity where possible
3LO / OAuth / API Token Multiple auth strategies with graceful fallback

Eunomia Policy Enforcement

Eunomia provides a policy enforcement point for all tool calls:

  • Embedded mode: Load local mcp_policies.json for role-based access, sensitivity gating, and audit logging
  • Remote mode: Forward authorization decisions to a central Eunomia policy server for multi-agent governance
  • Enable via CLI: --eunomia-type embedded --eunomia-policy-file mcp_policies.json

Runtime Protections

Protection Description
Tool Guard Sensitivity detection with human-in-the-loop approval gating
Prompt Injection Defense Input scanning and repetition/loop guards
Content Filtering Output schema enforcement and cost budget controls
Stuck Loop Detection Automatic detection and recovery from agent loops
Context Limit Warnings Proactive alerts before context window exhaustion

Graph Agent Architecture

The A2A agent uses pydantic-graph orchestration with:

  • RouterNode: Lightweight classifier that routes queries to specialized domains
  • DomainNode: Focused executor with only relevant tools loaded, preventing tool hallucination
  • Approval Gates: Policy-driven approval workflows before sensitive operations
  • Usage Guards: Budget and rate limiting enforcement

Production Recommendation: Enable --eunomia-type embedded (or remote) + OIDC delegation + containerized deployment. See agent-utilities documentation for full policy configuration.

Development

Running Tests

pytest

Code Formatting

black plane_mcp/
ruff check plane_mcp/

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Deprecation Notice

⚠️ The Node.js-based plane-mcp-server is deprecated and no longer maintained.

This repository represents the new Python+FastMCP based implementation of the Plane MCP server. If you were using the previous Node.js version, please migrate to this Python-based version for continued support and updates.

The new implementation offers:

  • Better type safety with Pydantic models
  • Improved performance with FastMCP
  • Enhanced tool coverage
  • Active maintenance and development

For migration assistance, please refer to the configuration examples in this README or open an issue for support.

Old Node.js Configuration (Deprecated):

If you were using the previous Node.js-based @makeplane/plane-mcp-server, your configuration looked like this:

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": [
        "-y",
        "@makeplane/plane-mcp-server"
      ],
      "env": {
        "PLANE_API_KEY": "<YOUR_API_KEY>",
        "PLANE_API_HOST_URL": "<HOST_URL_FOR_SELF_HOSTED>",
        "PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>"
      }
    }
  }
}

Please migrate to the new Python-based configuration shown in the Usage section above.

MCP Configuration Examples

stdio (recommended for local development)

{
  "mcpServers": {
    "plane": {
      "command": ".venv/bin/plane-mcp",
      "args": [],
      "env": {
        "PLANE_BASE_URL": "",
        "PLANE_API_KEY": "",
        "PLANE_WORKSPACE_SLUG": ""
}
    }
  }
}

Streamable HTTP (recommended for production)

{
  "mcpServers": {
    "plane": {
      "url": "http://localhost:8080/plane-mcp/mcp"
    }
  }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plane_agent-0.11.1.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plane_agent-0.11.1-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file plane_agent-0.11.1.tar.gz.

File metadata

  • Download URL: plane_agent-0.11.1.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for plane_agent-0.11.1.tar.gz
Algorithm Hash digest
SHA256 bc2e90f646bd00f70e857856cc9400deff20839e4a380cccb2b9c8b878e657c7
MD5 0fe7ce7a11e4ff1e5b10de4236792c46
BLAKE2b-256 c441259a136fedad56febe8ebea6188fdd87f354f8ab3347925b4a10485f490a

See more details on using hashes here.

File details

Details for the file plane_agent-0.11.1-py3-none-any.whl.

File metadata

  • Download URL: plane_agent-0.11.1-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for plane_agent-0.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 03f2ccca02b738c403bcd88f6d7f0df458a0a35f6e0417d4f05d93441aa009ab
MD5 50fd2603a1d269d0649d1cdc71bd2c2c
BLAKE2b-256 a12fca78f47a2faae42dc89546b9bfdf26f425eddb541447497775ad158df3c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page