FocusBox MCP — référence des outils

URL du connecteur : https://focusbox.io/mcp/api. Voir /mcp pour la configuration.

list_today

Retourne les tâches de l'utilisateur planifiées pour aujourd'hui (uniquement les non terminées).

Arguments

Aucun.

Retourne

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

Exemple de réponse

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

next_task

Retourne une seule tâche à commencer, choisie selon ce qui tient dans le temps disponible avant le prochain événement de l'agenda, ce qui a été reporté des jours précédents et ce qui est assez court pour être commencé. Inclut la raison, deux alternatives et un lien pour démarrer.

Arguments

availableMinutes (1-480, optionnel).

Retourne

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

Exemple de réponse

{
  "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

Liste les projets FocusBox de l'utilisateur (conteneurs de tâches ; appelés « streams » dans l'API pour des raisons historiques). Les projets archivés et les buckets today/mytasks sont exclus.

Arguments

Aucun.

Retourne

Tableau de { streamId, name }.

add_task

Ajoute une nouvelle tâche à un projet ou la planifie pour aujourd'hui. La durée par défaut est de 25 minutes.

Arguments

ChampTypeRequisDescription
streamIdstringrequisID du projet cible obtenu via get_streams. Utilisez "today" (ou "mytasks") pour aujourd'hui.
namestringrequisTitre de la tâche (1-500 caractères).
durationSecondsnumberoptionnel60-14400 (1 min — 4 h). Par défaut 1500.
dueDatestringoptionnelHorodatage Unix-seconds optionnel indiquant quand la tâche est planifiée. La vue Today affiche les tâches dont la due tombe dans la fenêtre du jour selon le fuseau horaire de l'utilisateur.
clientRequestIdstringoptionnelClé d'idempotence. La même clé sous 5 minutes retourne le résultat mis en cache.

Retourne

{ taskId, streamId, name, durationSeconds }.

update_task

Met à jour un ou plusieurs champs d'une tâche existante : name, durationSeconds ou dueDate.

Arguments

ChampTypeRequisDescription
streamIdstringrequisStream id obtenu via get_streams. Utilisez "today" ou "mytasks" pour la boîte de réception.
taskIdstringrequisTask id obtenu via list_today ou get_streams.
namestringoptionnelNouveau titre de la tâche (1-500 caractères).
durationSecondsnumberoptionnelNouvelle durée en secondes (60-14400). Réinitialise durSecInit à la nouvelle valeur.
dueDatenumberoptionnelNouvelle date d'échéance sous forme d'horodatage Unix-seconds.
clientRequestIdstringoptionnelClé d'idempotence. La même clé sous 5 minutes retourne le résultat mis en cache.

Retourne

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

delete_task

Supprime définitivement une tâche. Idempotent : supprimer une tâche déjà supprimée n'est pas une erreur.

Arguments

ChampTypeRequis
streamIdstringrequis
taskIdstringrequis

Retourne

{ taskId, streamId, deleted, reason? }.

complete_task

Marque une tâche FocusBox comme terminée.

Arguments

ChampTypeRequis
streamIdstringrequis
taskIdstringrequis

Retourne

{ taskId, streamId, completed: true }.

get_insights_30d

Résumé agrégé des tâches terminées par l'utilisateur sur les 30 derniers jours.

Arguments

Aucun.

Retourne

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

Authentification

OAuth (recommandé pour Claude)

Claude Desktop et claude.ai sur le web complètent le flux OAuth automatiquement. Aucune gestion d'API key n'est nécessaire.

Bearer (Cursor, Inspector, clients personnalisés)

Récupérez votre API key sur /account/api-keys (commence par apikey_). Envoyez-la sous Authorization: Bearer apikey_xxx à chaque requête.

Limites de débit

300 appels d'outils par tranche de 2 minutes par API key. 60 sondes non authentifiées par tranche de 2 minutes par IP.

FAQ

Authentification : OAuth ou Bearer ?

Les deux. Utilisez OAuth (géré automatiquement par Claude Desktop et claude.ai sur le web) pour la configuration la plus simple. Pour Cursor, MCP Inspector ou tout client personnalisé, utilisez l'authentification Bearer avec apikey_<uuid> depuis /account/api-keys.

Quelles sont les limites de débit ?

300 appels d'outils par tranche de 2 minutes par API key. 60 sondes non authentifiées par tranche de 2 minutes par IP. Tout dépassement retourne un HTTP 429 avec un en-tête Retry-After.

Combien de temps les jetons OAuth restent-ils valides ?

30 jours à compter de leur émission. Passé ce délai, Claude déclenche une ré-autorisation automatiquement. Le jeton est opaque (at_*) et stocké côté serveur ; aucun refresh token n'est nécessaire.

Pourquoi ma session Claude se reconnecte-t-elle après un déploiement ?

La table de sessions MCP est en mémoire dans une seule ECS task. Un rolling deploy la réinitialise. Claude se reconnecte automatiquement et reprend ; vous ne devriez constater aucune interruption visible au-delà d'un bref rechargement.

Puis-je utiliser des réponses en streaming (SSE) ?

Oui. Le transport est la variante streamable HTTP de la spécification MCP, donc chaque appel d'outil peut diffuser des événements de progression avant le résultat final. Les sessions sont maintenues actives via des trames ping périodiques.