Referencia de herramientas de MCP
El servidor MCP de Copera expone 37 herramientas a través de nueve 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 |
| Total | 37 |
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 |
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.
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.