Plate

Gerenciamento mínimo de projetos para equipes e agentes de IA.

Documentação

Servidor MCP

Gerencie suas tarefas do Plate diretamente de assistentes de IA — Claude, Cursor, Windsurf e qualquer cliente compatível com MCP.

Endpoint https://plate.to/mcp

Configuração

O servidor MCP do Plate usa OAuth 2.0 — seu cliente de IA lida com a autenticação automaticamente na primeira conexão. Nenhuma chave de API é necessária.

Adicione isto ao seu arquivo de configuração MCP:

{
  "mcpServers": {
    "plate": {
      "type": "http",
      "url": "https://plate.to/mcp"
    }
  }
}
ClienteLocal do arquivo de configuração
Claude Code.mcp.json na raiz do projeto, ou ~/.claude/.mcp.json globalmente
Claude DesktopmacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
CursorSettings → Cursor Settings → MCP
WindsurfWindsurf Settings → MCP Servers

Após adicionar o servidor, seu cliente solicitará autorização via navegador. Entre com sua conta do Plate e escolha um escopo. Para revogar o acesso, vá em Workspace Settings → Apps no Plate.

Autenticação

O Plate usa OAuth 2.0 com PKCE. Quando você usa uma ferramenta do Plate pela primeira vez, seu cliente abre uma janela do navegador onde você faz login na sua conta do Plate e aprova o acesso. Você recebe um token de acesso (válido por 1 hora) e um token de atualização (válido por 30 dias). A atualização é feita automaticamente — você não será solicitado a reautorizar a menos que o token de atualização expire.

Escopos

EscopoPermissões
readVisualizar workspaces, projetos, tarefas — nenhuma alteração permitida
read writeAcesso total: visualizar e criar/atualizar tarefas, projetos e comentários

Ferramentas

Ferramentas de leitura estão sempre disponíveis. Ferramentas de escrita exigem o escopo write.

Retorna todos os workspaces do Plate aos quais o usuário autenticado pertence.

[{
  "id": "ws_abc",
  "name": "Acme Corp",
  "urlId": "acme",
  "taskPrefix": "SCA"
}]

Retorna todos os projetos em um workspace.

ParâmetroTipoDescrição
workspaceId *stringID do workspace de list_workspaces
[{
  "id": "proj_xyz",
  "name": "Backend",
  "description": null
}]

Retorna todas as seções em um projeto, ordenadas por posição. A seção padrão com a qual um projeto começa no aplicativo não tem nome armazenado e é retornada como "Things to do" — o rótulo mostrado na interface — para que possa ser referenciada pelo nome.

ParâmetroTipoDescrição
projectId *stringID do projeto de list_projects
[{
  "id": "list_abc",
  "name": "To Do",
  "order": 0
}]

Retorna tarefas em um projeto. Exclui tarefas concluídas por padrão. Também suporta a busca de uma tarefa pelo seu número público (ex.: 42 de SCD-42) — passe workspaceId + number e omita projectId.

ParâmetroTipoDescrição
projectId opcionalstringID do projeto. Obrigatório a menos que number seja fornecido.
workspaceId opcionalstringID do workspace. Obrigatório ao usar number.
number opcionalnumberNúmero público da tarefa (somente dígitos — ex.: 42 de SCD-42). Quando fornecido, workspaceId é obrigatório e projectId é ignorado.
statusId opcionalstringFiltrar por status
listId opcionalstringFiltrar por seção
includeCompleted opcionalbooleanIncluir tarefas concluídas (padrão: false)
limit opcionalnumberMáximo de tarefas a retornar (padrão: 100, máximo: 500)
[{
  "id": "task_123",
  "number": 42,
  "name": "Fix login bug",
  "isCompleted": false,
  "statusId": "status_abc",
  "assigneeId": "user_xyz",
  "listId": "list_abc",
  "projectId": "proj_xyz",
  "workspaceId": "ws_abc",
  "createdAt": "2025-01-15T10:00:00.000Z"
}]

get_task read

