Skip to content
Back to Plane

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