Réponse exemple
GET/v1/mcp/custom-actionsListe les actions personnalisées MCP du workspace, triées de la plus récente à la plus ancienne.Cette route renvoie l'ensemble des actions personnalisées MCP rattachées au workspace authentifié. Une action personnalisée est un outil défini par l'équipe que les clients MCP (Claude Desktop, Cursor, agents SSE) peuvent invoquer : elle relaie soit un appel vers un endpoint de l'API Coffrify (runtime_kind = json), soit du code exécuté (runtime_kind = typescript). La liste est restreinte au workspace courant et triée par created_at décroissant (les plus récentes en premier).
La réponse inclut des compteurs d'usage (invocation_count, last_invoked_at) utiles pour auditer quelles actions sont réellement sollicitées par les agents.
Authentification
Cet endpoint nécessite une clé API valide, aucun scope spécifique. Il s'agit d'une lecture seule (auth-only) : tout jeton authentifié rattaché au workspace peut lister les actions, sans permission particulière. Fournissez le jeton via Authorization: Bearer cof_live_... (ou un jeton MCP cof_mcp_live_...).
Paramètres de requête
Aucun paramètre de requête (query string) n'est lu par le handler. Le périmètre est implicitement borné au workspace déduit du jeton d'authentification.
Réponse
La réponse est une enveloppe de liste : object vaut toujours "list" et data est un tableau d'objets action (vide si aucune action n'est définie). Chaque objet expose les champs ci-dessous.
| Champ | Type | Description |
|---|---|---|
| id | string | Identifiant unique de l'action personnalisée. |
| name | string | Nom technique snake_case (3-64 caractères), unique dans le workspace. |
| description | string | Description lisible de l'action (vue par l'agent MCP). |
| required_scope | string | Scope API requis pour invoquer l'action via MCP. |
| input_schema | object | Schéma JSON décrivant les paramètres d'entrée de l'action. |
| endpoint_method | string | Méthode HTTP cible relayée (GET, POST, PATCH ou DELETE). |
| endpoint_path | string | Chemin de l'API Coffrify ciblé (préfixé /v1/). |
| param_mapping | array | Règles de mappage des paramètres d'entrée vers la requête cible. |
| runtime_kind | string | Mode d'exécution : json (relais d'endpoint) ou typescript (code). |
| code_source | string | null | Code source TypeScript si runtime_kind=typescript, sinon null. |
| is_active | boolean | Indique si l'action est active et exposée aux clients MCP. |
| invocation_count | number | Nombre total d'invocations enregistrées. |
| last_invoked_at | string | null | Horodatage ISO 8601 de la dernière invocation. |
| created_at | string | Horodatage ISO 8601 de création. |
| updated_at | string | Horodatage ISO 8601 de dernière modification. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| missing_api_key (401) | Aucun en-tête Authorization fourni. | Ajoutez l'en-tête Authorization: Bearer cof_live_.... |
| invalid_api_key (401) | Jeton mal formé, inconnu ou révoqué. | Vérifiez le préfixe et la validité de la clé API. |
| rate_limited (429) | Quota de requêtes en lecture du workspace dépassé. | Respectez l'en-tête Retry-After et réessayez plus tard. |
| internal_error (500) | Erreur de lecture en base lors de la requête. | Réessayez ; si le problème persiste, fournissez le request_id au support. |
Voir aussi
- POST /v1/mcp/custom-actions : créer une nouvelle action personnalisée.
- GET /v1/api-keys : gérer les clés API et leurs scopes.
- GET /v1/me : inspecter le contexte du jeton authentifié.