Retorna detalhes completos de uma única tarefa, incluindo sua descrição em rich text e lista de rótulos. Aceita três formas de busca:

  • ID interno — passe taskId (o campo id de list_tasks)
  • Referência prefixada — passe taskId: "SCD-426" e o servidor resolve automaticamente em todos os seus workspaces
  • Número — passe workspaceId + number: 426 para uma busca direta em um workspace específico

A resposta inclui dois campos de descrição: descriptionText (string Markdown, pronta para exibição) e description (array de nós Plate.js bruto). Use descriptionText para ler e exibir conteúdo.

ParâmetroTipoDescrição
taskId opcionalstringID interno da tarefa ou referência prefixada como SCD-426. Omita ao usar number.
workspaceId opcionalstringID do workspace. Acelera a busca por número; se omitido, todos os workspaces são pesquisados.
number opcionalnumberNúmero público da tarefa (somente dígitos — ex.: 426 de SCD-426). Quando fornecido, taskId é ignorado.

Retorna os comentários de uma tarefa, do mais antigo para o mais recente. Assim como a descrição de get_task, cada comentário tem contentText (string Markdown, pronta para exibição) e content (array de nós Plate.js bruto). Use contentText para leitura.

ParâmetroTipoDescrição
taskId *stringID interno da tarefa (o id de list_tasks, não o número público SCD-XXX)
[{
  "id": "comment_xyz",
  "authorId": "user_pasha",
  "contentText": "Fixed in projectsSaga.ts:287",
  "content": [ /* Plate nodes */ ],
  "createdAt": "2026-06-25T12:43:31.401Z"
}]

Retorna todos os membros de um workspace. Use userId como assigneeId ao criar ou atualizar tarefas.

ParâmetroTipoDescrição
workspaceId *stringID do workspace de list_workspaces
[{
  "userId": "user_abc",
  "name": "Jane Smith",
  "email": "jane@acme.com",
  "role": "member"
}]

Retorna os status do fluxo de trabalho para um workspace. Use o id retornado como statusId ao criar ou atualizar tarefas.

ParâmetroTipoDescrição
workspaceId *stringID do workspace de list_workspaces
[{
  "id": "status_abc",
  "name": "In Progress",
  "color": "#4fa3e0",
  "systemType": null,
  "order": 1
}]

Retorna os rótulos de tarefas para um workspace. Use o id retornado — ou o name — em labels ao criar ou atualizar tarefas.

ParâmetroTipoDescrição
workspaceId *stringID do workspace de list_workspaces
[{
  "id": "label_abc",
  "name": "Bug",
  "color": "#FFDCDB",
  "order": 0
}]

Histórico de alterações de tarefas em um intervalo de tempo — mudanças de status, atribuições, movimentações, etc. Use-o para perguntas baseadas em tempo, como quais tarefas foram concluídas na semana passada, ou o que uma pessoa fez. Cada linha fornece a tarefa, a transição de status, quem fez a alteração e o proprietário e o responsável da tarefa.

ParâmetroTipoDescrição
workspaceId *stringID do workspace de list_workspaces
fromstringInício do intervalo, ISO 8601 (ex.: 2026-06-01)
tostringFim do intervalo, ISO 8601
actorIdstringSomente alterações feitas por este userId (de list_members)
typestringtask_status_changed, ou completed para transições para um status Concluído
projectIdstringLimitar a um projeto
limitnumberMáximo de linhas (padrão 100, máximo 500)
[{
  "at": "2026-06-05T14:12:00.000Z",
  "type": "task_status_changed",
  "task": "SCD-42",
  "taskName": "Review API docs",
  "change": "In Progress → Done",
  "completed": true,
  "actor": "Pasha",
  "owner": "Karl",
  "assignee": "Pasha"
}]

Cria uma nova tarefa em uma seção do projeto. Retorna o ID da nova tarefa e seu número atribuído automaticamente.

ParâmetroTipoDescrição
projectId *stringID do projeto
listId *stringID da seção de list_sections
name *stringNome da tarefa
statusId opcionalstringID do status inicial
assigneeId opcionalstringID do usuário responsável
labels opcionalstring[]IDs ou nomes de rótulos (de list_labels); nomes correspondem sem diferenciar maiúsculas/minúsculas. Rótulos desconhecidos são um erro — eles nunca são criados automaticamente.
{ "id": "task_456", "number": 43 }

