{"id":11427,"name":"Plane","description":"Project management for humans and AI agents. Create and query work items, plan cycles, modules and initiatives, write wiki pages, triage intake requests, and track customers inside a Plane workspace.","card_url":"https://plane.so/.well-known/agent-card.json","endpoint":"https://mcp.plane.so/http/mcp","protocol_version":"0.3.0","first_seen":"2026-10-10T13:00:56.119378+00:00","last_verified":"2026-10-11T19:32:41.645116+00:00","card":{"url":"https://mcp.plane.so/http/mcp","name":"Plane","$defs":{"Epic":{"type":"object","title":"Epic","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string"},"state_id":{"type":["string","null"],"format":"uuid"},"label_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"parent_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"target_date":{"type":["string","null"],"format":"date"},"assignee_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"description_html":{"type":["string","null"]}},"description":"A large body of work that parents other work items."},"Page":{"type":"object","title":"Page","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"access":{"enum":[0,1],"type":"integer"},"owned_by":{"type":"string","format":"uuid"},"is_locked":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"archived_at":{"type":["string","null"],"format":"date-time"},"description_html":{"type":["string","null"]}},"description":"A document at workspace (wiki) or project scope."},"Cycle":{"type":"object","title":"Cycle","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"enum":["draft","upcoming","current","completed"],"type":"string"},"project":{"type":"string","format":"uuid"},"end_date":{"type":["string","null"],"format":"date"},"owned_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]}},"description":"A time-boxed iteration within a project."},"Error":{"type":"object","title":"Error","properties":{"error":{"type":"string","description":"Human-readable message. Set on request, throttling, and not-found failures."},"detail":{"type":"string","description":"Human-readable message. Set on authentication and permission failures."},"error_code":{"type":"string","description":"Stable code for programmatic handling, where the endpoint sets one."}},"description":"An error. Read `error` or `detail`, whichever is present, for the message; `error_code` is the stable machine-readable code where the endpoint sets one."},"Label":{"type":"object","title":"Label","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":["string","null"]},"parent":{"type":["string","null"],"format":"uuid"},"project":{"type":"string","format":"uuid"},"sort_order":{"type":"number"},"description":{"type":["string","null"]}}},"State":{"type":"object","title":"Workflow state","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"},"group":{"enum":["backlog","unstarted","started","completed","cancelled"],"type":"string"},"default":{"type":"boolean"},"project":{"type":"string","format":"uuid"},"sequence":{"type":"number"},"is_triage":{"type":"boolean"},"description":{"type":["string","null"]}}},"Member":{"type":"object","title":"Workspace member","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":["string","null"],"format":"email"},"is_bot":{"type":"boolean"},"member":{"type":"object","description":"The user record for this membership.","additionalProperties":true},"is_active":{"type":"boolean"},"last_name":{"type":"string"},"role_slug":{"type":"string","description":"Role within the namespace, e.g. `admin`, `member`, `guest`."},"first_name":{"type":"string"},"display_name":{"type":"string"}}},"Module":{"type":"object","title":"Module","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"lead":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"status":{"enum":["backlog","planned","in-progress","paused","completed","cancelled"],"type":"string"},"members":{"type":"array","items":{"type":"string","format":"uuid"}},"project":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"target_date":{"type":["string","null"],"format":"date"}},"description":"A grouping of related work within a project."},"Project":{"type":"object","title":"Project","required":["id","name","identifier"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"network":{"enum":[0,2],"type":"integer","description":"0 private to members, 2 visible to the whole workspace."},"timezone":{"type":"string"},"page_view":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"cycle_view":{"type":"boolean"},"identifier":{"type":"string","description":"Short prefix used in work item identifiers, e.g. `ENG`."},"updated_at":{"type":"string","format":"date-time"},"archived_at":{"type":["string","null"],"format":"date-time"},"description":{"type":["string","null"]},"intake_view":{"type":"boolean"},"module_view":{"type":"boolean"},"project_lead":{"type":["string","null"],"format":"uuid"},"default_assignee":{"type":["string","null"],"format":"uuid"},"is_time_tracking_enabled":{"type":"boolean"}}},"Release":{"type":"object","title":"Release","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string"},"changelog":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":["string","null"],"format":"date-time"},"description_html":{"type":["string","null"]}},"description":"A release in the workspace, with its tags, labels, and changelog."},"WorkLog":{"type":"object","title":"Work log","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"duration":{"type":"integer","description":"Minutes logged."},"issue_id":{"type":"string","format":"uuid"},"logged_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]}}},"Customer":{"type":"object","title":"Customer","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":["string","null"],"format":"email"},"stage":{"type":["string","null"]},"domain":{"type":["string","null"]},"revenue":{"type":["string","null"]},"employees":{"type":["integer","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"website_url":{"type":["string","null"],"format":"uri"},"contract_status":{"type":["string","null"]},"description_html":{"type":["string","null"]}}},"Estimate":{"type":"object","title":"Estimate","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"enum":["points","categories","time"],"type":"string"},"project":{"type":"string","format":"uuid"},"last_used":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}},"description":"A project's estimation system."},"WorkItem":{"type":"object","title":"Work item","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"state":{"type":["string","null"],"format":"uuid"},"labels":{"type":"array","items":{"type":"string","format":"uuid"}},"parent":{"type":["string","null"],"format":"uuid"},"project":{"type":"string","format":"uuid"},"type_id":{"type":["string","null"],"format":"uuid"},"is_draft":{"type":"boolean"},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"archived_at":{"type":["string","null"],"format":"date-time"},"external_id":{"type":["string","null"]},"sequence_id":{"type":"integer","description":"Per-project counter behind the human identifier, e.g. 42 in ENG-42."},"target_date":{"type":["string","null"],"format":"date"},"completed_at":{"type":["string","null"],"format":"date-time"},"estimate_point":{"type":["string","null"],"format":"uuid"},"external_source":{"type":["string","null"]},"description_html":{"type":["string","null"]}},"description":"A task, bug, or story. Epics are work items of an epic type."},"Milestone":{"type":"object","title":"Milestone","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"project":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"target_date":{"type":["string","null"],"format":"date"}}},"Teamspace":{"type":"object","title":"Teamspace","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"lead_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string","format":"date-time"},"logo_props":{"type":"object","additionalProperties":true},"member_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string","format":"date-time"},"project_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"description_html":{"type":["string","null"]}},"description":"A group of members and projects that share a space."},"Initiative":{"type":"object","title":"Initiative","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"lead":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"state":{"type":["string","null"],"format":"uuid"},"end_date":{"type":["string","null"],"format":"date"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"archived_at":{"type":["string","null"],"format":"date-time"},"description_html":{"type":["string","null"]}},"description":"A workspace-level goal that projects and epics roll up into."},"CurrentUser":{"type":"object","title":"Current user","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":["string","null"],"format":"email"},"avatar":{"type":["string","null"]},"is_bot":{"type":"boolean"},"last_name":{"type":"string"},"first_name":{"type":"string"},"display_name":{"type":"string"},"last_workspace_id":{"type":["string","null"],"format":"uuid"}},"description":"The user or bot the credential authenticates as."},"WorkItemLink":{"type":"object","title":"Work item link","required":["id","url"],"properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri"},"issue":{"type":"string","format":"uuid"},"title":{"type":["string","null"]},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"description":"An external URL attached to a work item."},"WorkItemType":{"type":"object","title":"Work item type","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"level":{"type":"integer"},"is_epic":{"type":"boolean"},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"is_default":{"type":"boolean"},"logo_props":{"type":"object","additionalProperties":true},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"project_ids":{"type":"array","items":{"type":"string","format":"uuid"}}},"description":"A type that gives work items their own icon and custom properties."},"WorkLogTotal":{"type":"object","title":"Work log total","properties":{"duration":{"type":"integer","description":"Total minutes logged."},"issue_id":{"type":"string","format":"uuid"}},"description":"Total time logged against one work item, in minutes."},"EstimatePoint":{"type":"object","title":"Estimate point","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"integer"},"value":{"type":"string"},"estimate":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"}},"description":"One selectable value in an estimate system."},"IntakeWorkItem":{"type":"object","title":"Intake work item","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"issue":{"type":"string","format":"uuid"},"source":{"type":["string","null"],"description":"Where the request came in from, e.g. `in-app`, `email`, `forms`."},"status":{"enum":[-2,-1,0,1,2],"type":"integer","description":"-2 pending, -1 rejected, 0 snoozed, 1 accepted, 2 duplicate."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"duplicate_to":{"type":["string","null"],"format":"uuid"},"snoozed_till":{"type":["string","null"],"format":"date-time"}},"description":"A submitted request awaiting triage."},"CustomerRequest":{"type":"object","title":"Customer request","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"link":{"type":["string","null"],"format":"uri"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"customer_id":{"type":"string","format":"uuid"},"work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"description_html":{"type":["string","null"]}},"description":"Something a customer asked for, linkable to the work items that deliver it."},"IdpGroupMapping":{"type":"object","title":"Identity provider group mapping","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"role":{"type":"string","description":"Plane role granted to members of that group."},"created_at":{"type":"string","format":"date-time"},"project_id":{"type":["string","null"],"format":"uuid","description":"Set on project mappings only."},"updated_at":{"type":"string","format":"date-time"},"idp_group_name":{"type":"string","description":"Group name as it appears in the identity provider."}},"description":"Maps a group from your identity provider to a Plane role, at workspace or project scope."},"ProjectFeatures":{"type":"object","title":"Project features","properties":{"epics":{"type":"boolean"},"pages":{"type":"boolean"},"views":{"type":"boolean"},"cycles":{"type":"boolean"},"intakes":{"type":"boolean"},"modules":{"type":"boolean"},"work_item_types":{"type":"boolean"}},"description":"Which feature modules are enabled on a project. Read this before calling a capability that depends on one."},"WorkItemComment":{"type":"object","title":"Work item comment","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"actor":{"type":"string","format":"uuid"},"issue":{"type":"string","format":"uuid"},"access":{"enum":["INTERNAL","EXTERNAL"],"type":"string"},"parent":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"comment_html":{"type":["string","null"]}}},"AgentRunActivity":{"type":"object","title":"Agent run activity","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["prompt","thought","action","response","elicitation","error"],"type":"string"},"signal":{"enum":["continue","complete","failed",null],"type":["string","null"]},"content":{"type":"object","additionalProperties":true},"agent_run":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"}},"description":"One unit of communication inside an Agent Run. Thoughts and actions are ephemeral; a response becomes a visible comment."},"WorkItemActivity":{"type":"object","title":"Work item activity","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"verb":{"type":"string","description":"What happened, e.g. `created`, `updated`."},"actor":{"type":"string","format":"uuid"},"field":{"type":["string","null"],"description":"Which field changed, e.g. `state`, `priority`, `assignees`."},"issue":{"type":"string","format":"uuid"},"comment":{"type":["string","null"],"description":"Human-readable summary of the change."},"new_value":{"type":["string","null"]},"old_value":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"}},"description":"One entry in a work item's change history."},"WorkItemRelation":{"type":"object","title":"Work item relation","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"issue":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"related_issue":{"type":"string","format":"uuid"},"relation_type":{"type":"string","examples":["blocked_by","blocks","duplicate","relates_to"],"description":"Relation kind. Workspaces can also define custom relation types."}},"description":"A typed link between two work items, such as blocking or duplicate."},"WorkspaceFeatures":{"type":"object","title":"Workspace features","properties":{"pi":{"type":"boolean","description":"Plane AI."},"wiki":{"type":"boolean"},"teams":{"type":"boolean","description":"Teamspaces."},"customers":{"type":"boolean"},"initiatives":{"type":"boolean"},"project_grouping":{"type":"boolean"}},"description":"Which workspace-level features are enabled, including Plane AI (`pi`)."},"WorkItemAttachment":{"type":"object","title":"Work item attachment","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"asset":{"type":"string","description":"Storage key for the uploaded file."},"issue_id":{"type":"string","format":"uuid"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"size":{"type":"integer"},"type":{"type":"string"}},"description":"File metadata."},"created_at":{"type":"string","format":"date-time"}}},"WorkItemPropertyValue":{"type":"object","title":"Custom property value","required":["id"],"properties":{"id":{"type":"string","format":"uuid"},"value":{"description":"Shape depends on the property type — text, number, date, boolean, or option id."},"property":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"value_text":{"type":["string","null"]},"value_option":{"type":["string","null"],"format":"uuid"}},"description":"The value of one custom property on one work item."},"WorkItemCountBreakdown":{"type":"object","title":"Work item count breakdown","properties":{"count":{"type":"integer","description":"Total matching work items."},"groups":{"type":"array","items":{"type":"object","properties":{"key":{"type":["string","null"],"description":"The grouping value, e.g. a state id or a priority."},"count":{"type":"integer"},"sub_groups":{"type":"array","items":{"type":"object","properties":{"key":{"type":["string","null"]},"count":{"type":"integer"}}}}}},"description":"One entry per group when `group_by` is set."},"group_by":{"type":["string","null"]},"sub_group_by":{"type":["string","null"]}},"description":"Aggregated work item counts, optionally grouped and sub-grouped. The closest thing Plane exposes programmatically to a dashboard figure."},"WorkItemAttachmentUpload":{"type":"object","title":"Attachment upload credentials","properties":{"asset_id":{"type":"string","format":"uuid"},"asset_url":{"type":"string"},"upload_data":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"fields":{"type":"object","additionalProperties":true}},"description":"Presigned URL and the form fields to send with the file."}},"description":"Presigned target to POST the file to, followed by a completion call."}},"skills":[{"id":"search-work-items","name":"Search work items","tags":["work-items","search","read-only"],"examples":["Find every open work item mentioning \"SSO\" across the workspace.","Which work items assigned to me are overdue?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Find work items across a workspace by free-text query or a Plane Query Language (PQL) filter, without knowing project ids up front.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"pql":{"type":"string","description":"Optional PQL filter, e.g. `stateGroup = \"started\" AND assignee = @me`. Call the PQL reference first."},"query":{"type":"string","minLength":1,"description":"Free-text search across work item names and identifiers."},"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/WorkItem"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"list-work-items","name":"List work items in a project","tags":["work-items","read-only"],"examples":["List the unfinished work items in the Engineering project, newest first."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Page through the work items in one project, optionally filtered with PQL and narrowed to a sparse field set.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"pql":{"type":"string"},"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"expand":{"type":"string","description":"Comma-separated related fields to inline, e.g. `assignees,labels`."},"fields":{"type":"string","description":"Comma-separated sparse field set."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/WorkItem"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"find-work-item-by-identifier","name":"Find a work item by its readable identifier","tags":["work-items","read-only","prerequisite"],"examples":["What is the status of ENG-42?","Summarise ENG-42 and tell me who owns it."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Retrieve a work item from the identifier people actually use, such as ENG-42, without first resolving a UUID. This is the only work item action that accepts a readable identifier — every other action takes the work item's UUID.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["work_item_identifier"],"properties":{"expand":{"type":"string","description":"Comma-separated related fields to inline, e.g. `assignees,labels`."},"fields":{"type":"string","description":"Comma-separated sparse field set."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"work_item_identifier":{"type":"string","pattern":"^[A-Za-z0-9]+-[0-9]+$","examples":["ENG-42"],"description":"The project identifier and sequence number joined by a hyphen, e.g. `ENG-42`."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItem"}},{"id":"create-work-item","name":"Create a work item","tags":["work-items","write"],"examples":["Create an urgent bug in the Engineering project titled \"Login returns 500\" and assign it to me."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Open a new work item in a project with a name, description, priority, state, assignees, labels, and dates.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"state":{"type":"string","format":"uuid","description":"Workflow state id. List the project states first if you only have a name."},"labels":{"type":"array","items":{"type":"string","format":"uuid"}},"parent":{"type":"string","format":"uuid"},"type_id":{"type":"string","format":"uuid"},"is_draft":{"type":"boolean","default":false},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string","default":"none"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"project_id":{"type":"string","format":"uuid"},"start_date":{"type":"string","format":"date"},"external_id":{"type":"string","description":"Identifier in the originating system."},"target_date":{"type":"string","format":"date"},"estimate_point":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"external_source":{"type":"string","description":"Name of the originating system, for idempotent syncs."},"description_html":{"type":"string","description":"Rich-text body. Wins over `description_stripped`."},"description_stripped":{"type":"string","description":"Plain-text body, wrapped into HTML on save."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItem"}},{"id":"update-work-item","name":"Update a work item","tags":["work-items","write"],"examples":["Move ENG-42 to In Progress and set its target date to next Friday."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Change any subset of a work item — state, priority, dates, description, assignees, labels. Only the fields passed are modified.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id"],"properties":{"name":{"type":"string","maxLength":255},"state":{"type":"string","format":"uuid"},"labels":{"type":"array","items":{"type":"string","format":"uuid"}},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"project_id":{"type":"string","format":"uuid"},"start_date":{"type":"string","format":"date"},"target_date":{"type":"string","format":"date"},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItem"}},{"id":"comment-on-work-item","name":"Comment on a work item","tags":["work-items","collaboration","write"],"examples":["Comment on ENG-42 with a summary of what I changed and link the pull request."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Post, edit, or read comments on a work item so an agent can report progress where the work lives.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","comment_html"],"properties":{"access":{"enum":["INTERNAL","EXTERNAL"],"type":"string","default":"INTERNAL"},"parent":{"type":"string","format":"uuid","description":"Reply to an existing comment."},"project_id":{"type":"string","format":"uuid"},"comment_html":{"type":"string","minLength":1},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItemComment"}},{"id":"log-time","name":"Log time against a work item","tags":["time-tracking","write"],"examples":["Log 90 minutes against ENG-42 for the migration work."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Record a work log with a duration in minutes, and read back the logs on a work item.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","duration"],"properties":{"duration":{"type":"integer","minimum":1,"description":"Minutes spent."},"project_id":{"type":"string","format":"uuid"},"description":{"type":"string"},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkLog"}},{"id":"list-projects","name":"List projects","tags":["projects","read-only"],"examples":["What projects exist in this workspace and which ones am I a member of?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Enumerate the projects in a workspace with their ids, identifiers, and enabled features.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/Project"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"create-project","name":"Create a project","tags":["projects","write"],"examples":["Create a project called Platform with identifier PLAT and cycles enabled."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Set up a project with a name, short identifier, lead, timezone, and the feature modules it should use.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","identifier"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"timezone":{"type":"string","description":"IANA timezone name."},"page_view":{"type":"boolean"},"cycle_view":{"type":"boolean"},"identifier":{"type":"string","maxLength":12,"minLength":1,"description":"Short prefix for work item ids, e.g. `ENG`."},"description":{"type":"string"},"intake_view":{"type":"boolean"},"module_view":{"type":"boolean"},"project_lead":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"default_assignee":{"type":"string","format":"uuid"},"is_time_tracking_enabled":{"type":"boolean"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Project"}},{"id":"plan-cycle","name":"Plan a cycle","tags":["planning","cycles","write"],"examples":["Open a two-week cycle in Engineering starting Monday and add the three highest-priority bugs."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create a time-boxed cycle, list what is in it, and move work items in or out — the sprint-planning loop.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"end_date":{"type":"string","format":"date"},"owned_by":{"type":"string","format":"uuid"},"timezone":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"start_date":{"type":"string","format":"date"},"description":{"type":"string"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Cycle"}},{"id":"plan-module","name":"Plan a module","tags":["planning","modules","write"],"examples":["Create a module for the billing rewrite, lead it with Priya, and target end of quarter."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Group related work into a module with a lead, members, dates, and a delivery status.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name"],"properties":{"lead":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":255,"minLength":1},"status":{"enum":["backlog","planned","in-progress","paused","completed","cancelled"],"type":"string"},"members":{"type":"array","items":{"type":"string","format":"uuid"}},"project_id":{"type":"string","format":"uuid"},"start_date":{"type":"string","format":"date"},"description":{"type":"string"},"target_date":{"type":"string","format":"date"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Module"}},{"id":"track-initiative","name":"Track an initiative","tags":["planning","initiatives","write"],"examples":["Create an initiative for FY26 platform reliability and link the Platform and Infra projects."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create and update workspace initiatives, and attach the projects and epics that roll up into them.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"properties":{"lead":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":255,"minLength":1},"end_date":{"type":"string","format":"date"},"start_date":{"type":"string","format":"date"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Initiative"}},{"id":"manage-wiki-pages","name":"Read and write wiki pages","tags":["knowledge","pages","write"],"examples":["Write up the incident timeline as a page in the Platform project."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"List and create pages at workspace (wiki) or project scope, so an agent can file specs and notes next to the work.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","description_html"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"access":{"enum":[0,1],"type":"integer","description":"0 public within the workspace, 1 private to the author."},"is_locked":{"type":"boolean"},"project_id":{"type":"string","format":"uuid","description":"Omit to create a workspace wiki page instead of a project page."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Page"}},{"id":"triage-intake","name":"Triage the intake queue","tags":["intake","triage","write"],"examples":["Summarise everything waiting in the Support intake queue and flag likely duplicates."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Read the intake queue for a project and accept, reject, or convert submitted requests into work items.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/IntakeWorkItem"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"manage-customers","name":"Manage customers and requests","tags":["customers","write"],"examples":["Add Acme Corp as a customer and link the two feature requests they raised."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create customer records, log their requests, and link the work items that deliver against them.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"email":{"type":"string","format":"email"},"stage":{"type":"string"},"domain":{"type":"string"},"employees":{"type":"integer","minimum":0},"website_url":{"type":"string","format":"uri"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"contract_status":{"type":"string"},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Customer"}},{"id":"resolve-members","name":"Resolve workspace members","tags":["members","read-only","prerequisite"],"examples":["Who are the admins of this workspace?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Look up workspace and project members and their roles, so names in a prompt can be turned into the ids other capabilities require.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"email":{"type":"string"},"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"is_active":{"type":"boolean"},"role_slug":{"type":"string","description":"Filter by role, e.g. `admin`, `member`, `guest`."},"display_name":{"type":"string"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/Member"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"get-current-user","name":"Identify the current user","tags":["members","read-only","prerequisite"],"examples":["Who am I connected as, and is this a bot account?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Resolve who the credential authenticates as, including whether it is a bot. Call this to attribute work and to interpret `@me` in a PQL filter.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/CurrentUser"}},{"id":"get-pql-reference","name":"Retrieve the query language reference","tags":["query","read-only","prerequisite"],"examples":["Show me the PQL syntax for overdue, in-progress work assigned to me."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Fetch the Plane Query Language syntax reference — operators, functions, fields, and worked examples. Call this before composing a `pql` filter for any capability that accepts one.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"detail":{"enum":["full","brief"],"type":"string","default":"full","description":"`full` gives operators, functions and examples; `brief` gives a compact field and operator list."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","properties":{"reference":{"type":"string","description":"The PQL reference as text."}}}},{"id":"list-workflow-states","name":"List workflow states","tags":["workspace","states","read-only","prerequisite"],"examples":["What states does the Engineering project have, and which one counts as done?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Read a project's workflow states and their groups. Call this to turn a state name such as \"In Progress\" into the id that creating and updating work items requires.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/State"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"list-labels","name":"List labels","tags":["workspace","labels","read-only","prerequisite"],"examples":["Which labels exist in the Platform project?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Read a project's labels. Call this to turn label names into the ids that creating and updating work items requires.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/Label"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"read-work-item-activity","name":"Read a work item's history","tags":["work-items","audit","read-only"],"examples":["Summarise what changed on ENG-42 this week, including state changes and reassignments."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Page through the change history of a work item — state moves, reassignments, field edits — to summarise what happened and when.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id"],"properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"project_id":{"type":"string","format":"uuid"},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/WorkItemActivity"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"relate-work-items","name":"Relate work items","tags":["work-items","dependencies","write"],"examples":["Mark ENG-42 as blocked by ENG-17."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create a typed relation between two work items — blocking, blocked by, duplicate, relates to, or a custom workspace relation type — so dependencies are explicit.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","relation_type","related_work_item_ids"],"properties":{"project_id":{"type":"string","format":"uuid"},"work_item_id":{"type":"string","format":"uuid"},"relation_type":{"type":"string","examples":["blocked_by","blocks","duplicate","relates_to"],"description":"Relation kind. List the workspace relation definitions first to discover custom types."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"related_work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"array","items":{"$ref":"#/$defs/WorkItemRelation"}}},{"id":"link-work-item","name":"Attach an external link to a work item","tags":["work-items","links","write"],"examples":["Link the pull request for this fix to ENG-42."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Add a titled external URL to a work item — a pull request, a dashboard, a design file — and read back the links already on it.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","url"],"properties":{"url":{"type":"string","format":"uri"},"title":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItemLink"}},{"id":"attach-file-to-work-item","name":"Attach a file to a work item","tags":["work-items","attachments","write"],"examples":["Attach the failing test log to ENG-42."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Upload a file to a work item. Request presigned upload credentials, POST the file to the returned URL, then confirm the upload. Over MCP the `upload_from_url` action does all three in one call.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","name","size","type"],"properties":{"name":{"type":"string","description":"File name including its extension."},"size":{"type":"integer","minimum":1,"description":"File size in bytes."},"type":{"type":"string","description":"MIME type, e.g. `image/png`."},"project_id":{"type":"string","format":"uuid"},"external_id":{"type":"string"},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"external_source":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItemAttachmentUpload"}},{"id":"manage-work-item-types","name":"Manage work item types","tags":["work-items","configuration","write","prerequisite"],"examples":["Add an Incident work item type to the Platform project."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"List and create the work item types in a project — Bug, Story, Epic and any custom type — each with its own icon and custom properties. Prefer the MCP `resolve` action over `create`: it finds an existing type or creates one without duplicating, which is also the only way to get a usable type in a workspace that centrally governs its type vocabulary and refuses project-scoped writes. `import_to_project` links existing workspace types to a project.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"is_active":{"type":"boolean"},"logo_props":{"type":"object","additionalProperties":true},"project_id":{"type":"string","format":"uuid","description":"Omit for the workspace's own set of types rather than one project's."},"description":{"type":"string"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItemType"}},{"id":"set-custom-property-values","name":"Read and write custom property values","tags":["work-items","custom-fields","write"],"examples":["Set the Severity property on ENG-42 to S1."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Set or read the value of a work item's custom properties, so an agent can populate the fields a team actually tracks rather than only the built-in ones.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","work_item_id","property_id","values"],"properties":{"values":{"type":"array","items":{"type":"string"},"minItems":1,"description":"One entry per value. Multi-select properties accept several."},"project_id":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","description":"List the work item type's properties first to find this id."},"work_item_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"array","items":{"$ref":"#/$defs/WorkItemPropertyValue"}}},{"id":"manage-estimates","name":"Manage estimates","tags":["planning","estimates","write","prerequisite"],"examples":["Set up Fibonacci story points on the Engineering project."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create a project's estimation system and read its points, so the `estimate_point` id required when sizing a work item can be resolved.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name","type"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"type":{"enum":["points","categories","time"],"type":"string"},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"estimate_points":{"type":"array","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"integer"},"value":{"type":"string"}}},"description":"The selectable values, in order."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Estimate"}},{"id":"manage-epics","name":"Manage epics","tags":["planning","epics","write"],"examples":["Create an epic for the billing rewrite and move the five related bugs under it."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create epics and attach the work items that roll up into them. Plane models an epic as a work item whose type is named Epic, so over MCP there is no epic tool: resolve the Epic type with `workitem_type resolve`, pass the returned id as `type_id` to `workitem create`, then list epics with `pql='type = \"<type id>\"'` and an epic's children with `pql='childOf(\"ENG-12\")'`. REST has dedicated epic paths that do this for you.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string"},"state_id":{"type":"string","format":"uuid"},"label_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"parent_id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"start_date":{"type":"string","format":"date"},"target_date":{"type":"string","format":"date"},"assignee_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Epic"}},{"id":"plan-milestone","name":"Plan a milestone","tags":["planning","milestones","write"],"examples":["Add a Beta milestone to the Platform project targeting 15 March."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Create dated checkpoints in a project and attach the work items that must land by each one.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","title"],"properties":{"title":{"type":"string","maxLength":255,"minLength":1},"project_id":{"type":"string","format":"uuid"},"target_date":{"type":"string","format":"date"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Milestone"}},{"id":"manage-cycle-work-items","name":"Fill and close out a cycle","tags":["planning","cycles","write"],"examples":["Put the three highest-priority bugs into the current cycle."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Add work items to a cycle, list what is in it, transfer unfinished work to the next cycle, and complete or archive it — the rest of the sprint loop beyond creating the cycle.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","cycle_id","work_item_ids"],"properties":{"cycle_id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/WorkItem"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"manage-module-work-items","name":"Fill a module","tags":["planning","modules","write"],"examples":["Move everything labelled billing into the billing module."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Add work items to a module and list what it already contains.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","module_id","work_item_ids"],"properties":{"module_id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/WorkItem"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"submit-intake-request","name":"Submit and resolve an intake request","tags":["intake","triage","write"],"examples":["File this bug report into the Support intake queue."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"File a request into a project intake queue, then accept, reject, snooze, or mark it duplicate. Pairs with reading the queue.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id","issue"],"properties":{"issue":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"priority":{"enum":["urgent","high","medium","low","none"],"type":"string"},"description_html":{"type":"string"}},"description":"The work item to submit for triage."},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/IntakeWorkItem"}},{"id":"manage-customer-requests","name":"Log customer requests","tags":["customers","write"],"examples":["Log Acme's request for SAML and link the two work items covering it."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Record what a customer asked for and link the work items that deliver it, so commitments are traceable back to the account.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["customer_id","name"],"properties":{"link":{"type":"string","format":"uri","description":"Where the request came from, e.g. a support ticket."},"name":{"type":"string","maxLength":255,"minLength":1},"customer_id":{"type":"string","format":"uuid"},"work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/CustomerRequest"}},{"id":"list-teamspaces","name":"List teamspaces","tags":["workspace","teamspaces","read-only"],"examples":["Which teamspaces exist and which projects belong to each?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Read the teamspaces in a workspace with their members and projects, to scope work to the right team.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"cursor":{"type":"string","description":"Cursor from a previous response, formatted `value:offset:is_prev`."},"order_by":{"type":"string","description":"Field to sort by. Prefix with `-` for descending order."},"per_page":{"type":"integer","default":20,"maximum":100,"minimum":1},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","required":["results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/$defs/Teamspace"}},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"next_page_results":{"type":"boolean"},"prev_page_results":{"type":"boolean"}}}},{"id":"manage-releases","name":"Manage releases and changelogs","tags":["releases","write"],"examples":["Cut a 2.4.0 release with everything completed in the current cycle and draft the changelog."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Create releases, attach the work items shipping in them, manage release tags and labels, and generate or edit the changelog.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"released_at":{"type":"string","format":"date-time"},"work_item_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"description_html":{"type":"string"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/Release"}},{"id":"report-agent-run-activity","name":"Report progress as a Plane agent","tags":["agents","collaboration","write"],"examples":["Reply in the Agent Run with the fix I applied and mark the run complete."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"For agents installed as Plane apps: post thoughts, actions, responses, elicitations, and errors into the Agent Run created when a user @mentions the agent on a work item. Thoughts and actions are ephemeral; a response becomes a visible comment.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_run_id","type","content"],"properties":{"type":{"enum":["thought","action","response","elicitation","error"],"type":"string","description":"`thought` and `action` are ephemeral; `response` posts a comment; `elicitation` asks the user a question."},"signal":{"enum":["continue","complete","failed"],"type":"string","description":"Whether the run stays open after this activity."},"content":{"type":"object","description":"Shape depends on `type`. See the signals and content payload reference.","additionalProperties":true},"agent_run_id":{"type":"string","format":"uuid","description":"From the webhook that triggered this run."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/AgentRunActivity"}},{"id":"count-work-items","name":"Count and group work items","tags":["work-items","reporting","read-only"],"examples":["How many open work items are there per assignee in the Engineering project?","Break down this cycle by state group and priority."],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Aggregate work item counts across a workspace or project, grouped and sub-grouped by state, priority, assignee, label, type, cycle, module, milestone, release, creator, or date. This is the reporting primitive: Plane's Dashboards and Analytics views themselves have no public API, so an agent answers \"how many, broken down by what\" with this.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"pql":{"type":"string","description":"Optional PQL filter. Call the PQL reference first."},"group_by":{"enum":["state_id","state__group","priority","project_id","type_id","labels__id","assignees__id","issue_module__module_id","release_work_items__release_id","cycle_id","milestone_id","created_by","target_date","start_date"],"type":"string","description":"Grouping key. These are grouping keys only — they are not PQL filter fields."},"project_id":{"type":"string","format":"uuid","description":"Omit to count across the whole workspace."},"sub_group_by":{"enum":["state_id","state__group","priority","project_id","type_id","labels__id","assignees__id","issue_module__module_id","release_work_items__release_id","cycle_id","milestone_id","created_by","target_date","start_date"],"type":"string","description":"Second grouping key, from the same set as `group_by`."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkItemCountBreakdown"}},{"id":"summarise-logged-time","name":"Summarise logged time","tags":["time-tracking","reporting","read-only"],"examples":["How much time has been logged per work item in the Platform project this month?"],"security":[{"planeOAuth":["read"]}],"inputModes":["text/plain","application/json"],"description":"Total the time logged against every work item in a project, for timesheet and capacity reporting. Pairs with logging time on an individual work item.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"array","items":{"$ref":"#/$defs/WorkLogTotal"}}},{"id":"manage-project-features","name":"Read and toggle project features","tags":["projects","configuration","write","prerequisite"],"examples":["Are cycles enabled on the Platform project? If not, turn them on."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Read or change which feature modules a project has enabled — epics, modules, cycles, views, pages, intake, work item types. Check this before calling a capability that depends on a module being on.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["project_id"],"properties":{"epics":{"type":"boolean"},"pages":{"type":"boolean"},"views":{"type":"boolean"},"cycles":{"type":"boolean"},"intakes":{"type":"boolean"},"modules":{"type":"boolean"},"project_id":{"type":"string","format":"uuid"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"work_item_types":{"type":"boolean"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/ProjectFeatures"}},{"id":"manage-workspace-features","name":"Read and toggle workspace features","tags":["workspace","configuration","write","prerequisite"],"examples":["Which workspace features are on, and is Plane AI enabled?"],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"Read or change which workspace-level features are enabled — initiatives, teamspaces, customers, wiki, project grouping, and Plane AI.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"pi":{"type":"boolean","description":"Plane AI."},"wiki":{"type":"boolean"},"teams":{"type":"boolean","description":"Teamspaces."},"customers":{"type":"boolean"},"initiatives":{"type":"boolean"},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."},"project_grouping":{"type":"boolean"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/WorkspaceFeatures"}},{"id":"map-identity-provider-groups","name":"Map identity provider groups to roles","tags":["workspace","identity","integration","write"],"examples":["Map the engineering-all IdP group to the Member role in this workspace."],"security":[{"planeOAuth":["read","write"]}],"inputModes":["text/plain","application/json"],"description":"List and create mappings from identity provider groups to Plane roles, at workspace or project scope. This is the one integration-shaped API Plane exposes — the native integrations (GitHub, GitLab, Slack, Sentry, Bitbucket) are configured in workspace settings and have no public endpoints.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["idp_group_name","role"],"properties":{"role":{"type":"string","description":"Plane role to grant members of that group."},"idp_group_name":{"type":"string","description":"Group name as it appears in the identity provider."},"workspace_slug":{"type":"string","description":"Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"$ref":"#/$defs/IdpGroupMapping"}}],"iconUrl":"https://plane.so/favicon/android-chrome-512x512.png","version":"0.3.0","x-plane":{"sourceUrl":"https://github.com/makeplane/plane","deployments":["cloud","self-hosted","air-gapped"],"supportEmail":"support@plane.so","repositoryUrl":"https://github.com/makeplane/plane-mcp-server","developerDocsUrl":"https://developers.plane.so"},"provider":{"url":"https://plane.so","organization":"Plane Software, Inc."},"security":[{"planeOAuth":["read","write"]},{"planeAccessToken":[]}],"description":"Project management for humans and AI agents. Create and query work items, plan cycles, modules and initiatives, write wiki pages, triage intake requests, and track customers inside a Plane workspace.","capabilities":{"streaming":false,"extensions":[{"uri":"https://modelcontextprotocol.io","required":true,"description":"Plane's agent interface is a Model Context Protocol server, not A2A JSON-RPC. Connect an MCP client to the url in this card. The machine-readable server description is at https://plane.so/.well-known/mcp.json"},{"uri":"https://spec.openapis.org/oas/v3.1.0","required":false,"description":"The same capabilities are available over REST. The OpenAPI 3.1 description is at https://plane.so/openapi.json."}],"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","securitySchemes":{"planeOAuth":{"type":"oauth2","flows":{"authorizationCode":{"scopes":{"read":"Read workspace data","write":"Create and modify workspace data"},"tokenUrl":"https://mcp.plane.so/token","authorizationUrl":"https://mcp.plane.so/authorize"}},"description":"Sign in to Plane and select a workspace. Supports dynamic client registration and PKCE."},"planeAccessToken":{"type":"http","scheme":"bearer","description":"Personal access token sent as `Authorization: Bearer <token>` with an `x-workspace-slug` header. For automations and headless agents."}},"documentationUrl":"https://developers.plane.so/dev-tools/mcp-server","defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["text/plain","application/json"],"preferredTransport":"MCP+HTTP","additionalInterfaces":[{"url":"https://mcp.plane.so/http/mcp","transport":"MCP+HTTP"},{"url":"https://mcp.plane.so/http/api-key/mcp","transport":"MCP+HTTP"},{"url":"https://api.plane.so/api/v1/","transport":"HTTP+JSON"}],"supportsAuthenticatedExtendedCard":false},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-11T19:32:41.645116+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agenstry federation","source_url":"https://agenstry.com/docs","last_check":{"checked_at":"2026-10-11T19:32:41.645116+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://plane.so/.well-known/agent-card.json"],"also_observed_in":[{"source_name":"Agent Tools Catalog","source_url":"https://agent-tools.cloud","last_seen":"2026-10-10T14:25:26.612423+00:00"}],"skills":[{"skill_id":"attach-file-to-work-item","name":"Attach a file to a work item","description":"Upload a file to a work item. Request presigned upload credentials, POST the file to the returned URL, then confirm the upload. Over MCP the `upload_from_url` action does all three in one call.","tags":["work-items","attachments","write"],"quality_warning":false},{"skill_id":"link-work-item","name":"Attach an external link to a work item","description":"Add a titled external URL to a work item — a pull request, a dashboard, a design file — and read back the links already on it.","tags":["work-items","links","write"],"quality_warning":false},{"skill_id":"comment-on-work-item","name":"Comment on a work item","description":"Post, edit, or read comments on a work item so an agent can report progress where the work lives.","tags":["work-items","collaboration","write"],"quality_warning":false},{"skill_id":"count-work-items","name":"Count and group work items","description":"Aggregate work item counts across a workspace or project, grouped and sub-grouped by state, priority, assignee, label, type, cycle, module, milestone, release, creator, or date. This is the reporting primitive: Plane's Dashboards and Analytics views themselves have no public API, so an agent answers \"how many, broken down by what\" with this.","tags":["work-items","reporting","read-only"],"quality_warning":false},{"skill_id":"create-project","name":"Create a project","description":"Set up a project with a name, short identifier, lead, timezone, and the feature modules it should use.","tags":["projects","write"],"quality_warning":false},{"skill_id":"create-work-item","name":"Create a work item","description":"Open a new work item in a project with a name, description, priority, state, assignees, labels, and dates.","tags":["work-items","write"],"quality_warning":false},{"skill_id":"manage-module-work-items","name":"Fill a module","description":"Add work items to a module and list what it already contains.","tags":["planning","modules","write"],"quality_warning":false},{"skill_id":"manage-cycle-work-items","name":"Fill and close out a cycle","description":"Add work items to a cycle, list what is in it, transfer unfinished work to the next cycle, and complete or archive it — the rest of the sprint loop beyond creating the cycle.","tags":["planning","cycles","write"],"quality_warning":false},{"skill_id":"find-work-item-by-identifier","name":"Find a work item by its readable identifier","description":"Retrieve a work item from the identifier people actually use, such as ENG-42, without first resolving a UUID. This is the only work item action that accepts a readable identifier — every other action takes the work item's UUID.","tags":["work-items","read-only","prerequisite"],"quality_warning":false},{"skill_id":"get-current-user","name":"Identify the current user","description":"Resolve who the credential authenticates as, including whether it is a bot. Call this to attribute work and to interpret `@me` in a PQL filter.","tags":["members","read-only","prerequisite"],"quality_warning":false},{"skill_id":"list-labels","name":"List labels","description":"Read a project's labels. Call this to turn label names into the ids that creating and updating work items requires.","tags":["workspace","labels","read-only","prerequisite"],"quality_warning":false},{"skill_id":"list-projects","name":"List projects","description":"Enumerate the projects in a workspace with their ids, identifiers, and enabled features.","tags":["projects","read-only"],"quality_warning":false},{"skill_id":"list-teamspaces","name":"List teamspaces","description":"Read the teamspaces in a workspace with their members and projects, to scope work to the right team.","tags":["workspace","teamspaces","read-only"],"quality_warning":false},{"skill_id":"list-work-items","name":"List work items in a project","description":"Page through the work items in one project, optionally filtered with PQL and narrowed to a sparse field set.","tags":["work-items","read-only"],"quality_warning":false},{"skill_id":"list-workflow-states","name":"List workflow states","description":"Read a project's workflow states and their groups. Call this to turn a state name such as \"In Progress\" into the id that creating and updating work items requires.","tags":["workspace","states","read-only","prerequisite"],"quality_warning":false},{"skill_id":"manage-customer-requests","name":"Log customer requests","description":"Record what a customer asked for and link the work items that deliver it, so commitments are traceable back to the account.","tags":["customers","write"],"quality_warning":false},{"skill_id":"log-time","name":"Log time against a work item","description":"Record a work log with a duration in minutes, and read back the logs on a work item.","tags":["time-tracking","write"],"quality_warning":false},{"skill_id":"manage-customers","name":"Manage customers and requests","description":"Create customer records, log their requests, and link the work items that deliver against them.","tags":["customers","write"],"quality_warning":false},{"skill_id":"manage-epics","name":"Manage epics","description":"Create epics and attach the work items that roll up into them. Plane models an epic as a work item whose type is named Epic, so over MCP there is no epic tool: resolve the Epic type with `workitem_type resolve`, pass the returned id as `type_id` to `workitem create`, then list epics with `pql='type = \"<type id>\"'` and an epic's children with `pql='childOf(\"ENG-12\")'`. REST has dedicated epic paths that do this for you.","tags":["planning","epics","write"],"quality_warning":false},{"skill_id":"manage-estimates","name":"Manage estimates","description":"Create a project's estimation system and read its points, so the `estimate_point` id required when sizing a work item can be resolved.","tags":["planning","estimates","write","prerequisite"],"quality_warning":false},{"skill_id":"manage-releases","name":"Manage releases and changelogs","description":"Create releases, attach the work items shipping in them, manage release tags and labels, and generate or edit the changelog.","tags":["releases","write"],"quality_warning":false},{"skill_id":"manage-work-item-types","name":"Manage work item types","description":"List and create the work item types in a project — Bug, Story, Epic and any custom type — each with its own icon and custom properties. Prefer the MCP `resolve` action over `create`: it finds an existing type or creates one without duplicating, which is also the only way to get a usable type in a workspace that centrally governs its type vocabulary and refuses project-scoped writes. `import_to_project` links existing workspace types to a project.","tags":["work-items","configuration","write","prerequisite"],"quality_warning":false},{"skill_id":"map-identity-provider-groups","name":"Map identity provider groups to roles","description":"List and create mappings from identity provider groups to Plane roles, at workspace or project scope. This is the one integration-shaped API Plane exposes — the native integrations (GitHub, GitLab, Slack, Sentry, Bitbucket) are configured in workspace settings and have no public endpoints.","tags":["workspace","identity","integration","write"],"quality_warning":false},{"skill_id":"plan-cycle","name":"Plan a cycle","description":"Create a time-boxed cycle, list what is in it, and move work items in or out — the sprint-planning loop.","tags":["planning","cycles","write"],"quality_warning":false},{"skill_id":"plan-milestone","name":"Plan a milestone","description":"Create dated checkpoints in a project and attach the work items that must land by each one.","tags":["planning","milestones","write"],"quality_warning":false},{"skill_id":"plan-module","name":"Plan a module","description":"Group related work into a module with a lead, members, dates, and a delivery status.","tags":["planning","modules","write"],"quality_warning":false},{"skill_id":"read-work-item-activity","name":"Read a work item's history","description":"Page through the change history of a work item — state moves, reassignments, field edits — to summarise what happened and when.","tags":["work-items","audit","read-only"],"quality_warning":false},{"skill_id":"manage-project-features","name":"Read and toggle project features","description":"Read or change which feature modules a project has enabled — epics, modules, cycles, views, pages, intake, work item types. Check this before calling a capability that depends on a module being on.","tags":["projects","configuration","write","prerequisite"],"quality_warning":false},{"skill_id":"manage-workspace-features","name":"Read and toggle workspace features","description":"Read or change which workspace-level features are enabled — initiatives, teamspaces, customers, wiki, project grouping, and Plane AI.","tags":["workspace","configuration","write","prerequisite"],"quality_warning":false},{"skill_id":"set-custom-property-values","name":"Read and write custom property values","description":"Set or read the value of a work item's custom properties, so an agent can populate the fields a team actually tracks rather than only the built-in ones.","tags":["work-items","custom-fields","write"],"quality_warning":false},{"skill_id":"manage-wiki-pages","name":"Read and write wiki pages","description":"List and create pages at workspace (wiki) or project scope, so an agent can file specs and notes next to the work.","tags":["knowledge","pages","write"],"quality_warning":false},{"skill_id":"relate-work-items","name":"Relate work items","description":"Create a typed relation between two work items — blocking, blocked by, duplicate, relates to, or a custom workspace relation type — so dependencies are explicit.","tags":["work-items","dependencies","write"],"quality_warning":false},{"skill_id":"report-agent-run-activity","name":"Report progress as a Plane agent","description":"For agents installed as Plane apps: post thoughts, actions, responses, elicitations, and errors into the Agent Run created when a user @mentions the agent on a work item. Thoughts and actions are ephemeral; a response becomes a visible comment.","tags":["agents","collaboration","write"],"quality_warning":false},{"skill_id":"resolve-members","name":"Resolve workspace members","description":"Look up workspace and project members and their roles, so names in a prompt can be turned into the ids other capabilities require.","tags":["members","read-only","prerequisite"],"quality_warning":false},{"skill_id":"get-pql-reference","name":"Retrieve the query language reference","description":"Fetch the Plane Query Language syntax reference — operators, functions, fields, and worked examples. Call this before composing a `pql` filter for any capability that accepts one.","tags":["query","read-only","prerequisite"],"quality_warning":false},{"skill_id":"search-work-items","name":"Search work items","description":"Find work items across a workspace by free-text query or a Plane Query Language (PQL) filter, without knowing project ids up front.","tags":["work-items","search","read-only"],"quality_warning":false},{"skill_id":"submit-intake-request","name":"Submit and resolve an intake request","description":"File a request into a project intake queue, then accept, reject, snooze, or mark it duplicate. Pairs with reading the queue.","tags":["intake","triage","write"],"quality_warning":false},{"skill_id":"summarise-logged-time","name":"Summarise logged time","description":"Total the time logged against every work item in a project, for timesheet and capacity reporting. Pairs with logging time on an individual work item.","tags":["time-tracking","reporting","read-only"],"quality_warning":false},{"skill_id":"track-initiative","name":"Track an initiative","description":"Create and update workspace initiatives, and attach the projects and epics that roll up into them.","tags":["planning","initiatives","write"],"quality_warning":false},{"skill_id":"triage-intake","name":"Triage the intake queue","description":"Read the intake queue for a project and accept, reject, or convert submitted requests into work items.","tags":["intake","triage","write"],"quality_warning":false},{"skill_id":"update-work-item","name":"Update a work item","description":"Change any subset of a work item — state, priority, dates, description, assignees, labels. Only the fields passed are modified.","tags":["work-items","write"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":14,"passed":14},"recent_checks":[{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T19:32:41.645116+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T17:14:38.405060+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T14:50:07.770928+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T12:12:22.594486+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T10:04:34.744929+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T07:48:52.717080+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T05:34:51.786445+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T03:17:07.438849+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-11T00:59:32.948807+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-10T22:40:41.536707+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-10T20:23:47.188458+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://plane.so/.well-known/agent-card.json","checked_at":"2026-10-10T18:06:23.713102+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-11T19:32:41.645116+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-11T14:50:07.770928+00:00","state":"skipped","http_status":null,"detail":"Read-only probe currently supports JSON-RPC, not MCP+HTTP"},"x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://plane.so/.well-known/agent-card.json","last_successful_card_check":"2026-10-11T19:32:41.645116+00:00","latest_card_check":{"checked_at":"2026-10-11T19:32:41.645116+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-11T19:32:41.645116+00:00","task_endpoint_tested":false,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-11T19:32:41.645116+00:00","endpoint_tls_reachable":true,"protocol_check_state":"skipped","protocol_checked_at":"2026-10-11T14:50:07.770928+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}