Plane MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLANE_API_KEY | Yes | Personal Plane API token | |
| PLANE_BASE_URL | Yes | Your Plane instance URL | |
| PLANE_MCP_EXTENDED | No | Set to 'true' to enable all 108 tools (default: 'false') | false |
| DEFAULT_WORKSPACE_SLUG | Yes | Workspace slug from your Plane URL |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_versionA | Returns the Plane MCP server name and version. |
| list_projectsA | List all projects in the workspace. Call this first whenever you need a project_id to pass to other tools. |
| create_projectC | Create a new project. |
| retrieve_projectA | Retrieve a project by ID. |
| update_projectC | Update a project by ID. |
| delete_projectB | Delete a project by ID. |
| get_project_membersA | Get all members of a project. |
| list_work_itemsA | List work items (issues) in a project. Supports filtering by priority, state, state_group, assignees, labels, dates, cycle, and module. Use expand=relations,assignees,labels for richer data. Results are paginated — use the cursor from the response to fetch the next page. When linking to a work item, use the format: {PLANE_BASE_URL}/{workspace_slug}/browse/{project_identifier}-{sequence_id}/ |
| create_work_itemA | Create a new work item (issue) in a project. Requires project_id from list_projects. Use list_states to get state_id, get_workspace_members for assignee UUIDs, and list_labels for label UUIDs. Dates should be YYYY-MM-DD format. Priority is one of: urgent, high, medium, low, none. |
| retrieve_work_itemA | Retrieve a single work item by its UUID. Use expand=relations,assignees,labels for full details. If you have a human-readable identifier like DEV-42, use retrieve_work_item_by_identifier instead. |
| update_work_itemA | Update an existing work item. Only include fields you want to change — omitted fields are left unchanged. Use list_states for state_id, get_workspace_members for assignee UUIDs, list_labels for label UUIDs. |
| delete_work_itemB | Delete a work item by its UUID. |
| search_work_itemsA | Search for work items by text query. Matches against item names, sequence IDs, and project identifiers. Searches the entire workspace unless project_id is given. Results contain summary fields only (name, id, sequence_id, project identifier); use retrieve_work_item for full details. When linking to a work item, use the format: {PLANE_BASE_URL}/{workspace_slug}/browse/{project_identifier}-{sequence_id}/ |
| retrieve_work_item_by_identifierA | Retrieve a work item by its human-readable identifier (e.g. "DEV-42"). Provide the project identifier (e.g. "DEV") and the issue sequence number (e.g. 42). |
| list_statesA | List all states (statuses) in a project. Call this to get state UUIDs needed for creating or filtering work items. States are grouped by: backlog, unstarted, started, completed, cancelled. |
| create_stateA | Create a new state in a project. The group field determines where it appears in the workflow: backlog, unstarted, started, completed, or cancelled. |
| retrieve_stateA | Retrieve a state by ID. |
| update_stateC | Update a state by ID. |
| delete_stateA | Delete a state by ID. |
| list_labelsA | List all labels in a project. Call this to get label UUIDs needed for creating or filtering work items. |
| create_labelB | Create a new label in a project. |
| retrieve_labelC | Retrieve a label by ID. |
| update_labelC | Update a label by ID. |
| delete_labelC | Delete a label by ID. |
| list_cyclesA | List all cycles (sprints) in a project. Returns cycle IDs needed for managing cycle work items. |
| create_cycleA | Create a new cycle (sprint) in a project. The owned_by field requires a user UUID — get it from get_workspace_members or get_me. Dates should be YYYY-MM-DD format. |
| retrieve_cycleB | Retrieve a cycle by ID. |
| update_cycleB | Update a cycle by ID. |
| delete_cycleC | Delete a cycle by ID. |
| list_cycle_work_itemsA | List all work items in a specific cycle. Requires project_id and cycle_id — call list_cycles first to get the cycle_id. |
| add_work_items_to_cycleA | Add work items to a cycle. Provide an array of work item UUIDs in issue_ids. Get work item IDs from list_work_items and cycle_id from list_cycles. |
| remove_work_item_from_cycleB | Remove a work item from a cycle. |
| transfer_cycle_work_itemsA | Transfer incomplete work items from one cycle to another. The cycle_id is the source cycle; new_cycle_id is the destination. |
| list_modulesA | List all modules in a project. Modules group related work items by feature or theme. Returns module IDs needed for managing module work items. |
| create_moduleA | Create a new module in a project. The lead field requires a user UUID from get_workspace_members. Members is an array of user UUIDs. Dates should be YYYY-MM-DD format. |
| retrieve_moduleC | Retrieve a module by ID. |
| update_moduleC | Update a module by ID. |
| delete_moduleB | Delete a module by ID. |
| list_module_work_itemsB | List all work items in a module. |
| add_work_items_to_moduleA | Add work items to a module. Provide an array of work item UUIDs in issues. Get work item IDs from list_work_items and module_id from list_modules. |
| remove_work_item_from_moduleB | Remove a work item from a module. |
| list_epicsA | List all epics in a project. Epics are large bodies of work that span multiple work items. |
| create_epicC | Create a new epic in a project. |
| retrieve_epicB | Retrieve an epic by ID. |
| update_epicC | Update an epic by ID. |
| delete_epicC | Delete an epic by ID. |
| list_milestonesA | List all milestones in a project. Milestones represent key delivery dates or goals. Returns milestone IDs needed for managing milestone work items. |
| create_milestoneB | Create a new milestone in a project. |
| retrieve_milestoneA | Retrieve a milestone by ID. |
| update_milestoneC | Update a milestone by ID. |
| delete_milestoneB | Delete a milestone by ID. |
| list_milestone_work_itemsC | List all work items in a milestone. |
| add_work_items_to_milestoneC | Add work items to a milestone. |
| remove_work_items_from_milestoneB | Remove work items from a milestone. |
| list_initiativesB | List all initiatives in the workspace. |
| create_initiativeC | Create a new initiative. |
| retrieve_initiativeA | Retrieve an initiative by ID. |
| update_initiativeC | Update an initiative by ID. |
| delete_initiativeA | Delete an initiative by ID. |
| create_pageA | Create a new page. If project_id is provided, creates a project page; otherwise creates a workspace page. |
| retrieve_pageA | Retrieve a page by ID. If project_id is provided, retrieves a project page; otherwise retrieves a workspace page. |
| get_meA | Get the currently authenticated user. Returns the user profile including their UUID, which can be used as an assignee or cycle owner in other tools. |
| get_workspace_membersA | Get all workspace members with their user IDs. Call this to find assignee IDs before creating or filtering work items by assignee. |
| list_work_item_commentsB | List all comments on a work item. |
| create_work_item_commentC | Add a comment to a work item. |
| retrieve_work_item_commentC | Retrieve a single comment by ID. |
| update_work_item_commentC | Update a comment on a work item. |
| delete_work_item_commentC | Delete a comment from a work item. |
| list_work_item_linksB | List all links attached to a work item. |
| create_work_item_linkC | Add a link to a work item. |
| retrieve_work_item_linkC | Retrieve a single link by ID. |
| update_work_item_linkC | Update a link on a work item. |
| delete_work_item_linkB | Delete a link from a work item. |
| list_work_item_relationsB | List all relations for a work item. Relations include: blocked_by, blocks, duplicate, and relates_to. |
| create_work_item_relationC | Create a relation between two work items. |
| remove_work_item_relationB | Remove a relation between two work items. |
| list_work_item_activitiesB | List all activities (history/audit log) for a work item. |
| bulk_create_work_itemsA | Create multiple work items at once with automatic rate limiting and retry on 429. Pass an array of items — each with the same fields as create_work_item. Returns created IDs and any failures. Use this instead of calling create_work_item in a loop for 10+ items. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZethicTech/plane-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server