Référence des outils MCP
Cette page liste 52 outils de Copera MCP Cloud sur dix domaines. Chaque outil est un wrapper léger autour d'un endpoint de la Copera Public API — la colonne Capacité Public API indique l'endpoint sous-jacent appelé par chaque outil.
| Domaine | Outils |
|---|---|
| Workspace | 3 |
| Board | 11 |
| Search | 1 |
| Docs | 8 |
| Notifications | 3 |
| Chat | 2 |
| Comment | 3 |
| Drive | 5 |
| Export | 1 |
| Artefacts | 15 |
| Total | 52 |
Le serveur est sans état, donc les outils board/table/ligne ont besoin d'ObjectIds hex explicites. Le flux de découverte est get_workspace_info → list_boards → list_tables → get_table_schema → list_rows. Appelez toujours get_table_schema avant d'écrire des lignes afin d'utiliser de vrais columnIds et des IDs d'options valides.
Workspace
Scope : niveau workspace (résultats filtrés par les permissions du token).
| Outil | Description | Capacité Public API |
|---|---|---|
get_workspace_info | Métadonnées de base du workspace auquel appartient le token (nom, slug, nombre de sièges, horodatages). | GET /workspace/info |
list_workspace_members | Liste les membres pour résoudre un id utilisateur à partir d'un nom ou d'un e-mail ; pagination par offset, query optionnel. | GET /workspace/members |
list_workspace_teams | Liste les équipes avec leurs ids d'utilisateurs participants ; pagination par offset, query optionnel. | GET /workspace/teams |
Board
Scope : access_boards. La boucle découverte → requête → écriture sur boards, tables et lignes.
| Outil | Description | Capacité Public API |
|---|---|---|
list_boards | Liste les boards accessibles au token, recherche par nom optionnelle. Commencez ici pour trouver un boardId. | GET /board/list-boards |
get_board | Métadonnées d'un board unique par boardId. | GET /board/{boardId} |
list_tables | Liste les tables d'un board avec définitions de colonnes, recherche par nom optionnelle. | GET /board/{boardId}/tables |
get_table_schema | Définitions de colonnes complètes d'une table, y compris les IDs d'options pour les colonnes STATUS/DROPDOWN/LABELS. | GET /board/{boardId}/table/{tableId} |
list_rows | Liste les lignes d'une table avec query optionnel, filter structuré et sort. Non paginé. | GET /board/{boardId}/table/{tableId}/rows |
get_row | Obtient une ligne par rowId hex ou par rowNumber visible (fournir exactement un). | GET …/row/{rowId} ou GET …/row-number/{rowNumber} |
create_row | Crée une ligne à partir de cellules { columnId, value } ; description héritée optionnelle. | POST /board/{boardId}/table/{tableId}/row |
update_row | Met à jour les valeurs de cellules d'une ligne existante par rowId (n'édite pas le texte long). | PATCH …/row/{rowId} |
delete_row | Supprime définitivement une ligne par rowId. Pas d'annulation. | DELETE …/row/{rowId} |
get_row_markdown | Lit le markdown de texte long : la description héritée de la ligne, ou une cellule de colonne RICH TEXT si columnId est fourni. | GET …/row/{rowId}/md ou …/column/{columnId}/md |
set_row_markdown | Écrit du markdown (replace/append/prepend) dans la description héritée ou une cellule de colonne RICH TEXT. Async (HTTP 202). | POST …/row/{rowId}/md ou …/column/{columnId}/md |
Search
Scope : niveau workspace (résultats filtrés par les permissions du token).
| Outil | Description | Capacité Public API |
|---|---|---|
search | Recherche full-text cross-entité sur documents, channels, messages, todos, fichiers drive, transcriptions vocales et chats IA. Restreindre avec types. | GET /search/ |
Docs
Scope : access_docs (les documents sont PAT uniquement).
| Outil | Description | Capacité Public API |
|---|---|---|
search_docs | Recherche full-text dans les documents avec résultats classés et surlignages. | GET /docs/search |
get_docs_tree | Parcourt la hiérarchie des documents ; omettre parentId pour la racine, borner avec depth. | GET /docs/tree |
get_doc | Métadonnées du document (titre, icône, cover, propriétaire, parent, horodatages) par docId. | GET /docs/{docId} |
get_doc_content | Corps markdown complet d'un document par docId (peut être volumineux). | GET /docs/{docId}/md |
create_doc | Crée un document avec un title, parentId et content d'amorçage optionnels. | POST /docs/ |
set_doc_content | Écrit du markdown (replace/append/prepend) dans le corps d'un document. Async (HTTP 202). | POST /docs/{docId}/md |
update_doc_metadata | Met à jour le title, l'icon et/ou le cover d'un document (pas le corps). | PATCH /docs/{docId} |
delete_doc | Supprime un document par docId (propriétaire uniquement). Pas d'annulation. | DELETE /docs/{docId} |
Notifications
Scope : access_notifications (pour l'utilisateur du token).
| Outil | Description | Capacité Public API |
|---|---|---|
list_notifications | Liste les notifications de l'utilisateur du token avec unreadCount ; pagination par curseur d'id (after/before). | GET /notifications/ |
update_notification | Marque une notification read ou unread par notificationId. | PATCH /notifications/{notificationId} |
delete_notification | Supprime une notification par notificationId. Pas d'annulation. | DELETE /notifications/{notificationId} |
Chat
Scope : access_channels.
| Outil | Description | Capacité Public API |
|---|---|---|
list_channels | Liste les channels et conversations DM ; filtrer par query/type/kind/participantId ; pagination par offset. | GET /chat/channels |
send_message | Envoie un message à un channel (channelId) ou un message direct à un utilisateur (userId) — exactement un des deux. | POST /chat/channel/{channelId}/send-message ou POST /chat/direct-message/send-message |
Comment
Scope : access_boards. Commentaires de ligne et références de pièces jointes.
| Outil | Description | Capacité Public API |
|---|---|---|
list_row_comments | Liste les commentaires d'une ligne (plus récents en premier) avec auteur et métadonnées de pièces jointes ; pagination par curseur ; filtre visibility. | GET …/row/{rowId}/comments |
add_row_comment | Ajoute un commentaire à une ligne ; visibility est internal (défaut) ou external. | POST …/row/{rowId}/comment |
get_row_attachment_url | Résout une downloadUrl authentifiée pour une pièce jointe de colonne FILE ou de commentaire (aucun octet renvoyé). | …/column/{columnId}/file/{fileId}/download ou …/comment/{commentId}/file/{fileId}/download |
Drive
Scope : access_drive (le drive est PAT uniquement).
| Outil | Description | Capacité Public API |
|---|---|---|
get_drive_tree | Parcourt le drive comme un arbre imbriqué de fichiers/dossiers ; borné par depth, avec drill-down de troncature. | GET /drive/tree |
search_drive | Recherche full-text dans les fichiers et dossiers du drive. | GET /drive/search |
get_drive_item | Métadonnées d'un fichier ou dossier unique par fileId. | GET /drive/files/{fileId} |
get_drive_download_url | URL de téléchargement CloudFront pré-signée à durée limitée pour un fichier (aucune auth nécessaire pour le fetch). | GET /drive/files/{fileId}/download |
create_drive_folder | Crée un dossier à la racine ou sous un parentId. | POST /drive/folders |
Export
Scope : access_boards.
| Outil | Description | Capacité Public API |
|---|---|---|
export_table | Rend une vue de table en CSV/XLSX/JSON/MARKDOWN/HTML/PDF/ZIP/ICS ; inline ou en file d'attente ; saveToDrive pour les exports volumineux/binaires. | POST /board/{boardId}/table/{tableId}/export |
Artefacts
Scope : access_drive, et les Artefacts doivent être disponibles dans votre workspace. Lisez et modifiez les apps, tableaux de bord et pages créés dans Copera — et confiez-les à un agent de code.
| Outil | Description | Capacité Public API |
|---|---|---|
get_artifact_handoff | L'unique appel pour construire à partir d'un artefact. Renvoie le lien de l'artefact, la version, la Spec, les notes, le design partagé (consignes, tokens, composants et assets avec des liens de téléchargement de courte durée), chaque page (surface, viewport, fichier d'entrée et fichiers qu'elle charge), les liens entre les pages et les fichiers source. versionId et maxInlineBytes optionnels. | GET /artifacts/{artifactId}/handoff |
list_artifacts | Liste les artefacts que vous pouvez ouvrir ; scope vaut mine ou shared, search optionnel, pagination par curseur (after, limit jusqu'à 50). | GET /artifacts/ |
get_artifact | La version actuelle de l'artefact : pages, design partagé, assets, la liste des fichiers avec leurs digests SHA-256 et l'aperçu. Lisez le contenu des fichiers avec read_artifact_source. | GET /artifacts/{artifactId} |
list_artifact_versions | L'historique des versions de l'artefact ; pagination par curseur (after, limit jusqu'à 50). | GET /artifacts/{artifactId}/versions |
get_artifact_version | Pages, design partagé et liste des fichiers d'une version (versionId). Une version enregistrée ne change jamais. | GET …/versions/{versionId} |
read_artifact_source | Lit un fichier source (path) d'une version par blocs limités. Continuez avec le nextCursor renvoyé jusqu'à ce que eof vaille true. | GET …/versions/{versionId}/source |
get_artifact_page_preview | Aperçu d'une page (pageId) d'une version. | GET …/versions/{versionId}/pages/{pageId}/preview |
get_artifact_design_snapshot | Une copie réutilisable du design partagé d'une version (consignes, tokens, composants, assets) avec son digest — passez-la à create_artifact comme reuseDesign. | GET …/versions/{versionId}/design |
list_artifact_design_starters | Les design starters sélectionnés (comme shadcn-core-v1) et leurs dépendances figées. | GET /artifacts/starters |
list_artifact_assets | Logos, polices, images et références ajoutés au design de l'artefact. | GET /artifacts/{artifactId}/design-assets |
import_artifact_asset | Ajoute un fichier que vous avez téléversé (fileId) au design de l'artefact comme logo, font, image ou reference, avec un altText optionnel. Placez-le sur une page avec patch_artifact_source. | POST /artifacts/{artifactId}/design-assets |
patch_artifact_source | Modifie des fichiers source à partir de baseVersionId avec les opérations replace_text, put_file et delete_file (jusqu'à 32 fichiers), chacune vérifiée par rapport au SHA-256 actuel du fichier. Mis en file — interrogez get_artifact_request. | POST /artifacts/{artifactId}/source-patches |
list_artifact_requests | Les demandes de modification récentes sur l'artefact, avec leur statut et la version produite par chacune. | GET /artifacts/{artifactId}/requests |
get_artifact_request | Statut d'une demande de modification (requestId) et version exacte qu'elle a produite. | GET /artifacts/{artifactId}/requests/{requestId} |
create_artifact | Crée un artefact privé à partir de votre propre projet source (static_web ou vite_react), avec un title, un request décrivant son usage et une idempotencyKey. Partez éventuellement d'un design starter (designStarterId) ou réutilisez un design (reuseDesign) — l'un ou l'autre. | POST /artifacts/ |
get_artifact_handoff suffit à un agent de code. Parcourez le résultat dans l'ordre : lisez la Spec, puis les notes, puis mettez en place le design, puis construisez chaque page à partir de ses fichiers, et enfin reliez les liens entre les pages — en suivant les nextSteps renvoyés. Omettez versionId pour obtenir la dernière version construite avec succès. Le contenu des fichiers est inclus jusqu'à maxInlineBytes (32 KiB par défaut, jusqu'à 1 MiB si votre client accepte de gros résultats) ; les fichiers marqués omitted: "over_budget" se lisent avec read_artifact_source et l'id de version renvoyé. Voir Construire avec votre agent de code pour la configuration.
Notes de comportement
set_row_markdown et set_doc_content sont mis en file (HTTP 202) — relisez avec get_row_markdown / get_doc_content pour confirmer que le changement a été appliqué. Les envois de channel sont synchrones ; les messages directs sont mis en file et peuvent ne pas apparaître immédiatement.
patch_artifact_source et create_artifact renvoient un reçu, pas un build terminé. Après un patch, interrogez get_artifact_request jusqu'à ce que la demande soit terminée ou en échec, puis lisez la version produite ; après un create, lisez l'artefact renvoyé et son aperçu. Ne réutilisez une idempotencyKey que pour relancer exactement la même demande. Si un fichier a changé depuis votre lecture, la modification échoue avec un conflit — relisez-le et réessayez.
delete_row, delete_doc et delete_notification suppriment définitivement des données. Confirmez l'id cible avant de les appeler.
Aucun outil ne renvoie jamais d'octets de fichier bruts. get_drive_download_url renvoie une URL pré-signée que vous pouvez récupérer sans auth ; get_row_attachment_url renvoie une downloadUrl authentifiée que vous récupérez vous-même avec votre bearer token.
Pour le schéma requête/réponse de chaque endpoint sous-jacent, voir la Référence de l'API.