mcp server
Plate
Minimal project management for teams and AI agents.
Description as published by the maintainer. Source
- version 1.0.0
- active
active — Registry entry last updated 2026-06-05.
What this server can do
28 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
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. Required: taskId.
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. Required: taskIds.
create_comment(text, taskId)- 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). Required: taskId, text.
create_comments(comments)- Add multiple comments to tasks in one action. Use this instead of calling create_comment multiple times. Required: comments.
create_project(name, description, workspaceId)- 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. Required: workspaceId, name.
create_section(name, projectId)- 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. Required: projectId, name.
create_sections(sections, projectId)- Create multiple sections in a project in one action. Use this instead of calling create_section multiple times. Required: projectId, sections.
create_task(name, labels, listId, statusId, projectId, 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. Required: projectId, listId, name.
create_tasks(tasks, listId, projectId)- 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. Required: projectId, tasks.
delete_comment(commentId)- Delete a comment from a task. Required: commentId.
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. Required: commentIds.
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). Required: taskId.
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. Required: taskIds.
get_task(number, taskId, workspaceId)- 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).
list_activity(to, from, type, limit, actorId, projectId, workspaceId)- 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. Required: workspaceId.
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. Required: taskId.
list_labels(workspaceId)- List task labels for a workspace. Use the returned IDs (or names) as `labels` when creating or updating tasks. Required: workspaceId.
list_members(workspaceId)- List workspace members with their userId, name, email, and role. Use userId as assigneeId when creating or updating tasks. Required: workspaceId.
list_projects(workspaceId)- List projects in a workspace. Required: workspaceId.
list_sections(projectId)- List sections (columns) in a project. Required: projectId.
list_statuses(workspaceId)- List workflow statuses for a workspace. Use the returned IDs as statusId when creating or updating tasks. Required: workspaceId.
list_tasks(limit, listId, number, statusId, projectId, taskPrefix, workspaceId, includeCompleted)- 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.
list_workspaces- List all Plate workspaces the user is a member of.
update_project(name, projectId, description)- Rename a project or update its description. Required: projectId.
update_section(name, sectionId)- Rename a section. Required: sectionId, name.
update_sections(sections)- Rename multiple sections in one action. Use this instead of calling update_section multiple times. Required: sections.
update_task(name, labels, listId, taskId, statusId, assigneeId, description)- 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. Required: taskId.
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. Required: tasks.
Last successful function declaration observed on . Source: https://plate.to/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://plate.to/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 1.0.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-05 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-06-05 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 28 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | plate.to | |
| mcp endpoint status | ok | The server listed 28 functions when asked. | as of probe | plate.to |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json