Plano gratuito: máximo de 300 tarefas por workspace. Pro: ilimitado.

Atualiza um ou mais campos em uma tarefa. Somente os campos fornecidos são alterados.

ParâmetroTipoDescrição
taskId *stringID da tarefa
name opcionalstringNovo nome da tarefa
statusId opcionalstringNovo ID de status. Também atualiza isCompleted.
assigneeId opcionalstring | nullNovo responsável. Passe null para desatribuir.
listId opcionalstringMover tarefa para uma seção diferente. Deve pertencer ao mesmo projeto.
description opcionalstringNova descrição. Markdown suportado.
labels opcionalstring[]Substitui os rótulos da tarefa (não adiciona). IDs ou nomes de list_labels; [] os limpa. Rótulos desconhecidos são um erro — eles nunca são criados automaticamente.
{ "id": "task_123" }

Marca uma tarefa como concluída ou a reabre. Define automaticamente o status para o status "done" ou "todo" do sistema.

ParâmetroTipoDescrição
taskId *stringID da tarefa
isCompleted opcionalbooleantrue para concluir, false para reabrir (padrão: true)
{ "id": "task_123", "isCompleted": true }

Exclui permanentemente uma tarefa. Comentários e anexos são removidos automaticamente.

ParâmetroTipoDescrição
taskId *stringID da tarefa
{ "id": "task_abc", "deleted": true }

Cria um novo projeto com uma seção padrão "To Do". Se um projeto com o mesmo nome já existir no workspace, retorna o projeto existente em vez de criar uma duplicata — verifique created na resposta para distinguir os dois casos. defaultListId é null se o projeto existente não tiver seções.

ParâmetroTipoDescrição
workspaceId *stringID do workspace
name *stringNome do projeto
description opcionalstringDescrição do projeto (texto simples)
{ "id": "proj_new", "defaultListId": "list_new", "created": true }

Plano gratuito: máximo de 3 projetos por workspace. Pro: ilimitado.

Renomeia um projeto ou atualiza sua descrição.

ParâmetroTipoDescrição
projectId *stringID do projeto
name opcionalstringNovo nome do projeto
description opcionalstring | nullNova descrição, ou null para limpar
{ "id": "proj_abc" }

Cria uma nova seção em um projeto. Se uma seção com o mesmo nome já existir no projeto, retorna a seção existente em vez de criar uma duplicata — verifique created na resposta para distinguir os dois casos.

ParâmetroTipoDescrição
projectId *stringID do projeto
name *stringNome da seção
{ "id": "section_abc", "created": true }

Renomeia uma seção.

ParâmetroTipoDescrição
sectionId *stringID da seção
name *stringNovo nome da seção
{ "id": "section_abc" }

Adiciona um comentário a uma tarefa. O comentário é postado como o usuário autenticado.

ParâmetroTipoDescrição
taskId *stringID da tarefa
text *stringTexto do comentário. Markdown suportado.
{ "id": "comment_abc" }

Exclui um comentário de uma tarefa.

ParâmetroTipoDescrição
commentId *stringID do comentário
{ "id": "comment_abc", "deleted": true }

Ferramentas em Lote

Ferramentas em lote permitem criar, atualizar ou excluir vários itens em uma única chamada — reduzindo o número de solicitações de confirmação em clientes de IA que pedem confirmação por chamada de ferramenta.

Cria várias tarefas em um projeto atomicamente. Se qualquer validação falhar, nada é criado. Máximo de 50 tarefas por chamada.

ParâmetroTipoDescrição
projectId *stringID do projeto
listIdstringID da seção padrão (usado quando uma tarefa omite seu próprio listId)
tasks *array (1–50)Tarefas a criar. Cada item: name (obrigatório), listId, assigneeId, statusId, description (markdown), dueDate, labels
{ "items": [{ "id": "task_abc", "number": 42, "name": "Task A", "listId": "list_xyz", "projectId": "proj_1", "workspaceId": "ws_1" }] }

