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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
streamId | string | obrigatório | ID do projeto de destino obtido com get_streams. Utilize "today" (ou "mytasks") para hoje. |
name | string | obrigatório | Título da tarefa (1-500 caracteres). |
durationSeconds | number | opcional | 60-14400 (1 min — 4 h). Predefinição 1500. |
dueDate | string | opcional | Indicaçã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. |
clientRequestId | string | opcional | Chave 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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
streamId | string | obrigatório | ID do stream obtido com get_streams. Utilize "today" ou "mytasks" para a caixa de entrada. |
taskId | string | obrigatório | ID da tarefa obtido com list_today ou get_streams. |
name | string | opcional | Novo título da tarefa (1-500 caracteres). |
durationSeconds | number | opcional | Nova duração em segundos (60-14400). Repõe durSecInit para o novo valor. |
dueDate | number | opcional | Nova data agendada como indicação temporal em segundos Unix. |
clientRequestId | string | opcional | Chave 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
| Campo | Tipo | Obrigatório |
|---|---|---|
streamId | string | obrigatório |
taskId | string | obrigatório |
Devolve
{ taskId, streamId, deleted, reason? }.
complete_task
Marcar uma tarefa do FocusBox como concluída.
Argumentos
| Campo | Tipo | Obrigatório |
|---|---|---|
streamId | string | obrigatório |
taskId | string | obrigató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.
