Plate

Minimal project management for teams and AI agents.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
96%
Naming quality
99%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • LOWTool 'update_section' description lacks action verbin update_section
  • INFOTool description contains placeholder or incomplete textin list_comments

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,207Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (5.63% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://plate.to/mcp"
    }
  }
}

Remote endpoints

https://plate.to/mcpstreamable-http

What it can do

Tool inventory

Tools (28)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_workspaces

List all Plate workspaces the user is a member of.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "urlId": {
            "type": "string"
          },
          "taskPrefix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "urlId",
          "taskPrefix"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_projects(workspaceId)

List projects in a workspace.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_tasks(projectId, workspaceId, taskPrefix, number, statusId, ...)

List tasks in a project, or look up a specific task by its public number. To resolve a public ID like 'TES-1': pass taskPrefix='TES' and number=1 — the prefix locates the correct workspace automatically (do NOT hardcode workspaceId when the prefix belongs to a different workspace). Alternatively pass workspaceId + number when you are certain of the workspace.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "description": "Project ID. Required unless number is provided.",
      "type": "string"
    },
    "workspaceId": {
      "description": "Workspace ID. Use when searching by number and you know the workspace. Ignored when taskPrefix is provided.",
      "type": "string"
    },
    "taskPrefix": {
      "description": "Task prefix (e.g. 'TES' from TES-1). When provided with number, the workspace is located by prefix automatically — use this instead of workspaceId when the prefix is known.",
      "type": "string"
    },
    "number": {
      "description": "Look up a task by its public number (digits only — e.g. 1 from TES-1). Requires either taskPrefix or workspaceId. projectId is ignored when number is provided.",
      "type": "number"
    },
    "statusId": {
      "description": "Filter by status ID",
      "type": "string"
    },
    "listId": {
      "description": "Filter by section ID",
      "type": "string"
    },
    "includeCompleted": {
      "description": "Include completed tasks (default: false)",
      "type": "boolean"
    },
    "limit": {
      "description": "Max number of tasks to return (default: 100, max: 500)",
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "isCompleted": {
            "type": "boolean"
          },
          "statusId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "assigneeId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "listId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "workspaceId": {
            "type": "string"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "number",
          "name",
          "isCompleted",
          "statusId",
          "assigneeId",
          "listId",
          "projectId",
          "workspaceId",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_sections(projectId)

List sections (columns) in a project.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "order"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_task(taskId, workspaceId, number)

Get full details of a task. You can look up by internal taskId OR by public task identifier. To resolve a public ID like 'TES-1' or 'SCD-409', pass it as taskId — the prefix is used to find the correct workspace automatically. Alternatively, pass workspaceId + number (digits only).

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "description": "Internal task ID OR full public task identifier (e.g. 'TES-1', 'SCD-409'). When a prefixed ID is passed, the prefix is used to locate the correct workspace automatically.",
      "type": "string"
    },
    "workspaceId": {
      "description": "Workspace ID. Used when looking up by number without a prefix.",
      "type": "string"
    },
    "number": {
      "description": "Public task number (digits only — e.g. 409 from SCD-409). Requires workspaceId unless taskId contains the prefix.",
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "number": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "name": {
      "type": "string"
    },
    "isCompleted": {
      "type": "boolean"
    },
    "statusId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "assigneeId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listId": {
      "type": "string"
    },
    "projectId": {
      "type": "string"
    },
    "workspaceId": {
      "type": "string"
    },
    "createdAt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "description": {},
    "descriptionText": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Description converted to Markdown — use this for reading and displaying the description."
    },
    "labels": {
      "type": "array",
      "items": {}
    },
    "ownerId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "number",
    "name",
    "isCompleted",
    "statusId",
    "assigneeId",
    "listId",
    "projectId",
    "workspaceId",
    "createdAt",
    "description",
    "descriptionText",
    "labels",
    "ownerId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_comments(taskId)

