FocusBox MCP — referência de ferramentas

URL do conector: https://focusbox.io/mcp/api. Consulte /mcp para a configuração.

list_today

Devolve as tarefas do utilizador agendadas para hoje (apenas as não concluídas).

Argumentos

Nenhum.

Devolve

Array de { taskId, name, durationSeconds, projectId }.

Exemplo de resposta

[
  { "taskId": "abc", "name": "Write spec", "durationSeconds": 1500, "projectId": "mytasks" }
]

next_task

Devolve uma única tarefa por onde começar, escolhida pelo que cabe no tempo disponível até ao próximo evento do calendário, pelo que ficou pendente de dias anteriores e pelo que é suficientemente pequeno para começar. Inclui o motivo, duas alternativas e uma ligação para começar.

Argumentos

availableMinutes (1-480, opcional).

Devolve

{ task, alternatives, freeWindowMinutes, busyNow, message }.

Exemplo de resposta

{
  "task": {
    "taskId": "abc", "name": "Finish pricing page", "projectId": "work",
    "estimateMinutes": 35, "source": "rollover",
    "reason": "Carried over from 2 days ago; fits the 47 min you have before your next meeting.",
    "startUrl": "https://focusbox.io/now?id=work&taskId=abc"
  },
  "alternatives": [],
  "freeWindowMinutes": 47, "busyNow": false,
  "message": "Start here: Finish pricing page (35 min)."
}

get_streams

Lista os projetos FocusBox do utilizador (contentores de tarefas; designados por "streams" na API por motivos históricos). Os projetos arquivados e os baldes today/mytasks são excluídos.

Argumentos

Nenhum.

Devolve

Array de { streamId, name }.

add_task

Adicionar uma nova tarefa a um projeto ou agendá-la para hoje. A duração predefinida é de 25 minutos.

Argumentos

CampoTipoObrigatórioDescrição
streamIdstringobrigatórioID do projeto de destino obtido com get_streams. Utilize "today" (ou "mytasks") para hoje.
namestringobrigatórioTítulo da tarefa (1-500 caracteres).
durationSecondsnumberopcional60-14400 (1 min — 4 h). Predefinição 1500.
dueDatestringopcionalIndicação temporal opcional em segundos Unix para a data agendada da tarefa. A vista today mostra as tarefas cuja data agendada se enquadra na janela de hoje no fuso horário do utilizador.
clientRequestIdstringopcionalChave de idempotência. A mesma chave dentro de 5 minutos devolve o resultado em cache.

Devolve

{ taskId, streamId, name, durationSeconds }.

update_task

Atualizar um ou mais campos de uma tarefa existente: name, durationSeconds ou dueDate.

Argumentos

CampoTipoObrigatórioDescrição
streamIdstringobrigatórioID do stream obtido com get_streams. Utilize "today" ou "mytasks" para a caixa de entrada.
taskIdstringobrigatórioID da tarefa obtido com list_today ou get_streams.
namestringopcionalNovo título da tarefa (1-500 caracteres).
durationSecondsnumberopcionalNova duração em segundos (60-14400). Repõe durSecInit para o novo valor.
dueDatenumberopcionalNova data agendada como indicação temporal em segundos Unix.
clientRequestIdstringopcionalChave de idempotência. A mesma chave dentro de 5 minutos devolve o resultado em cache.

Devolve

{ taskId, streamId, name, durationSeconds, dueDate }.

delete_task

Eliminar uma tarefa de forma permanente. Idempotente: eliminar uma tarefa já eliminada não é um erro.

Argumentos

CampoTipoObrigatório
streamIdstringobrigatório
taskIdstringobrigatório

Devolve

{ taskId, streamId, deleted, reason? }.

complete_task

Marcar uma tarefa do FocusBox como concluída.

Argumentos

CampoTipoObrigatório
streamIdstringobrigatório
taskIdstringobrigatório

Devolve

{ taskId, streamId, completed: true }.

get_insights_30d

Resumo agregado das tarefas concluídas pelo utilizador nos últimos 30 dias.

Argumentos

Nenhum.

Devolve

{ totalTasks, totalFocusMinutes, topStreams[{streamId, name, tasks}, days: 30 }].

Autenticação

OAuth (recomendado para o Claude)

O Claude Desktop e o claude.ai web concluem o fluxo OAuth automaticamente. Não é necessário lidar com chaves de API.

Bearer (Cursor, Inspector, clientes personalizados)

Obtenha a sua chave de API em /account/api-keys (começa por apikey_). Envie como Authorization: Bearer apikey_xxx em cada pedido.

Limites de taxa

300 chamadas de ferramentas por 2 minutos por chave de API. 60 sondagens não autenticadas por 2 minutos por IP.

FAQ

Autenticação: OAuth ou Bearer?

Ambas. Utilize OAuth (tratado automaticamente pelo Claude Desktop e pelo claude.ai web) para a configuração mais simples. Para o Cursor, MCP Inspector ou qualquer cliente personalizado, utilize autenticação Bearer com apikey_<uuid> obtida em /account/api-keys.

Quais são os limites de taxa?

300 chamadas de ferramentas por 2 minutos por chave de API. 60 sondagens não autenticadas por 2 minutos por IP. Atingir qualquer um devolve HTTP 429 com um cabeçalho Retry-After.

Quanto tempo duram os tokens OAuth?

30 dias a partir da emissão. Após esse período, o Claude desencadeia uma reautorização automaticamente. O token é opaco (at_*) e armazenado do lado do servidor; não é necessário token de atualização.

Porque é que a minha sessão do Claude se religa após uma implementação?

O mapa de sessões MCP está em memória numa única ECS task. Um rolling deploy reinicia-o. O Claude religa-se automaticamente e retoma; não deverá notar interrupções visíveis para além de um breve recarregamento.

Posso usar respostas em streaming (SSE)?

Sim. O transporte é a variante streamable HTTP da especificação MCP, pelo que cada chamada de ferramenta pode transmitir eventos de progresso antes do resultado final. As sessões são mantidas vivas com frames de ping periódicos.