Saltar al contenido principal

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.

DominioHerramientas
Workspace3
Board11
Búsqueda1
Docs8
Notificaciones3
Chat2
Comentarios3
Drive5
Exportación1
Total37
El descubrimiento es explícito

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_infolist_boardslist_tablesget_table_schemalist_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).

HerramientaDescripciónCapacidad de la Public API
get_workspace_infoMetadatos básicos sobre el workspace al que pertenece el token (nombre, slug, número de asientos, timestamps).GET /workspace/info
list_workspace_membersLista miembros para resolver un id de usuario a partir de un nombre o email; paginado por offset, query opcional.GET /workspace/members
list_workspace_teamsLista 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.

HerramientaDescripciónCapacidad de la Public API
list_boardsLista 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_boardMetadatos de un único board por boardId.GET /board/{boardId}
list_tablesLista las tablas de un board con sus definiciones de columnas, con búsqueda por nombre opcional.GET /board/{boardId}/tables
get_table_schemaDefiniciones 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_rowsLista las filas de una tabla con query opcional, filter estructurado y sort. No paginado.GET /board/{boardId}/table/{tableId}/rows
get_rowObtiene una fila por rowId hexadecimal o por rowNumber visible (proporciona exactamente uno).GET …/row/{rowId} or GET …/row-number/{rowNumber}
create_rowCrea una fila a partir de celdas { columnId, value }; description legacy opcional.POST /board/{boardId}/table/{tableId}/row
update_rowActualiza los valores de celda de una fila existente por rowId (no edita texto largo).PATCH …/row/{rowId}
delete_rowElimina permanentemente una fila por rowId. Sin deshacer.DELETE …/row/{rowId}
get_row_markdownLee 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_markdownEscribe 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

Scope: nivel de workspace (resultados filtrados por los permisos del token).

HerramientaDescripciónCapacidad de la Public API
searchBú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).

HerramientaDescripciónCapacidad de la Public API
search_docsBúsqueda de texto completo en documentos con resultados rankeados y resaltados.GET /docs/search
get_docs_treeNavega la jerarquía de documentos; omite parentId para la raíz, acota con depth.GET /docs/tree
get_docMetadatos del documento (título, icono, portada, propietario, padre, timestamps) por docId.GET /docs/{docId}
get_doc_contentCuerpo markdown completo de un documento por docId (puede ser grande).GET /docs/{docId}/md
create_docCrea un documento con un title, parentId opcional y content inicial.POST /docs/
set_doc_contentEscribe markdown (reemplazar/anexar/anteponer) en el cuerpo de un documento. Asíncrono (HTTP 202).POST /docs/{docId}/md
update_doc_metadataActualiza el title, icon y/o cover de un documento (no el cuerpo).PATCH /docs/{docId}
delete_docElimina un documento por docId (solo el propietario). Sin deshacer.DELETE /docs/{docId}

Notificaciones

Scope: access_notifications (para el propio usuario del token).

HerramientaDescripciónCapacidad de la Public API
list_notificationsLista las notificaciones del usuario del token con unreadCount; paginado por cursor de id (after/before).GET /notifications/
update_notificationMarca una notificación como read o unread por notificationId.PATCH /notifications/{notificationId}
delete_notificationElimina una notificación por notificationId. Sin deshacer.DELETE /notifications/{notificationId}

Chat

Scope: access_channels.

HerramientaDescripciónCapacidad de la Public API
list_channelsLista canales y conversaciones de DM; filtra por query/type/kind/participantId; paginado por offset.GET /chat/channels
send_messageEnví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.

HerramientaDescripciónCapacidad de la Public API
list_row_commentsLista 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_commentAgrega un comentario a una fila; visibility es internal (por defecto) o external.POST …/row/{rowId}/comment
get_row_attachment_urlResuelve 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).

HerramientaDescripciónCapacidad de la Public API
get_drive_treeNavega el drive como un árbol anidado de archivos/carpetas; acotado por depth, con drill-down ante truncamiento.GET /drive/tree
search_driveBúsqueda de texto completo en archivos y carpetas del drive.GET /drive/search
get_drive_itemMetadatos de un único archivo o carpeta por fileId.GET /drive/files/{fileId}
get_drive_download_urlURL de descarga prefirmada de CloudFront con tiempo limitado para un archivo (no requiere auth para obtenerla).GET /drive/files/{fileId}/download
create_drive_folderCrea una carpeta en la raíz o bajo un parentId.POST /drive/folders

Exportación

Scope: access_boards.

HerramientaDescripciónCapacidad de la Public API
export_tableRenderiza 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

Las escrituras asíncronas son consistentes en el tiempo

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.

Las herramientas destructivas no se pueden deshacer

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.