Referencia de herramientas de MCP
Esta página enumera 52 herramientas de Copera MCP Cloud en diez dominios. Cada herramienta es un envoltorio delgado sobre un endpoint de la Copera Public API — la columna capacidad de la Public API muestra el endpoint subyacente que llama cada herramienta.
| Dominio | Herramientas |
|---|---|
| Workspace | 3 |
| Board | 11 |
| Búsqueda | 1 |
| Docs | 8 |
| Notificaciones | 3 |
| Chat | 2 |
| Comentarios | 3 |
| Drive | 5 |
| Exportación | 1 |
| Artefactos | 15 |
| Total | 52 |
El servidor es sin estado, así que las herramientas de board/tabla/fila necesitan ObjectIds hexadecimales explícitos. El flujo de descubrimiento es get_workspace_info → list_boards → list_tables → get_table_schema → list_rows. Siempre llama a get_table_schema antes de escribir filas para usar columnIds reales e IDs de opción válidos.
Workspace
Scope: nivel de workspace (resultados filtrados por los permisos del token).
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
get_workspace_info | Metadatos básicos sobre el workspace al que pertenece el token (nombre, slug, número de asientos, timestamps). | GET /workspace/info |
list_workspace_members | Lista miembros para resolver un id de usuario a partir de un nombre o email; paginado por offset, query opcional. | GET /workspace/members |
list_workspace_teams | Lista equipos con los ids de usuario de sus participantes; paginado por offset, query opcional. | GET /workspace/teams |
Board
Scope: access_boards. El ciclo de descubrimiento → consulta → escritura sobre boards, tablas y filas.
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
list_boards | Lista los boards a los que el token puede acceder, con búsqueda por nombre opcional. Empieza aquí para encontrar un boardId. | GET /board/list-boards |
get_board | Metadatos de un único board por boardId. | GET /board/{boardId} |
list_tables | Lista las tablas de un board con sus definiciones de columnas, con búsqueda por nombre opcional. | GET /board/{boardId}/tables |
get_table_schema | Definiciones completas de las columnas de una tabla, incluyendo los IDs de opción de las columnas STATUS/DROPDOWN/LABELS. | GET /board/{boardId}/table/{tableId} |
list_rows | Lista las filas de una tabla con query opcional, filter estructurado y sort. No paginado. | GET /board/{boardId}/table/{tableId}/rows |
get_row | Obtiene una fila por rowId hexadecimal o por rowNumber visible (proporciona exactamente uno). | GET …/row/{rowId} or GET …/row-number/{rowNumber} |
create_row | Crea una fila a partir de celdas { columnId, value }; description legacy opcional. | POST /board/{boardId}/table/{tableId}/row |
update_row | Actualiza los valores de celda de una fila existente por rowId (no edita texto largo). | PATCH …/row/{rowId} |
delete_row | Elimina permanentemente una fila por rowId. Sin deshacer. | DELETE …/row/{rowId} |
get_row_markdown | Lee markdown de texto largo: la descripción legacy de la fila, o una celda de columna RICH TEXT si se proporciona columnId. | GET …/row/{rowId}/md or …/column/{columnId}/md |
set_row_markdown | Escribe markdown (reemplazar/anexar/anteponer) en la descripción legacy o en una celda de columna RICH TEXT. Asíncrono (HTTP 202). | POST …/row/{rowId}/md or …/column/{columnId}/md |
Búsqueda
Scope: nivel de workspace (resultados filtrados por los permisos del token).
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
search | Búsqueda de texto completo entre entidades sobre documentos, canales, mensajes, todos, archivos de drive, transcripciones de voz y chats de IA. Restringe con types. | GET /search/ |
Docs
Scope: access_docs (los documentos son solo PAT).
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
search_docs | Búsqueda de texto completo en documentos con resultados rankeados y resaltados. | GET /docs/search |
get_docs_tree | Navega la jerarquía de documentos; omite parentId para la raíz, acota con depth. | GET /docs/tree |
get_doc | Metadatos del documento (título, icono, portada, propietario, padre, timestamps) por docId. | GET /docs/{docId} |
get_doc_content | Cuerpo markdown completo de un documento por docId (puede ser grande). | GET /docs/{docId}/md |
create_doc | Crea un documento con un title, parentId opcional y content inicial. | POST /docs/ |
set_doc_content | Escribe markdown (reemplazar/anexar/anteponer) en el cuerpo de un documento. Asíncrono (HTTP 202). | POST /docs/{docId}/md |
update_doc_metadata | Actualiza el title, icon y/o cover de un documento (no el cuerpo). | PATCH /docs/{docId} |
delete_doc | Elimina un documento por docId (solo el propietario). Sin deshacer. | DELETE /docs/{docId} |
Notificaciones
Scope: access_notifications (para el propio usuario del token).
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
list_notifications | Lista las notificaciones del usuario del token con unreadCount; paginado por cursor de id (after/before). | GET /notifications/ |
update_notification | Marca una notificación como read o unread por notificationId. | PATCH /notifications/{notificationId} |
delete_notification | Elimina una notificación por notificationId. Sin deshacer. | DELETE /notifications/{notificationId} |
Chat
Scope: access_channels.
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
list_channels | Lista canales y conversaciones de DM; filtra por query/type/kind/participantId; paginado por offset. | GET /chat/channels |
send_message | Envía un mensaje a un canal (channelId) o un mensaje directo a un usuario (userId) — exactamente uno. | POST /chat/channel/{channelId}/send-message or POST /chat/direct-message/send-message |
Comentarios
Scope: access_boards. Comentarios de fila y referencias de adjuntos.
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
list_row_comments | Lista los comentarios de una fila (más recientes primero) con metadatos de autor y adjuntos; paginado por cursor; filtro visibility. | GET …/row/{rowId}/comments |
add_row_comment | Agrega un comentario a una fila; visibility es internal (por defecto) o external. | POST …/row/{rowId}/comment |
get_row_attachment_url | Resuelve un downloadUrl autenticado para un adjunto de columna FILE o de comentario (no devuelve bytes). | …/column/{columnId}/file/{fileId}/download or …/comment/{commentId}/file/{fileId}/download |
Drive
Scope: access_drive (drive es solo PAT).
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
get_drive_tree | Navega el drive como un árbol anidado de archivos/carpetas; acotado por depth, con drill-down ante truncamiento. | GET /drive/tree |
search_drive | Búsqueda de texto completo en archivos y carpetas del drive. | GET /drive/search |
get_drive_item | Metadatos de un único archivo o carpeta por fileId. | GET /drive/files/{fileId} |
get_drive_download_url | URL de descarga prefirmada de CloudFront con tiempo limitado para un archivo (no requiere auth para obtenerla). | GET /drive/files/{fileId}/download |
create_drive_folder | Crea una carpeta en la raíz o bajo un parentId. | POST /drive/folders |
Exportación
Scope: access_boards.
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
export_table | Renderiza una vista de tabla a CSV/XLSX/JSON/MARKDOWN/HTML/PDF/ZIP/ICS; inline o en cola; saveToDrive para exportaciones grandes/binarias. | POST /board/{boardId}/table/{tableId}/export |
Artefactos
Scope: access_drive, y tu workspace debe tener Artefactos disponibles. Lee y edita las apps, dashboards y páginas que la gente crea en Copera — y entrégaselos a un agente de programación.
| Herramienta | Descripción | Capacidad de la Public API |
|---|---|---|
get_artifact_handoff | La única llamada para construir a partir de un artefacto. Devuelve el enlace del artefacto, la versión, la Spec, las notas, el diseño compartido (pautas, tokens, componentes y assets con enlaces de descarga de corta duración), cada página (superficie, viewport, archivo de entrada y los archivos que carga), los enlaces entre páginas y los archivos de código. versionId y maxInlineBytes opcionales. | GET /artifacts/{artifactId}/handoff |
list_artifacts | Lista los artefactos que puedes abrir; scope es mine o shared, search opcional, paginado por cursor (after, limit hasta 50). | GET /artifacts/ |
get_artifact | La versión actual del artefacto: páginas, diseño compartido, assets, la lista de archivos con digests SHA-256 y la vista previa. Lee el contenido de los archivos con read_artifact_source. | GET /artifacts/{artifactId} |
list_artifact_versions | El historial de versiones del artefacto; paginado por cursor (after, limit hasta 50). | GET /artifacts/{artifactId}/versions |
get_artifact_version | Páginas, diseño compartido y lista de archivos de una versión (versionId). Una versión nunca cambia una vez guardada. | GET …/versions/{versionId} |
read_artifact_source | Lee un archivo de código (path) de una versión en bloques acotados. Continúa con el nextCursor devuelto hasta que eof sea true. | GET …/versions/{versionId}/source |
get_artifact_page_preview | Vista previa de una página (pageId) de una versión. | GET …/versions/{versionId}/pages/{pageId}/preview |
get_artifact_design_snapshot | Una copia reutilizable del diseño compartido de una versión (pautas, tokens, componentes, assets) con su digest — pásala a create_artifact como reuseDesign. | GET …/versions/{versionId}/design |
list_artifact_design_starters | Los design starters seleccionados (como shadcn-core-v1) y sus dependencias fijadas. | GET /artifacts/starters |
list_artifact_assets | Logos, fuentes, imágenes y referencias añadidos al diseño del artefacto. | GET /artifacts/{artifactId}/design-assets |
import_artifact_asset | Añade un archivo que subiste (fileId) al diseño del artefacto como logo, font, image o reference, con altText opcional. Colócalo en una página con patch_artifact_source. | POST /artifacts/{artifactId}/design-assets |
patch_artifact_source | Edita archivos de código sobre baseVersionId con operaciones replace_text, put_file y delete_file (hasta 32 archivos), cada una comprobada contra el SHA-256 actual del archivo. En cola — consulta get_artifact_request. | POST /artifacts/{artifactId}/source-patches |
list_artifact_requests | Solicitudes de edición recientes del artefacto, con su estado y la versión que produjo cada una. | GET /artifacts/{artifactId}/requests |
get_artifact_request | Estado de una solicitud de edición (requestId) y la versión exacta que produjo. | GET /artifacts/{artifactId}/requests/{requestId} |
create_artifact | Crea un artefacto privado a partir de tu propio proyecto de código (static_web o vite_react), con un title, un request que describe para qué sirve y una idempotencyKey. Opcionalmente parte de un design starter (designStarterId) o reutiliza un diseño (reuseDesign) — uno u otro. | POST /artifacts/ |
get_artifact_handoff es todo lo que necesita un agente de programación. Recorre el resultado en orden: lee la Spec, luego las notas, luego configura el diseño, luego construye cada página a partir de sus archivos y, por último, conecta los enlaces entre páginas — y sigue los nextSteps devueltos. Omite versionId para obtener la última versión que se construyó correctamente. El contenido de los archivos se incluye hasta maxInlineBytes (32 KiB por defecto, hasta 1 MiB si tu cliente acepta resultados grandes); los archivos marcados con omitted: "over_budget" se leen con read_artifact_source usando el id de versión devuelto. Consulta Construye con tu agente de programación para la configuración.
Notas de comportamiento
set_row_markdown y set_doc_content se encolan (HTTP 202) — vuelve a leer con get_row_markdown / get_doc_content para confirmar que el cambio se aplicó. Los envíos a canales son síncronos; los mensajes directos se encolan y pueden no aparecer de inmediato.
patch_artifact_source y create_artifact devuelven un recibo, no un build terminado. Tras un patch, consulta get_artifact_request hasta que la solicitud se complete o falle y luego lee la versión que produjo; tras un create, lee el artefacto devuelto y su vista previa. Reutiliza una idempotencyKey solo para reintentar la solicitud idéntica. Si un archivo cambió desde que lo leíste, la edición falla con un conflicto — vuelve a leerlo y reintenta.
delete_row, delete_doc y delete_notification eliminan datos de forma permanente. Confirma el id de destino antes de llamarlas.
Ninguna herramienta devuelve nunca bytes de archivo en bruto. get_drive_download_url devuelve una URL prefirmada que puedes obtener sin auth; get_row_attachment_url devuelve un downloadUrl autenticado que obtienes tú mismo con tu bearer token.
Para el esquema de petición/respuesta de cada endpoint subyacente, consulta la Referencia de la API.