Atualiza várias tarefas atomicamente. Máximo de 50 tarefas por chamada.

ParâmetroTipoDescrição
tasks *array (1–50)Tarefas a atualizar. Cada item: taskId (obrigatório), depois qualquer um de: name, listId, assigneeId, statusId, description (markdown), dueDate, labels (substitui a lista)
{ "items": [{ "id": "task_abc" }] }

Marca várias tarefas como concluídas (ou as reabre). Tarefas já concluídas são deixadas como estão. Máximo de 100 tarefas por chamada.

ParâmetroTipoDescrição
taskIds *array (1–100)IDs internos de tarefas a concluir
isCompletedbooleantrue para concluir, false para reabrir (padrão: true)
{ "items": [{ "id": "task_abc", "isCompleted": true }] }

Exclui permanentemente várias tarefas. Todas as tarefas são validadas antes de qualquer exclusão. Máximo de 50 tarefas por chamada.

ParâmetroTipoDescrição
taskIds *array (1–50)IDs internos de tarefas a excluir
{ "items": [{ "id": "task_abc", "deleted": true }] }

Cria várias seções em um projeto. Seções com nomes duplicados são retornadas como estão (created: false). Máximo de 30 seções por chamada.

ParâmetroTipoDescrição
projectId *stringID do projeto
sections *array (1–30)Seções a criar. Cada item: name (obrigatório)
{ "items": [{ "id": "list_abc", "name": "Backlog", "created": true }] }

Renomeia várias seções atomicamente. Máximo de 30 seções por chamada.

ParâmetroTipoDescrição
sections *array (1–30)Seções a atualizar. Cada item: sectionId (obrigatório), name (obrigatório)
{ "items": [{ "id": "list_abc" }] }

Adiciona vários comentários a tarefas. Máximo de 50 comentários por chamada.

ParâmetroTipoDescrição
comments *array (1–50)Comentários a criar. Cada item: taskId (obrigatório), text (obrigatório, markdown)
{ "items": [{ "id": "comment_abc", "taskId": "task_xyz" }] }

Exclui permanentemente vários comentários. Todos os comentários são validados antes de qualquer exclusão. Máximo de 50 comentários por chamada.

ParâmetroTipoDescrição
commentIds *array (1–50)IDs de comentários a excluir
{ "items": [{ "id": "comment_abc", "deleted": true }] }

Formatação de Texto

O campo description em update_task e o campo text em create_comment aceitam markdown. Ele é convertido em texto rico e renderizado no editor Plate.

SintaxeResultado
# HeadingTítulo 1
## HeadingTítulo 2
### HeadingTítulo 3
- item ou * itemItem de lista com marcadores
1. itemItem de lista numerada
> textCitação em bloco
**text**Negrito
*text*Itálico
***text***Negrito + itálico
~~text~~Tachado
`text`Código inline

Linhas em branco separam blocos. Linhas simples consecutivas sem uma linha em branco entre elas são mescladas em um único parágrafo.

# Example description
"## Steps to reproduce\n\n- Open settings\n- Click Profile\n\n**Expected:** profile page opens\n**Actual:** 404 error"

# Renders as:
#   Heading 2: "Steps to reproduce"
#   Bullet: "Open settings"
#   Bullet: "Click Profile"
#   Paragraph with bold "Expected:" and "Actual:" inline

Erros

Todas as ferramentas lançam uma string de erro descritiva em caso de falha. Causas comuns:

Mensagem de erroCausa
Access denied or workspace not foundO usuário autenticado não é membro do workspace solicitado
Task not foundID de tarefa inválido, ou a tarefa pertence a um workspace diferente
Project not foundID de projeto inválido
Section not foundID de seção inválido, ou a seção pertence a um projeto diferente
Free plan limit reached: 300 tasks maximumO workspace está no plano gratuito e atingiu o limite de tarefas
Free plan limit reached: 3 projects maximumO workspace está no plano gratuito e atingiu o limite de projetos

Perguntas? Escreva para nós em hello@plate.to