Documentación
EnglishReferencia de MCP
Endpoint, autenticación, herramientas y errores del servidor MCP remoto de Mico.
El servidor MCP de Mico funciona en la nube de Mico y lee las reuniones que sincronizas. Habla el protocolo MCP 2025-03-26 sobre Streamable HTTP. Todas las herramientas son de solo lectura e idempotentes. Requiere un plan que incluya MCP (Flow), y el servidor comprueba el plan en cada petición. Para conectar un cliente, consulta MCP para agentes.
Endpoint
https://<project>.supabase.co/functions/v1/mcp
La URL exacta aparece en Ajustes → Desarrolladores → MCP.
- Cada petición es un
POSTcon un único mensaje JSON-RPC 2.0, y la respuesta es JSON. Los lotes no están soportados. - El servidor no guarda estado. No hay sesión, y
GET(el canal de eventos opcional) devuelve405. - Métodos soportados:
initialize,ping,tools/listytools/call. Las notificaciones se aceptan con202y sin cuerpo. - El servidor solo declara la capacidad
tools. No tiene recursos ni prompts.
Autenticación
Envía Authorization: Bearer <token> con uno de estos tokens:
| Token | Origen |
|---|---|
mico_pat_... | Un token de acceso personal que creas en Ajustes → Desarrolladores → MCP. No caduca; funciona hasta que lo revocas. |
mico_oat_... | Un token de acceso OAuth emitido para un cliente como claude.ai. Dura una hora, y el cliente lo renueva. |
Para los clientes OAuth, el servidor publica sus metadatos en /.well-known/oauth-protected-resource y /.well-known/oauth-authorization-server bajo la URL del endpoint. Admite el registro dinámico de clientes (/register), el flujo de código de autorización con PKCE S256 (/authorize y /token), clientes públicos sin secreto y el scope mico:read. Los tokens de renovación duran 30 días y rotan en cada uso.
En la página de autorización demuestras quién eres con un token de acceso personal. Revocar ese token revoca también todas las conexiones OAuth que autorizó.
Un token ausente, desconocido, caducado o revocado devuelve 401 con una cabecera WWW-Authenticate que apunta a los metadatos del recurso protegido.
Herramientas
Los valores de limit y offset fuera de rango se ajustan, no se rechazan.
list_meetings
| Parámetro | Tipo | Por defecto | Notas |
|---|---|---|---|
query | string | — | Subcadena del título o del ID de reunión, sin distinguir mayúsculas de minúsculas. |
series_id | string | — | ID exacto de la serie recurrente. |
limit | integer | 20 | Se ajusta a 1..200. |
offset | integer | 0 | Número de resultados que se omiten. |
Devuelve meetings, de la más reciente a la más antigua, y pagination. pagination.total es null.
get_meeting
Acepta el string obligatorio meeting_id. Devuelve los metadatos de la reunión (id, title, kind, status, created_at, updated_at, started_at, ended_at, series_id, timezone, language), note, summaries, participants y action_items. Las palabras de la transcripción van aparte de forma intencionada.
Cada nota o resumen lleva su texto en markdown, como texto plano con una línea por párrafo o encabezado.
get_meeting_transcript
| Parámetro | Tipo | Por defecto | Notas |
|---|---|---|---|
meeting_id | string | obligatorio | Un ID de reunión de Mico devuelto. |
offset | integer | 0 | Offset en palabras. |
limit | integer | 200 | Se ajusta a 1..500. |
El resultado incluye meeting_id, text, words y pagination. pagination.total es el número de palabras de la transcripción, y pagination.next_offset es null en la última página. Si una reunión tiene texto de transcripción pero no tiempos por palabra, la primera página devuelve ese texto con la lista words vacía.
get_recurring_meeting_history
Acepta el string obligatorio meeting_id y los enteros opcionales limit y offset. El límite es 20 por defecto y se ajusta a 1..200; el offset es 0 por defecto. Devuelve meetings de la misma serie recurrente, de la más reciente a la más antigua, y pagination. Una reunión que no pertenece a ninguna serie devuelve una lista vacía.
search_meetings
| Parámetro | Tipo | Por defecto | Notas |
|---|---|---|---|
query | string | obligatorio | Texto que buscar en los títulos y resúmenes de las reuniones. No distingue mayúsculas de minúsculas. |
limit | integer | 20 | Se ajusta a 1..200. |
offset | integer | 0 | Número de resultados que se omiten. |
Devuelve meetings, de la más reciente a la más antigua, y pagination. pagination.total cuenta las coincidencias.
list_pending_action_items
Acepta los enteros opcionales limit (20 por defecto, ajustado a 1..200) y offset (0 por defecto). Devuelve action_items con estado todo o in_progress, del más reciente al más antiguo, cada uno con el meeting_id y el meeting_title de su reunión, y pagination.
search_shared_notes
| Parámetro | Tipo | Por defecto | Notas |
|---|---|---|---|
query | string | obligatorio | Palabras que deben aparecer todas en la nota. |
limit | integer | 10 | Se ajusta a 1..20. |
Busca en las notas que otras personas comparten contigo, incluido todo lo que se comparte con tus equipos. Devuelve results, cada uno con share_id, title, team, published_at y un snippet. Solo notas y resúmenes, nunca transcripciones.
get_shared_note
Acepta el string obligatorio share_id, tal como lo devuelve search_shared_notes. Devuelve share_id, title, team, published_at, text (hasta 12.000 caracteres) y truncated.
Resultados y errores
Cada herramienta devuelve un único elemento de contenido text que contiene JSON. Los resultados paginados incluyen un objeto pagination con offset, limit, returned, total y next_offset.
Una herramienta que no puede responder devuelve un resultado normal con isError: true y un mensaje error en el JSON. Eso incluye un argumento obligatorio que falta, una reunión que no existe o no es tuya (meeting 'ID' not found) y un fallo al leer los datos.
Los errores de protocolo usan códigos JSON-RPC:
| Código | Significado |
|---|---|
-32700 | El cuerpo no es JSON válido. |
-32600 | Petición JSON-RPC no válida, o un lote. |
-32601 | Método no soportado. |
-32602 | Herramienta desconocida. |
Los errores HTTP llegan en lugar de una respuesta JSON-RPC:
| Estado | Significado |
|---|---|
401 | Token ausente, desconocido, caducado o revocado. |
402 | Tu plan no incluye MCP. El code del cuerpo es feature_not_included o no_plan. |
405 | La petición no es un POST. |
503 | Mico no pudo verificar el token o el plan. Vuelve a intentarlo en un momento. |