List a task's comments, oldest first. The taskId is the internal document ID from list_tasks — NOT the public SCD-XXX number.

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Internal task ID (from list_tasks `id` field, not the public SCD-XXX number)"
    }
  },
  "required": [
    "taskId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "authorId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "content": {},
          "contentText": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Comment converted to Markdown — use this for reading and displaying the comment."
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "authorId",
          "content",
          "contentText",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_members(workspaceId)

List workspace members with their userId, name, email, and role. Use userId as assigneeId when creating or updating tasks.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "name",
          "email",
          "role"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_activity(workspaceId, from, to, actorId, type, ...)

List task activity history (status changes, assignments, moves, etc.) over a time range. Use it for time-based questions like which tasks were completed last week or what someone did. Filters: from/to (ISO 8601 dates), actorId (who made the change — get userIds from list_members), type ('task_status_changed', or 'completed' for transitions into a Done status), and projectId. Each row gives the task identifier, the status change, who did it, and the task's owner and assignee.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    },
    "from": {
      "description": "Start of range, ISO 8601 (e.g. 2026-06-01)",
      "type": "string"
    },
    "to": {
      "description": "End of range, ISO 8601",
      "type": "string"
    },
    "actorId": {
      "description": "Only changes made by this userId",
      "type": "string"
    },
    "type": {
      "description": "Event type, e.g. 'task_status_changed' or 'completed'",
      "type": "string"
    },
    "projectId": {
      "description": "Limit to one project",
      "type": "string"
    },
    "limit": {
      "description": "Max rows (default 100, max 500)",
      "type": "number"
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "at": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "task": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "change": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "completed": {
            "type": "boolean"
          },
          "actor": {
            "type": "string"
          },
          "owner": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "assignee": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "at",
          "type",
          "task",
          "taskName",
          "change",
          "completed",
          "actor",
          "owner",
          "assignee"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_statuses(workspaceId)

List workflow statuses for a workspace. Use the returned IDs as statusId when creating or updating tasks.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "systemType": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "order": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "color",
          "systemType",
          "order"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_labels(workspaceId)

List task labels for a workspace. Use the returned IDs (or names) as `labels` when creating or updating tasks.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "order": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "color",
          "order"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_task(projectId, listId, name, statusId, assigneeId, ...)

Create a new task in a project section. Only call this tool when creating a brand-new task that does not yet exist. To change the name, status, assignee, or description of an existing task, call update_task instead. To mark an existing task as done, call complete_task instead. If unsure whether a task already exists, call list_tasks first.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    },
    "listId": {
      "type": "string",
      "description": "Section ID"
    },
    "name": {
      "type": "string",
      "description": "Task name"
    },
    "statusId": {
      "description": "Initial status ID",
      "type": "string"
    },
    "assigneeId": {
      "description": "Assignee user ID",
      "type": "string"
    },
    "labels": {
      "description": "Label IDs or names (from list_labels). Names match case-insensitively. Labels are never created automatically — an unknown one is an error.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "projectId",
    "listId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "number": {
      "type": "number"
    }
  },
  "required": [
    "id",
    "number"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡update_task(taskId, name, statusId, assigneeId, listId, ...)

Update one or more fields on an existing task. Use this instead of create_task when the task already exists. The taskId is the internal document ID from list_tasks — NOT the public task number (e.g. SCD-408). To resolve a public number to an internal ID, call list_tasks with workspaceId + number first.

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Internal task ID (from list_tasks `id` field, not the public SCD-XXX number)"
    },
    "name": {
      "description": "New task name",
      "type": "string"
    },
    "statusId": {
      "description": "New status ID",
      "type": "string"
    },
    "assigneeId": {
      "description": "New assignee user ID (null to unassign)",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listId": {
      "description": "Move to a different section (must belong to the same project)",
      "type": "string"
    },
    "description": {
      "description": "New description. Supports markdown: # headings, - bullets, 1. numbered lists, **bold**, *italic*, `code`, > blockquote.",
      "type": "string"
    },
    "labels": {
      "description": "Replace the task's labels with these IDs or names (from list_labels). Names match case-insensitively; pass [] to clear. This REPLACES the list, it does not append. Labels are never created automatically — an unknown one is an error.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "taskId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡complete_task(taskId, isCompleted)

Mark an existing task as completed or reopen it. Use this instead of create_task when the task already exists and you only need to change its completion state. The taskId is the internal document ID from list_tasks — NOT the public task number (e.g. SCD-408). To resolve a public number to an internal ID, call list_tasks with workspaceId + number first.

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Internal task ID (from list_tasks `id` field, not the public SCD-XXX number)"
    },
    "isCompleted": {
      "description": "True to complete, false to reopen (default: true)",
      "type": "boolean"
    }
  },
  "required": [
    "taskId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "isCompleted": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "isCompleted"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴delete_task(taskId)

Permanently delete a task. Comments and attachments are removed automatically. The taskId is the internal document ID from list_tasks — NOT the public task number (e.g. SCD-408).

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Internal task ID (from list_tasks `id` field, not the public SCD-XXX number)"
    }
  },
  "required": [
    "taskId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "id",
    "deleted"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_project(workspaceId, name, description)

Create a new project in a workspace. If a project with the same name already exists in the workspace, returns the existing project instead of creating a duplicate — check the `created` field in the response to tell the two cases apart.

Input Schema

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "Workspace ID"
    },
    "name": {
      "type": "string",
      "description": "Project name"
    },
    "description": {
      "description": "Project description",
      "type": "string"
    }
  },
  "required": [
    "workspaceId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "defaultListId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created": {
      "type": "boolean",
      "description": "true if a new project was created, false if an existing project with this name was returned"
    }
  },
  "required": [
    "id",
    "defaultListId",
    "created"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡update_project(projectId, name, description)

Rename a project or update its description.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    },
    "name": {
      "description": "New project name",
      "type": "string"
    },
    "description": {
      "description": "New project description (null to clear)",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_section(projectId, name)

Create a new section (column) in a project. If a section with the same name already exists in the project, returns the existing section instead of creating a duplicate — check the `created` field in the response to tell the two cases apart.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    },
    "name": {
      "type": "string",
      "description": "Section name"
    }
  },
  "required": [
    "projectId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "created": {
      "type": "boolean",
      "description": "true if a new section was created, false if an existing section with this name was returned"
    }
  },
  "required": [
    "id",
    "created"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡update_section(sectionId, name)

Rename a section.

Input Schema

{
  "type": "object",
  "properties": {
    "sectionId": {
      "type": "string",
      "description": "Section ID"
    },
    "name": {
      "type": "string",
      "description": "New section name"
    }
  },
  "required": [
    "sectionId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴delete_comment(commentId)

Delete a comment from a task.

Input Schema

{
  "type": "object",
  "properties": {
    "commentId": {
      "type": "string",
      "description": "Comment ID"
    }
  },
  "required": [
    "commentId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "id",
    "deleted"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_comment(taskId, text)

Add a comment to a task. The taskId is the internal document ID from list_tasks — NOT the public task number (e.g. SCD-408).

Input Schema

{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Internal task ID (from list_tasks `id` field, not the public SCD-XXX number)"
    },
    "text": {
      "type": "string",
      "description": "Comment text. Supports markdown: # headings, - bullets, 1. numbered lists, **bold**, *italic*, `code`, > blockquote."
    }
  },
  "required": [
    "taskId",
    "text"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_tasks(projectId, listId, tasks)

Create multiple tasks in a project in one action. Use this instead of calling create_task multiple times when the user asks to create several tasks at once. All tasks are created atomically — if validation fails for any item, nothing is created.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    },
    "listId": {
      "description": "Default section ID for all tasks (can be overridden per task)",
      "type": "string"
    },
    "tasks": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Task name"
          },
          "listId": {
            "description": "Section ID for this task (overrides default listId)",
            "type": "string"
          },
          "assigneeId": {
            "description": "Assignee user ID",
            "type": "string"
          },
          "statusId": {
            "description": "Status ID",
            "type": "string"
          },
          "description": {
            "description": "Description (markdown)",
            "type": "string"
          },
          "dueDate": {
            "description": "Due date (ISO date string)",
            "type": "string"
          },
          "labels": {
            "description": "Label IDs or names (from list_labels); names match case-insensitively. Unknown labels are an error — they are never created automatically.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "description": "Tasks to create (1–50)"
    }
  },
  "required": [
    "projectId",
    "tasks"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "listId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "workspaceId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "name",
          "listId",
          "projectId",
          "workspaceId"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡update_tasks(tasks)

Update multiple existing tasks in one action. Use this instead of calling update_task multiple times when the user asks to change several tasks at once. All updates are applied atomically.

Input Schema

{
  "type": "object",
  "properties": {
    "tasks": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "description": "Internal task ID"
          },
          "name": {
            "description": "New task name",
            "type": "string"
          },
          "listId": {
            "description": "Move to a different section",
            "type": "string"
          },
          "assigneeId": {
            "description": "New assignee user ID (null to unassign)",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "statusId": {
            "description": "New status ID",
            "type": "string"
          },
          "description": {
            "description": "New description (markdown)",
            "type": "string"
          },
          "dueDate": {
            "description": "New due date (ISO date string, null to clear)",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "labels": {
            "description": "REPLACE this task's labels with these IDs or names (from list_labels); [] clears them. Unknown labels are an error — they are never created automatically.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "taskId"
        ]
      },
      "description": "Tasks to update (1–50)"
    }
  },
  "required": [
    "tasks"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪complete_tasks(taskIds, isCompleted)

Mark multiple tasks as completed in one action. Use this instead of calling complete_task multiple times. Already-completed tasks are left as-is.

Input Schema

{
  "type": "object",
  "properties": {
    "taskIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Internal task IDs to complete (1–100)"
    },
    "isCompleted": {
      "description": "True to complete, false to reopen (default: true)",
      "type": "boolean"
    }
  },
  "required": [
    "taskIds"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "isCompleted": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "isCompleted"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴delete_tasks(taskIds)

Permanently delete multiple tasks in one action. Use this instead of calling delete_task multiple times. All tasks are validated before any are deleted.

Input Schema

{
  "type": "object",
  "properties": {
    "taskIds": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Internal task IDs to delete (1–50)"
    }
  },
  "required": [
    "taskIds"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "deleted": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "id",
          "deleted"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_sections(projectId, sections)

Create multiple sections in a project in one action. Use this instead of calling create_section multiple times.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID"
    },
    "sections": {
      "minItems": 1,
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Section name"
          }
        },
        "required": [
          "name"
        ]
      },
      "description": "Sections to create (1–30)"
    }
  },
  "required": [
    "projectId",
    "sections"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "created": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "created"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡update_sections(sections)

Rename multiple sections in one action. Use this instead of calling update_section multiple times.

Input Schema

{
  "type": "object",
  "properties": {
    "sections": {
      "minItems": 1,
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "sectionId": {
            "type": "string",
            "description": "Section ID"
          },
          "name": {
            "type": "string",
            "description": "New section name"
          }
        },
        "required": [
          "sectionId",
          "name"
        ]
      },
      "description": "Sections to update (1–30)"
    }
  },
  "required": [
    "sections"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡create_comments(comments)

Add multiple comments to tasks in one action. Use this instead of calling create_comment multiple times.

Input Schema

{
  "type": "object",
  "properties": {
    "comments": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "description": "Internal task ID"
          },
          "text": {
            "type": "string",
            "description": "Comment text (markdown supported)"
          }
        },
        "required": [
          "taskId",
          "text"
        ]
      },
      "description": "Comments to create (1–50)"
    }
  },
  "required": [
    "comments"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "taskId"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴delete_comments(commentIds)

Delete multiple comments in one action. Use this instead of calling delete_comment multiple times. All comments are validated before any are deleted.

Input Schema

{
  "type": "object",
  "properties": {
    "commentIds": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Comment IDs to delete (1–50)"
    }
  },
  "required": [
    "commentIds"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "deleted": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "id",
          "deleted"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Recommended Prompts

retrieve_data
Get details about [item] from Plate
Expected tools: get_task
fetch_info
Fetch [information type] using Plate
Expected tools: get_task
list_items
List all [items] available in Plate
Expected tools: list_workspaces
browse_collection
Show me the [collection] from Plate
Expected tools: list_workspaces
explore_workflow
List available [items], then get details for each one using Plate
Expected tools: list_workspacesget_task

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded28 tools
verifiedversion not recorded28 tools
verifiedversion not recorded28 tools
verifiedversion not recorded28 tools
verifiedversion not recorded28 tools
verifiedversion not recorded28 tools