Plate
REMOTE · PLATE.TO · SCANNED AUG 3
Minimal project management for teams and AI agents.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 2429 tokens (~86/item across 28 items; 28 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · plate.to
claude mcp add --transport http to-plate-mcp https://plate.to/mcp
[mcp_servers.to-plate-mcp] url = "https://plate.to/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"to-plate-mcp": {
"type": "remote",
"url": "https://plate.to/mcp",
"enabled": true
}
}
} openclaw mcp add to-plate-mcp --url https://plate.to/mcp --transport streamable-http
mcp_servers:
to-plate-mcp:
url: "https://plate.to/mcp" {
"mcpServers": {
"to-plate-mcp": {
"type": "http",
"url": "https://plate.to/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +5
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 75
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://plate.to/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=plate.to | CN=WR3,O=Google Trust Services,C=US | 11 Jun 2026 | 9 Sept 2026 | RSA 2048 | SHA256-RSA | bf4ceb928f9db220a2b675295d8037e |
| SANs: plate.to | ||||||
| CN=WR3,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a91568d63abc22861684aa4b5a |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
| CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 1 Sept 1998 | 28 Jan 2028 | RSA 2048 | SHA1-RSA | 40000000001154b5ac394 |
DNSSEC insecure
Validation of plate.to. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| to. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://plate.to/.well-known/oauth-protected-resource", error="unauthorized"
Bearer resource_metadata="https://plate.to/.well-known/oauth-protected-resource", error="unauthorized" | Header | Value |
|---|---|
| strict-transport-security | max-age=31556926 |
Protected resource metadata
| Document | https://plate.to/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://plate.to/mcp |
| Authorisation server | https://plate.to |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://plate.to/mcp | Verified | 200 | |
| http (plaintext) | http://plate.to/mcp | HTTPS enforced | 301 | https://plate.to/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
complete_task ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| isCompleted | boolean | — | True to complete, false to reopen (default: true) |
| taskId | string | yes | Internal task ID (from list_tasks `id` field, not the public SCD-XXX number) |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
| isCompleted | boolean | yes | — |
No examples provided.
complete_tasks ~72
Mark multiple tasks as completed in one action. Use this instead of calling complete_task multiple times. Already-completed tasks are left as-is.
| Name | Type | Req | Description |
|---|---|---|---|
| isCompleted | boolean | — | True to complete, false to reopen (default: true) |
| taskIds | array | yes | Internal task IDs to complete (1–100) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
create_comment ~106
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).
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Internal task ID (from list_tasks `id` field, not the public SCD-XXX number) |
| text | string | yes | Comment text. Supports markdown: # headings, - bullets, 1. numbered lists, **bold**, *italic*, `code`, > blockquote. |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
No examples provided.
create_comments ~41
Add multiple comments to tasks in one action. Use this instead of calling create_comment multiple times.
| Name | Type | Req | Description |
|---|---|---|---|
| comments | array | yes | Comments to create (1–50) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
create_project ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Project description |
| name | string | yes | Project name |
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | yes | true if a new project was created, false if an existing project with this name was returned |
| defaultListId | — | yes | — |
| id | string | yes | — |
No examples provided.
create_section ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Section name |
| projectId | string | yes | Project ID |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | yes | true if a new section was created, false if an existing section with this name was returned |
| id | string | yes | — |
No examples provided.
create_sections ~52
Create multiple sections in a project in one action. Use this instead of calling create_section multiple times.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | Project ID |
| sections | array | yes | Sections to create (1–30) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
create_task ~170
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assigneeId | string | — | Assignee user ID |
| labels | array | — | Label IDs or names (from list_labels). Names match case-insensitively. Labels are never created automatically — an unknown one is an error. |
| listId | string | yes | Section ID |
| name | string | yes | Task name |
| projectId | string | yes | Project ID |
| statusId | string | — | Initial status ID |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
| number | number | yes | — |
No examples provided.
create_tasks ~100
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.
| Name | Type | Req | Description |
|---|---|---|---|
| listId | string | — | Default section ID for all tasks (can be overridden per task) |
| projectId | string | yes | Project ID |
| tasks | array | yes | Tasks to create (1–50) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
delete_comment ~25
Delete a comment from a task.
| Name | Type | Req | Description |
|---|---|---|---|
| commentId | string | yes | Comment ID |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | yes | — |
| id | string | yes | — |
No examples provided.
delete_comments ~50
Delete multiple comments in one action. Use this instead of calling delete_comment multiple times. All comments are validated before any are deleted.
| Name | Type | Req | Description |
|---|---|---|---|
| commentIds | array | yes | Comment IDs to delete (1–50) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
delete_task ~75
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).
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Internal task ID (from list_tasks `id` field, not the public SCD-XXX number) |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | yes | — |
| id | string | yes | — |
No examples provided.
delete_tasks ~53
Permanently delete multiple tasks in one action. Use this instead of calling delete_task multiple times. All tasks are validated before any are deleted.
| Name | Type | Req | Description |
|---|---|---|---|
| taskIds | array | yes | Internal task IDs to delete (1–50) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
get_task ~178
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).
| Name | Type | Req | Description |
|---|---|---|---|
| number | number | — | Public task number (digits only — e.g. 409 from SCD-409). Requires workspaceId unless taskId contains the prefix. |
| taskId | string | — | 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. |
| workspaceId | string | — | Workspace ID. Used when looking up by number without a prefix. |
| Name | Type | Req | Description |
|---|---|---|---|
| assigneeId | — | yes | — |
| createdAt | — | yes | — |
| description | — | yes | — |
| descriptionText | — | yes | Description converted to Markdown — use this for reading and displaying the description. |
| id | string | yes | — |
| isCompleted | boolean | yes | — |
| labels | array | yes | — |
| listId | string | yes | — |
| name | string | yes | — |
| number | — | yes | — |
| ownerId | — | yes | — |
| projectId | string | yes | — |
| statusId | — | yes | — |
| workspaceId | string | yes | — |
No examples provided.
list_activity ~232
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actorId | string | — | Only changes made by this userId |
| from | string | — | Start of range, ISO 8601 (e.g. 2026-06-01) |
| limit | number | — | Max rows (default 100, max 500) |
| projectId | string | — | Limit to one project |
| to | string | — | End of range, ISO 8601 |
| type | string | — | Event type, e.g. 'task_status_changed' or 'completed' |
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_comments ~66
List a task's comments, oldest first. The taskId is the internal document ID from list_tasks — NOT the public SCD-XXX number.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Internal task ID (from list_tasks `id` field, not the public SCD-XXX number) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_labels ~43
List task labels for a workspace. Use the returned IDs (or names) as `labels` when creating or updating tasks.
| Name | Type | Req | Description |
|---|---|---|---|
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_members ~46
List workspace members with their userId, name, email, and role. Use userId as assigneeId when creating or updating tasks.
| Name | Type | Req | Description |
|---|---|---|---|
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_projects ~24
List projects in a workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_sections ~27
List sections (columns) in a project.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | Project ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_statuses ~39
List workflow statuses for a workspace. Use the returned IDs as statusId when creating or updating tasks.
| Name | Type | Req | Description |
|---|---|---|---|
| workspaceId | string | yes | Workspace ID |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_tasks ~283
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.
| Name | Type | Req | Description |
|---|---|---|---|
| includeCompleted | boolean | — | Include completed tasks (default: false) |
| limit | number | — | Max number of tasks to return (default: 100, max: 500) |
| listId | string | — | Filter by section ID |
| number | number | — | 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. |
| projectId | string | — | Project ID. Required unless number is provided. |
| statusId | string | — | Filter by status ID |
| taskPrefix | string | — | 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. |
| workspaceId | string | — | Workspace ID. Use when searching by number and you know the workspace. Ignored when taskPrefix is provided. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
list_workspaces ~21
List all Plate workspaces the user is a member of.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
update_project ~48
Rename a project or update its description.
| Name | Type | Req | Description |
|---|---|---|---|
| description | — | — | New project description (null to clear) |
| name | string | — | New project name |
| projectId | string | yes | Project ID |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
No examples provided.
update_section ~32
Rename a section.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | New section name |
| sectionId | string | yes | Section ID |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
No examples provided.
update_sections ~39
Rename multiple sections in one action. Use this instead of calling update_section multiple times.
| Name | Type | Req | Description |
|---|---|---|---|
| sections | array | yes | Sections to update (1–30) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.
update_task ~258
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assigneeId | — | — | New assignee user ID (null to unassign) |
| description | string | — | New description. Supports markdown: # headings, - bullets, 1. numbered lists, **bold**, *italic*, `code`, > blockquote. |
| labels | array | — | 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 automatica… |
| listId | string | — | Move to a different section (must belong to the same project) |
| name | string | — | New task name |
| statusId | string | — | New status ID |
| taskId | string | yes | Internal task ID (from list_tasks `id` field, not the public SCD-XXX number) |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
No examples provided.
update_tasks ~57
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.
| Name | Type | Req | Description |
|---|---|---|---|
| tasks | array | yes | Tasks to update (1–50) |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | — |
No examples provided.