Card snapshot
plane.so
·
2026-09-11 09:28:54 UTC
·
bb2afdddda59e636172a61b65e3fde5bae7bd0e69de052586722cd1636444d3f
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"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.",
"version": "0.3.0",
"url": "https://mcp.plane.so/http/mcp",
"preferredTransport": "MCP+HTTP",
"documentationUrl": "https://developers.plane.so/dev-tools/mcp-server",
"iconUrl": "https://plane.so/favicon/android-chrome-512x512.png",
"provider": {
"organization": "Plane Software, Inc.",
"url": "https://plane.so"
},
"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"
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": 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."
}
]
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"securitySchemes": {
"planeOAuth": {
"type": "oauth2",
"description": "Sign in to Plane and select a workspace. Supports dynamic client registration and PKCE.",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://mcp.plane.so/authorize",
"tokenUrl": "https://mcp.plane.so/token",
"scopes": {
"read": "Read workspace data",
"write": "Create and modify workspace data"
}
}
}
},
"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."
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
},
{
"planeAccessToken": []
}
],
"skills": [
{
"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"
],
"examples": [
"Find every open work item mentioning \"SSO\" across the workspace.",
"Which work items assigned to me are overdue?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"query"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Free-text search across work item names and identifiers."
},
"pql": {
"type": "string",
"description": "Optional PQL filter, e.g. `stateGroup = \"started\" AND assignee = @me`. Call the PQL reference first."
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItem"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"List the unfinished work items in the Engineering project, newest first."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"pql": {
"type": "string"
},
"expand": {
"type": "string",
"description": "Comma-separated related fields to inline, e.g. `assignees,labels`."
},
"fields": {
"type": "string",
"description": "Comma-separated sparse field set."
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItem"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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 \u2014 every other action takes the work item's UUID.",
"tags": [
"work-items",
"read-only",
"prerequisite"
],
"examples": [
"What is the status of ENG-42?",
"Summarise ENG-42 and tell me who owns it."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"work_item_identifier"
],
"additionalProperties": false,
"properties": {
"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]+$",
"description": "The project identifier and sequence number joined by a hyphen, e.g. `ENG-42`.",
"examples": [
"ENG-42"
]
},
"expand": {
"type": "string",
"description": "Comma-separated related fields to inline, e.g. `assignees,labels`."
},
"fields": {
"type": "string",
"description": "Comma-separated sparse field set."
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItem"
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Create an urgent bug in the Engineering project titled \"Login returns 500\" and assign it to me."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"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."
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
],
"default": "none"
},
"state": {
"type": "string",
"format": "uuid",
"description": "Workflow state id. List the project states first if you only have a name."
},
"assignees": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"labels": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"type_id": {
"type": "string",
"format": "uuid"
},
"parent": {
"type": "string",
"format": "uuid"
},
"estimate_point": {
"type": "string",
"format": "uuid"
},
"start_date": {
"type": "string",
"format": "date"
},
"target_date": {
"type": "string",
"format": "date"
},
"is_draft": {
"type": "boolean",
"default": false
},
"external_source": {
"type": "string",
"description": "Name of the originating system, for idempotent syncs."
},
"external_id": {
"type": "string",
"description": "Identifier in the originating system."
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItem"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"id": "update-work-item",
"name": "Update a work item",
"description": "Change any subset of a work item \u2014 state, priority, dates, description, assignees, labels. Only the fields passed are modified.",
"tags": [
"work-items",
"write"
],
"examples": [
"Move ENG-42 to In Progress and set its target date to next Friday."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"maxLength": 255
},
"description_html": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
},
"state": {
"type": "string",
"format": "uuid"
},
"assignees": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"labels": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"start_date": {
"type": "string",
"format": "date"
},
"target_date": {
"type": "string",
"format": "date"
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItem"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Comment on ENG-42 with a summary of what I changed and link the pull request."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"comment_html"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"comment_html": {
"type": "string",
"minLength": 1
},
"access": {
"type": "string",
"enum": [
"INTERNAL",
"EXTERNAL"
],
"default": "INTERNAL"
},
"parent": {
"type": "string",
"format": "uuid",
"description": "Reply to an existing comment."
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItemComment"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Log 90 minutes against ENG-42 for the migration work."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"duration"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"duration": {
"type": "integer",
"minimum": 1,
"description": "Minutes spent."
},
"description": {
"type": "string"
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkLog"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"id": "list-projects",
"name": "List projects",
"description": "Enumerate the projects in a workspace with their ids, identifiers, and enabled features.",
"tags": [
"projects",
"read-only"
],
"examples": [
"What projects exist in this workspace and which ones am I a member of?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/Project"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Create a project called Platform with identifier PLAT and cycles enabled."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"name",
"identifier"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"identifier": {
"type": "string",
"minLength": 1,
"maxLength": 12,
"description": "Short prefix for work item ids, e.g. `ENG`."
},
"description": {
"type": "string"
},
"project_lead": {
"type": "string",
"format": "uuid"
},
"default_assignee": {
"type": "string",
"format": "uuid"
},
"timezone": {
"type": "string",
"description": "IANA timezone name."
},
"cycle_view": {
"type": "boolean"
},
"module_view": {
"type": "boolean"
},
"page_view": {
"type": "boolean"
},
"intake_view": {
"type": "boolean"
},
"is_time_tracking_enabled": {
"type": "boolean"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Project"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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 \u2014 the sprint-planning loop.",
"tags": [
"planning",
"cycles",
"write"
],
"examples": [
"Open a two-week cycle in Engineering starting Monday and add the three highest-priority bugs."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"start_date": {
"type": "string",
"format": "date"
},
"end_date": {
"type": "string",
"format": "date"
},
"owned_by": {
"type": "string",
"format": "uuid"
},
"timezone": {
"type": "string"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Cycle"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Create a module for the billing rewrite, lead it with Priya, and target end of quarter."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"backlog",
"planned",
"in-progress",
"paused",
"completed",
"cancelled"
]
},
"lead": {
"type": "string",
"format": "uuid"
},
"members": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"start_date": {
"type": "string",
"format": "date"
},
"target_date": {
"type": "string",
"format": "date"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Module"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Create an initiative for FY26 platform reliability and link the Platform and Infra projects."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"lead": {
"type": "string",
"format": "uuid"
},
"start_date": {
"type": "string",
"format": "date"
},
"end_date": {
"type": "string",
"format": "date"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Initiative"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Write up the incident timeline as a page in the Platform project."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"name",
"description_html"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Omit to create a workspace wiki page instead of a project page."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"access": {
"type": "integer",
"enum": [
0,
1
],
"description": "0 public within the workspace, 1 private to the author."
},
"is_locked": {
"type": "boolean"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Page"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Summarise everything waiting in the Support intake queue and flag likely duplicates."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/IntakeWorkItem"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Add Acme Corp as a customer and link the two feature requests they raised."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"email": {
"type": "string",
"format": "email"
},
"domain": {
"type": "string"
},
"website_url": {
"type": "string",
"format": "uri"
},
"employees": {
"type": "integer",
"minimum": 0
},
"stage": {
"type": "string"
},
"contract_status": {
"type": "string"
},
"description_html": {
"type": "string"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Customer"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Who are the admins of this workspace?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"display_name": {
"type": "string"
},
"email": {
"type": "string"
},
"role_slug": {
"type": "string",
"description": "Filter by role, e.g. `admin`, `member`, `guest`."
},
"is_active": {
"type": "boolean"
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/Member"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Who am I connected as, and is this a bot account?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {}
},
"outputSchema": {
"$ref": "#/$defs/CurrentUser"
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"id": "get-pql-reference",
"name": "Retrieve the query language reference",
"description": "Fetch the Plane Query Language syntax reference \u2014 operators, functions, fields, and worked examples. Call this before composing a `pql` filter for any capability that accepts one.",
"tags": [
"query",
"read-only",
"prerequisite"
],
"examples": [
"Show me the PQL syntax for overdue, in-progress work assigned to me."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"detail": {
"type": "string",
"enum": [
"full",
"brief"
],
"default": "full",
"description": "`full` gives operators, functions and examples; `brief` gives a compact field and operator list."
}
}
},
"outputSchema": {
"type": "object",
"properties": {
"reference": {
"type": "string",
"description": "The PQL reference as text."
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"What states does the Engineering project have, and which one counts as done?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/State"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Which labels exist in the Platform project?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"id": "read-work-item-activity",
"name": "Read a work item's history",
"description": "Page through the change history of a work item \u2014 state moves, reassignments, field edits \u2014 to summarise what happened and when.",
"tags": [
"work-items",
"audit",
"read-only"
],
"examples": [
"Summarise what changed on ENG-42 this week, including state changes and reassignments."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItemActivity"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"id": "relate-work-items",
"name": "Relate work items",
"description": "Create a typed relation between two work items \u2014 blocking, blocked by, duplicate, relates to, or a custom workspace relation type \u2014 so dependencies are explicit.",
"tags": [
"work-items",
"dependencies",
"write"
],
"examples": [
"Mark ENG-42 as blocked by ENG-17."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"relation_type",
"related_work_item_ids"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"relation_type": {
"type": "string",
"description": "Relation kind. List the workspace relation definitions first to discover custom types.",
"examples": [
"blocked_by",
"blocks",
"duplicate",
"relates_to"
]
},
"related_work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"minItems": 1
}
}
},
"outputSchema": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItemRelation"
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"id": "link-work-item",
"name": "Attach an external link to a work item",
"description": "Add a titled external URL to a work item \u2014 a pull request, a dashboard, a design file \u2014 and read back the links already on it.",
"tags": [
"work-items",
"links",
"write"
],
"examples": [
"Link the pull request for this fix to ENG-42."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"url"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"url": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItemLink"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Attach the failing test log to ENG-42."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"name",
"size",
"type"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"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`."
},
"external_source": {
"type": "string"
},
"external_id": {
"type": "string"
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItemAttachmentUpload"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"id": "manage-work-item-types",
"name": "Manage work item types",
"description": "List and create the work item types in a project \u2014 Bug, Story, Epic and any custom type \u2014 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"
],
"examples": [
"Add an Incident work item type to the Platform project."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Omit for the workspace's own set of types rather than one project's."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"logo_props": {
"type": "object",
"additionalProperties": true
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItemType"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Set the Severity property on ENG-42 to S1."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"work_item_id",
"property_id",
"values"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"work_item_id": {
"type": "string",
"format": "uuid"
},
"property_id": {
"type": "string",
"format": "uuid",
"description": "List the work item type's properties first to find this id."
},
"values": {
"type": "array",
"minItems": 1,
"description": "One entry per value. Multi-select properties accept several.",
"items": {
"type": "string"
}
}
}
},
"outputSchema": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItemPropertyValue"
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Set up Fibonacci story points on the Engineering project."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name",
"type"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"type": {
"type": "string",
"enum": [
"points",
"categories",
"time"
]
},
"estimate_points": {
"type": "array",
"description": "The selectable values, in order.",
"items": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "integer"
},
"value": {
"type": "string"
}
}
}
}
}
},
"outputSchema": {
"$ref": "#/$defs/Estimate"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Create an epic for the billing rewrite and move the five related bugs under it."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"state_id": {
"type": "string",
"format": "uuid"
},
"parent_id": {
"type": "string",
"format": "uuid"
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
},
"assignee_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"label_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"start_date": {
"type": "string",
"format": "date"
},
"target_date": {
"type": "string",
"format": "date"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Epic"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Add a Beta milestone to the Platform project targeting 15 March."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"title"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"target_date": {
"type": "string",
"format": "date"
}
}
},
"outputSchema": {
"$ref": "#/$defs/Milestone"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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 \u2014 the rest of the sprint loop beyond creating the cycle.",
"tags": [
"planning",
"cycles",
"write"
],
"examples": [
"Put the three highest-priority bugs into the current cycle."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"cycle_id",
"work_item_ids"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"cycle_id": {
"type": "string",
"format": "uuid"
},
"work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"minItems": 1
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItem"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Move everything labelled billing into the billing module."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"module_id",
"work_item_ids"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"module_id": {
"type": "string",
"format": "uuid"
},
"work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"minItems": 1
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkItem"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"File this bug report into the Support intake queue."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"issue"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"issue": {
"type": "object",
"required": [
"name"
],
"description": "The work item to submit for triage.",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
}
}
}
}
},
"outputSchema": {
"$ref": "#/$defs/IntakeWorkItem"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Log Acme's request for SAML and link the two work items covering it."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"customer_id",
"name"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"customer_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"link": {
"type": "string",
"format": "uri",
"description": "Where the request came from, e.g. a support ticket."
},
"work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
},
"outputSchema": {
"$ref": "#/$defs/CustomerRequest"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"Which teamspaces exist and which projects belong to each?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response, formatted `value:offset:is_prev`."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"order_by": {
"type": "string",
"description": "Field to sort by. Prefix with `-` for descending order."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/$defs/Teamspace"
}
},
"total_count": {
"type": "integer"
},
"count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"prev_cursor": {
"type": [
"string",
"null"
]
},
"next_page_results": {
"type": "boolean"
},
"prev_page_results": {
"type": "boolean"
}
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Cut a 2.4.0 release with everything completed in the current cycle and draft the changelog."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description_html": {
"type": "string"
},
"released_at": {
"type": "string",
"format": "date-time"
},
"work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
},
"outputSchema": {
"$ref": "#/$defs/Release"
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"Reply in the Agent Run with the fix I applied and mark the run complete."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"agent_run_id",
"type",
"content"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"agent_run_id": {
"type": "string",
"format": "uuid",
"description": "From the webhook that triggered this run."
},
"type": {
"type": "string",
"enum": [
"thought",
"action",
"response",
"elicitation",
"error"
],
"description": "`thought` and `action` are ephemeral; `response` posts a comment; `elicitation` asks the user a question."
},
"content": {
"type": "object",
"description": "Shape depends on `type`. See the signals and content payload reference.",
"additionalProperties": true
},
"signal": {
"type": "string",
"enum": [
"continue",
"complete",
"failed"
],
"description": "Whether the run stays open after this activity."
}
}
},
"outputSchema": {
"$ref": "#/$defs/AgentRunActivity"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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"
],
"examples": [
"How many open work items are there per assignee in the Engineering project?",
"Break down this cycle by state group and priority."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Omit to count across the whole workspace."
},
"pql": {
"type": "string",
"description": "Optional PQL filter. Call the PQL reference first."
},
"group_by": {
"type": "string",
"description": "Grouping key. These are grouping keys only \u2014 they are not PQL filter fields.",
"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"
]
},
"sub_group_by": {
"type": "string",
"description": "Second grouping key, from the same set as `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"
]
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkItemCountBreakdown"
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"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"
],
"examples": [
"How much time has been logged per work item in the Platform project this month?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
}
}
},
"outputSchema": {
"type": "array",
"items": {
"$ref": "#/$defs/WorkLogTotal"
}
},
"security": [
{
"planeOAuth": [
"read"
]
}
]
},
{
"id": "manage-project-features",
"name": "Read and toggle project features",
"description": "Read or change which feature modules a project has enabled \u2014 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"
],
"examples": [
"Are cycles enabled on the Platform project? If not, turn them on."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"project_id": {
"type": "string",
"format": "uuid"
},
"epics": {
"type": "boolean"
},
"modules": {
"type": "boolean"
},
"cycles": {
"type": "boolean"
},
"views": {
"type": "boolean"
},
"pages": {
"type": "boolean"
},
"intakes": {
"type": "boolean"
},
"work_item_types": {
"type": "boolean"
}
}
},
"outputSchema": {
"$ref": "#/$defs/ProjectFeatures"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"id": "manage-workspace-features",
"name": "Read and toggle workspace features",
"description": "Read or change which workspace-level features are enabled \u2014 initiatives, teamspaces, customers, wiki, project grouping, and Plane AI.",
"tags": [
"workspace",
"configuration",
"write",
"prerequisite"
],
"examples": [
"Which workspace features are on, and is Plane AI enabled?"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"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"
},
"initiatives": {
"type": "boolean"
},
"teams": {
"type": "boolean",
"description": "Teamspaces."
},
"customers": {
"type": "boolean"
},
"wiki": {
"type": "boolean"
},
"pi": {
"type": "boolean",
"description": "Plane AI."
}
}
},
"outputSchema": {
"$ref": "#/$defs/WorkspaceFeatures"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
},
{
"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 \u2014 the native integrations (GitHub, GitLab, Slack, Sentry, Bitbucket) are configured in workspace settings and have no public endpoints.",
"tags": [
"workspace",
"identity",
"integration",
"write"
],
"examples": [
"Map the engineering-all IdP group to the Member role in this workspace."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json"
],
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"idp_group_name",
"role"
],
"additionalProperties": false,
"properties": {
"workspace_slug": {
"type": "string",
"description": "Workspace identifier from the workspace URL, e.g. `my-team`. Implied by the credential on MCP."
},
"idp_group_name": {
"type": "string",
"description": "Group name as it appears in the identity provider."
},
"role": {
"type": "string",
"description": "Plane role to grant members of that group."
}
}
},
"outputSchema": {
"$ref": "#/$defs/IdpGroupMapping"
},
"security": [
{
"planeOAuth": [
"read",
"write"
]
}
]
}
],
"$defs": {
"WorkItem": {
"type": "object",
"title": "Work item",
"description": "A task, bug, or story. Epics are work items of an epic type.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"sequence_id": {
"type": "integer",
"description": "Per-project counter behind the human identifier, e.g. 42 in ENG-42."
},
"project": {
"type": "string",
"format": "uuid"
},
"state": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
},
"assignees": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"labels": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"type_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"parent": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"estimate_point": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"target_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"completed_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"archived_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"is_draft": {
"type": "boolean"
},
"external_source": {
"type": [
"string",
"null"
]
},
"external_id": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemComment": {
"type": "object",
"title": "Work item comment",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"comment_html": {
"type": [
"string",
"null"
]
},
"access": {
"type": "string",
"enum": [
"INTERNAL",
"EXTERNAL"
]
},
"issue": {
"type": "string",
"format": "uuid"
},
"parent": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"actor": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkLog": {
"type": "object",
"title": "Work log",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"duration": {
"type": "integer",
"description": "Minutes logged."
},
"description": {
"type": [
"string",
"null"
]
},
"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"
}
}
},
"Project": {
"type": "object",
"title": "Project",
"required": [
"id",
"name",
"identifier"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"identifier": {
"type": "string",
"description": "Short prefix used in work item identifiers, e.g. `ENG`."
},
"description": {
"type": [
"string",
"null"
]
},
"network": {
"type": "integer",
"enum": [
0,
2
],
"description": "0 private to members, 2 visible to the whole workspace."
},
"project_lead": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"default_assignee": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"timezone": {
"type": "string"
},
"cycle_view": {
"type": "boolean"
},
"module_view": {
"type": "boolean"
},
"page_view": {
"type": "boolean"
},
"intake_view": {
"type": "boolean"
},
"is_time_tracking_enabled": {
"type": "boolean"
},
"archived_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Cycle": {
"type": "object",
"title": "Cycle",
"description": "A time-boxed iteration within a project.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"end_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"status": {
"type": "string",
"enum": [
"draft",
"upcoming",
"current",
"completed"
]
},
"owned_by": {
"type": "string",
"format": "uuid"
},
"project": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Module": {
"type": "object",
"title": "Module",
"description": "A grouping of related work within a project.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"backlog",
"planned",
"in-progress",
"paused",
"completed",
"cancelled"
]
},
"lead": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"members": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"target_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"project": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Milestone": {
"type": "object",
"title": "Milestone",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"target_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"project": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Epic": {
"type": "object",
"title": "Epic",
"description": "A large body of work that parents other work items.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"state_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"parent_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
},
"assignee_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"label_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"target_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Initiative": {
"type": "object",
"title": "Initiative",
"description": "A workspace-level goal that projects and epics roll up into.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"lead": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"state": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"end_date": {
"type": [
"string",
"null"
],
"format": "date"
},
"archived_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"State": {
"type": "object",
"title": "Workflow state",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"group": {
"type": "string",
"enum": [
"backlog",
"unstarted",
"started",
"completed",
"cancelled"
]
},
"description": {
"type": [
"string",
"null"
]
},
"sequence": {
"type": "number"
},
"default": {
"type": "boolean"
},
"is_triage": {
"type": "boolean"
},
"project": {
"type": "string",
"format": "uuid"
}
}
},
"Label": {
"type": "object",
"title": "Label",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"color": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"parent": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"sort_order": {
"type": "number"
},
"project": {
"type": "string",
"format": "uuid"
}
}
},
"Page": {
"type": "object",
"title": "Page",
"description": "A document at workspace (wiki) or project scope.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"access": {
"type": "integer",
"enum": [
0,
1
]
},
"is_locked": {
"type": "boolean"
},
"archived_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"owned_by": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"IntakeWorkItem": {
"type": "object",
"title": "Intake work item",
"description": "A submitted request awaiting triage.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "integer",
"enum": [
-2,
-1,
0,
1,
2
],
"description": "-2 pending, -1 rejected, 0 snoozed, 1 accepted, 2 duplicate."
},
"snoozed_till": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"duplicate_to": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"source": {
"type": [
"string",
"null"
],
"description": "Where the request came in from, e.g. `in-app`, `email`, `forms`."
},
"issue": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Customer": {
"type": "object",
"title": "Customer",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
],
"format": "email"
},
"domain": {
"type": [
"string",
"null"
]
},
"website_url": {
"type": [
"string",
"null"
],
"format": "uri"
},
"employees": {
"type": [
"integer",
"null"
]
},
"stage": {
"type": [
"string",
"null"
]
},
"contract_status": {
"type": [
"string",
"null"
]
},
"revenue": {
"type": [
"string",
"null"
]
},
"description_html": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Member": {
"type": "object",
"title": "Workspace member",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"member": {
"type": "object",
"description": "The user record for this membership.",
"additionalProperties": true
},
"display_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
],
"format": "email"
},
"role_slug": {
"type": "string",
"description": "Role within the namespace, e.g. `admin`, `member`, `guest`."
},
"is_active": {
"type": "boolean"
},
"is_bot": {
"type": "boolean"
}
}
},
"WorkItemActivity": {
"type": "object",
"title": "Work item activity",
"description": "One entry in a work item's change history.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"field": {
"type": [
"string",
"null"
],
"description": "Which field changed, e.g. `state`, `priority`, `assignees`."
},
"verb": {
"type": "string",
"description": "What happened, e.g. `created`, `updated`."
},
"old_value": {
"type": [
"string",
"null"
]
},
"new_value": {
"type": [
"string",
"null"
]
},
"comment": {
"type": [
"string",
"null"
],
"description": "Human-readable summary of the change."
},
"actor": {
"type": "string",
"format": "uuid"
},
"issue": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemLink": {
"type": "object",
"title": "Work item link",
"description": "An external URL attached to a work item.",
"required": [
"id",
"url"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"url": {
"type": "string",
"format": "uri"
},
"title": {
"type": [
"string",
"null"
]
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"issue": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"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."
},
"attributes": {
"type": "object",
"description": "File metadata.",
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"issue_id": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemAttachmentUpload": {
"type": "object",
"title": "Attachment upload credentials",
"description": "Presigned target to POST the file to, followed by a completion call.",
"properties": {
"upload_data": {
"type": "object",
"description": "Presigned URL and the form fields to send with the file.",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"fields": {
"type": "object",
"additionalProperties": true
}
}
},
"asset_id": {
"type": "string",
"format": "uuid"
},
"asset_url": {
"type": "string"
}
}
},
"WorkItemRelation": {
"type": "object",
"title": "Work item relation",
"description": "A typed link between two work items, such as blocking or duplicate.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"relation_type": {
"type": "string",
"description": "Relation kind. Workspaces can also define custom relation types.",
"examples": [
"blocked_by",
"blocks",
"duplicate",
"relates_to"
]
},
"issue": {
"type": "string",
"format": "uuid"
},
"related_issue": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemType": {
"type": "object",
"title": "Work item type",
"description": "A type that gives work items their own icon and custom properties.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"logo_props": {
"type": "object",
"additionalProperties": true
},
"is_active": {
"type": "boolean"
},
"is_epic": {
"type": "boolean"
},
"is_default": {
"type": "boolean"
},
"level": {
"type": "integer"
},
"project_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemPropertyValue": {
"type": "object",
"title": "Custom property value",
"description": "The value of one custom property on one work item.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"property": {
"type": "string",
"format": "uuid"
},
"value": {
"description": "Shape depends on the property type \u2014 text, number, date, boolean, or option id."
},
"value_text": {
"type": [
"string",
"null"
]
},
"value_option": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Estimate": {
"type": "object",
"title": "Estimate",
"description": "A project's estimation system.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"points",
"categories",
"time"
]
},
"last_used": {
"type": "boolean"
},
"project": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"EstimatePoint": {
"type": "object",
"title": "Estimate point",
"description": "One selectable value in an estimate system.",
"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"
}
}
},
"CustomerRequest": {
"type": "object",
"title": "Customer request",
"description": "Something a customer asked for, linkable to the work items that deliver it.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"link": {
"type": [
"string",
"null"
],
"format": "uri"
},
"customer_id": {
"type": "string",
"format": "uuid"
},
"work_item_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Teamspace": {
"type": "object",
"title": "Teamspace",
"description": "A group of members and projects that share a space.",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"lead_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"member_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"project_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"logo_props": {
"type": "object",
"additionalProperties": true
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"CurrentUser": {
"type": "object",
"title": "Current user",
"description": "The user or bot the credential authenticates as.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"email": {
"type": [
"string",
"null"
],
"format": "email"
},
"display_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"avatar": {
"type": [
"string",
"null"
]
},
"is_bot": {
"type": "boolean"
},
"last_workspace_id": {
"type": [
"string",
"null"
],
"format": "uuid"
}
}
},
"Release": {
"type": "object",
"title": "Release",
"description": "A release in the workspace, with its tags, labels, and changelog.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"description_html": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"released_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"changelog": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"AgentRunActivity": {
"type": "object",
"title": "Agent run activity",
"description": "One unit of communication inside an Agent Run. Thoughts and actions are ephemeral; a response becomes a visible comment.",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"prompt",
"thought",
"action",
"response",
"elicitation",
"error"
]
},
"content": {
"type": "object",
"additionalProperties": true
},
"signal": {
"type": [
"string",
"null"
],
"enum": [
"continue",
"complete",
"failed",
null
]
},
"agent_run": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"WorkItemCountBreakdown": {
"type": "object",
"title": "Work item count breakdown",
"description": "Aggregated work item counts, optionally grouped and sub-grouped. The closest thing Plane exposes programmatically to a dashboard figure.",
"properties": {
"count": {
"type": "integer",
"description": "Total matching work items."
},
"group_by": {
"type": [
"string",
"null"
]
},
"sub_group_by": {
"type": [
"string",
"null"
]
},
"groups": {
"type": "array",
"description": "One entry per group when `group_by` is set.",
"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"
}
}
}
}
}
}
}
}
},
"WorkLogTotal": {
"type": "object",
"title": "Work log total",
"description": "Total time logged against one work item, in minutes.",
"properties": {
"issue_id": {
"type": "string",
"format": "uuid"
},
"duration": {
"type": "integer",
"description": "Total minutes logged."
}
}
},
"ProjectFeatures": {
"type": "object",
"title": "Project features",
"description": "Which feature modules are enabled on a project. Read this before calling a capability that depends on one.",
"properties": {
"epics": {
"type": "boolean"
},
"modules": {
"type": "boolean"
},
"cycles": {
"type": "boolean"
},
"views": {
"type": "boolean"
},
"pages": {
"type": "boolean"
},
"intakes": {
"type": "boolean"
},
"work_item_types": {
"type": "boolean"
}
}
},
"WorkspaceFeatures": {
"type": "object",
"title": "Workspace features",
"description": "Which workspace-level features are enabled, including Plane AI (`pi`).",
"properties": {
"project_grouping": {
"type": "boolean"
},
"initiatives": {
"type": "boolean"
},
"teams": {
"type": "boolean",
"description": "Teamspaces."
},
"customers": {
"type": "boolean"
},
"wiki": {
"type": "boolean"
},
"pi": {
"type": "boolean",
"description": "Plane AI."
}
}
},
"IdpGroupMapping": {
"type": "object",
"title": "Identity provider group mapping",
"description": "Maps a group from your identity provider to a Plane role, at workspace or project scope.",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"idp_group_name": {
"type": "string",
"description": "Group name as it appears in the identity provider."
},
"role": {
"type": "string",
"description": "Plane role granted to members of that group."
},
"project_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Set on project mappings only."
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Error": {
"type": "object",
"title": "Error",
"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.",
"properties": {
"error": {
"type": "string",
"description": "Human-readable message. Set on request, throttling, and not-found failures."
},
"error_code": {
"type": "string",
"description": "Stable code for programmatic handling, where the endpoint sets one."
},
"detail": {
"type": "string",
"description": "Human-readable message. Set on authentication and permission failures."
}
}
}
},
"supportsAuthenticatedExtendedCard": false,
"x-plane": {
"repositoryUrl": "https://github.com/makeplane/plane-mcp-server",
"sourceUrl": "https://github.com/makeplane/plane",
"developerDocsUrl": "https://developers.plane.so",
"supportEmail": "support@plane.so",
"deployments": [
"cloud",
"self-hosted",
"air-gapped"
]
}
}