> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Referencia de herramientas MCP de redes sociales

> Todas las herramientas que expone el servidor MCP de Social media studio, por categoría: publicaciones, borradores, medios, bandeja de entrada, analíticas, textos con IA, webhooks y más.

El servidor MCP de Social media studio expone **205 herramientas**, agrupadas a continuación por área. Todas las herramientas listadas
a continuación están registradas en el endpoint MCP estándar (`https://api.so-me.studio/mcp`) y pueden ser llamadas
por cualquier agente autenticado con su `X-API-Key`.

> [!NOTE]
>
> Las 205 herramientas están disponibles en el único endpoint MCP público — **no existe una superficie MCP de
> administración aparte**. Herramientas como `create_tenant`, `delete_tenant` y `list_tenants` son herramientas normales
> del espacio de trabajo limitadas al usuario autenticado.
>
> Los controladores `admin/mcp-tool-costs` y `api-access/mcp` son rutas del panel protegidas con JWT
> que sirven para ver/editar los **costes en créditos** por herramienta y los **registros de uso** — no exponen herramientas
> MCP adicionales.

> [!NOTE]
>
> Cada llamada a una herramienta consume créditos del plan y cuenta para tu límite de solicitudes por minuto. Consulta
> los costes en tiempo de ejecución con [`list_mcp_tools`](#introspección-de-mcp-2-herramientas) y tu saldo restante con
> [`get_mcp_usage`](#introspección-de-mcp-2-herramientas). Niveles de créditos: `1` lectura/listado/obtención, `2` escritura/modificación/eliminación,
> `3` analíticas, `5` texto con IA, `8` imagen con IA, `10` acciones compuestas con IA.

## Enums comunes

Estos valores de enum se reutilizan en muchas herramientas.

> **socialMedia (SOCIAL\_MEDIA\_ENUM)**
>
> `TWITTER`, `INSTAGRAM`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `TIKTOK`, `YOUTUBE`,
> `THREADS`, `WHATSAPP`, `DRIBBBLE`, `PINTEREST`

> **platform (PLATFORM\_ENUM)**
>
> `TWITTER`, `INSTAGRAM`, `LINKEDIN`, `FACEBOOK`, `TIKTOK`, `YOUTUBE`, `THREADS`, `DRIBBBLE`,
> `PINTEREST`, `WHATSAPP`, `LINKEDIN_PAGE`

> **status (STATUS\_ENUM)**
>
> `POSTED`, `SCHEDULED`, `PENDING`, `FAILED`, `PENDING_APPROVAL`, `REJECTED`

> **postType (POST\_TYPE\_ENUM)**
>
> `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL`, `STORY`

> [!NOTE]
>
> Los valores de paginación por defecto son coherentes en todas las herramientas de listado: `page` es `1` por defecto y `limit` es
> `20` por defecto (máx. `100`), salvo que una herramienta documente otro esquema (por ejemplo, basado en cursor o en offset).

## Publicaciones (11 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_posts` | Lista las publicaciones programadas/publicadas de tu espacio de trabajo | `page?`, `limit?`, `status?`, `socialMedia?` |
| `get_post` | Obtiene una publicación por ID | `id` |
| `create_post` | Crea una publicación nueva | `text`, `socialMedia`, `postType?`, `scheduledAt?`, `accountId?` |
| `update_post` | Actualiza una publicación existente | `id`, `text?`, `scheduledAt?`, `metaData?`, `postType?` |
| `schedule_post` | Programa una publicación existente para publicarla en el futuro | `id`, `scheduledAt` |
| `unschedule_post` | Quita una publicación de la programación (vuelve a pendiente) | `id` |
| `delete_post` | Elimina una publicación | `id` |
| `retry_post` | Reintenta una publicación fallida (FAILED → PENDING) | `id` |
| `resubmit_post` | Reenvía a aprobación una publicación rechazada | `id` |
| `bulk_delete_posts` | Elimina varias publicaciones a la vez | `ids` (array) |
| `get_calendar_posts` | Obtiene las publicaciones de un rango de fechas (vista de calendario) | `startDate`, `endDate` |

## Flujo de publicación

Las herramientas de escritura aceptan tres campos opcionales además de `text`, `fileIds` y `scheduledAt`: `threadParts`, `firstComment` y `tiktok`. Las descripciones de las herramientas indican qué hace cada campo; esta sección es el orden de operaciones recomendado para un agente que publica en nombre de un usuario.

**1. Comprueba primero los medios**

Cuando el medio lo ha generado, editado o elegido el agente, llama a `validate_post_media` con los
`targets` previstos antes de `create_post` o `schedule_post`. Devuelve, por destino, el
ancho, alto, duración, códec y velocidad de fotogramas medidos, los límites configurados y una cadena `fix`
por cada discrepancia. Aplica la corrección y valida de nuevo cuando el archivo lo produjo el agente; muestra el
informe y deja que decida el usuario cuando el archivo lo aportó él. Envía solo valores medidos — cada
propiedad omitida se devuelve como `needs_review` en lugar de como aprobada. `get_media_rules` devuelve la
tabla completa por plataforma, que es la forma más barata de generar medios con el tamaño correcto desde el principio.

**2. Confirma las subidas**

`presign_media_upload` reserva archivos de la biblioteca y devuelve URL PUT. Cada PUT debe enviar un
encabezado `Content-Type` igual al `mimetype` declarado, o el almacenamiento responde 403. La subida solo está
completa cuando los bytes se han almacenado: llama a `get_media_file` con `verifyUpload: true` antes de
adjuntar el archivo a una publicación.

**3. TikTok: pregunta al creador, nunca adivines**

TikTok rechaza cualquier publicación sin nivel de privacidad, y solo el creador puede elegirlo. Llama a
`get_tiktok_creator_info` para la cuenta de destino, ofrece al usuario solo los valores que devuelve
`privacy_level_options` (una cuenta privada no puede elegir `PUBLIC_TO_EVERYONE`), sugiere
`PUBLIC_TO_EVERYONE` para una cuenta pública, pregunta si se permiten comentarios y luego envía
`{ privacyLevel, allowComments, allowDuet, allowStitch }` en el objeto `tiktok`. Una publicación sin
`tiktok.privacyLevel` se rechaza con `TIKTOK_PRIVACY_LEVEL_REQUIRED`; un nivel que el creador no puede
usar devuelve `TIKTOK_PRIVACY_LEVEL_NOT_ALLOWED`. Una advertencia `TIKTOK_SETTING_FORCED` significa que el creador
desactivó los comentarios, el dúo o el stitch en toda la cuenta — repíteselo al usuario.

**4. Cadenas y primeros comentarios**

`threadParts` crea una cadena de varias publicaciones solo en X, Threads, Bluesky y Mastodon: `text` es la
cabecera y `threadParts[0]` es la primera respuesta. La publicación más allá de la cabecera es de mejor esfuerzo; informa de
`metaData.threadPartWarning` si está definido y nunca vuelvas a publicar la cabecera. `firstComment` publica un
comentario bajo la publicación (bajo la última parte de una cadena) en Facebook, Instagram, X, LinkedIn,
LinkedIn Page, Threads, YouTube, TikTok, Bluesky y Mastodon (TikTok necesita que el acceso a comentarios de la cuenta
esté activado en Cuentas). Comprueba `capabilities.firstComment` en `list_accounts` antes de
prometerlo — un destino no compatible se publica igualmente y devuelve una advertencia `FIRST_COMMENT_UNSUPPORTED`.
Lee `firstCommentStatus` en la publicación antes de dar el comentario por publicado.

## Comentarios de publicaciones (5 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_post_comments` | Lista los comentarios de una publicación | `postId`, `page?`, `limit?` |
| `add_post_comment` | Añade un comentario a una publicación | `postId`, `content` |
| `update_post_comment` | Actualiza un comentario existente de una publicación | `commentId`, `content` |
| `delete_post_comment` | Elimina un comentario de una publicación | `commentId` |
| `mark_comments_as_read` | Marca como leídos todos los comentarios de una publicación | `postId` |

## Borradores (6 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_drafts` | Lista los borradores de tu espacio de trabajo | `page?`, `limit?` |
| `get_draft` | Obtiene un borrador por ID | `id` |
| `create_draft` | Crea un borrador nuevo | `text?`, `title?`, `socialMedia?`, `postType?`, `description?`, `accountId?` |
| `update_draft` | Actualiza un borrador existente | `id`, `text?`, `title?`, `socialMedia?`, `postType?`, `description?`, `accountId?` |
| `delete_draft` | Elimina un borrador | `id` |
| `convert_draft` | Convierte un borrador en una publicación programada (el borrador debe tener `text`, `socialMedia`, `postType`) | `id`, `scheduledAt?` |

## Cuentas (3 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_accounts` | Lista las cuentas de redes sociales conectadas | *(ninguno)* |
| `get_account` | Obtiene los detalles de una cuenta social conectada | `id` |
| `disconnect_account` | Desconecta (elimina) una cuenta social conectada | `id` |

## Medios (13 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_media` | Lista los archivos multimedia de tu biblioteca | `page?`, `limit?`, `folderId?` |
| `search_media` | Busca archivos multimedia por nombre | `query` |
| `get_media_file` | Obtiene un archivo multimedia por ID | `id` |
| `delete_media` | Elimina un archivo multimedia de la biblioteca | `id` |
| `bulk_delete_media` | Elimina varios archivos multimedia a la vez | `fileIds` (array) |
| `list_media_folders` | Lista las carpetas de medios de la biblioteca | `page?`, `limit?` |
| `create_media_folder` | Crea una carpeta de medios nueva | `name`, `parentId?` |
| `delete_media_folder` | Elimina una carpeta de medios y su contenido | `id` |
| `move_media_file` | Mueve un archivo multimedia a otra carpeta (o a la raíz) | `id`, `folderId?` |
| `move_media_folder` | Mueve una carpeta a otro elemento padre (o a la raíz) | `id`, `parentId?` |
| `rename_media_file` | Renombra un archivo multimedia | `id`, `name` |
| `rename_media_folder` | Renombra una carpeta de medios | `id`, `name` |
| `presign_media_upload` | Genera URL PUT prefirmadas de S3 para subir medios a la biblioteca | `files` (array de `{filename, mimetype, size?}`), `folderId?` |

## Bandeja de entrada (18 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_conversations` | Lista las conversaciones de la bandeja de entrada de todas las plataformas conectadas | *(ninguno)* |
| `get_messages` | Obtiene los mensajes de un hilo de conversación | `threadId` |
| `reply_to_conversation` | Publica una respuesta de seguimiento en un hilo de conversación | `threadId`, `message` |
| `update_conversation` | Actualiza el estado de la conversación (`threadStatus`: `OPEN`/`CLOSED`/`ARCHIVED`) | `threadId`, `threadStatus?`, `isSeen?` |
| `delete_conversation` | Elimina un hilo de conversación | `threadId` |
| `list_saved_replies` | Lista las plantillas de respuestas guardadas | `page?`, `limit?` |
| `get_saved_reply` | Obtiene una plantilla de respuesta guardada por ID | `id` |
| `create_saved_reply` | Crea una plantilla de respuesta guardada nueva | `text` |
| `update_saved_reply` | Actualiza una respuesta guardada existente | `id`, `text` |
| `delete_saved_reply` | Elimina una respuesta guardada | `id` |
| `subscribe_inbox` | Activa la sincronización de la bandeja de entrada para una cuenta social conectada | `accountId` |
| `unsubscribe_inbox` | Desactiva la sincronización de la bandeja de entrada para una cuenta social conectada | `accountId` |
| `edit_inbox_message` | Edita un comentario/mensaje en la bandeja de entrada social (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `message`, `pageId`, `attachment?` |
| `delete_inbox_message` | Elimina un comentario/mensaje en la bandeja de entrada social (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `pageId` |
| `hide_inbox_message` | Oculta o muestra un comentario en la bandeja de entrada social (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `pageId`, `hidden?` |
| `preview_bulk_reply` | Previsualiza los destinatarios de una respuesta masiva antes de enviarla | `threadIds` (array) |
| `create_bulk_reply` | Envía una respuesta (con personalización opcional `{{name}}`) a muchas conversaciones de mensajes directos | `threadIds` (array), `message`, `attachments?` (array) |
| `get_bulk_reply_batch` | Obtiene el estado y los resultados de un lote de respuestas masivas | `batchId` |

## Aprobaciones (4 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_approvals` | Lista las publicaciones pendientes de aprobación | *(ninguno)* |
| `approve_post` | Aprueba una publicación pendiente de aprobación | `postId`, `comment?` |
| `reject_post` | Rechaza una publicación pendiente de aprobación | `postId`, `comment` (motivo obligatorio) |
| `update_review_comment` | Actualiza el comentario de revisión/rechazo de una publicación en el flujo de aprobación | `postId`, `comment` |

## Equipos (6 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_team_members` | Lista todos los miembros del equipo de tu espacio de trabajo | *(ninguno)* |
| `invite_team_member` | Invita a alguien al espacio de trabajo (`role`: `owner`/`member`, por defecto `member`; `postApproval`: `requires_approval`/`auto_approve`, por defecto `requires_approval`, se ignora para propietarios) | `email`, `role?`, `postApproval?` |
| `remove_team_member` | Elimina a un miembro del espacio de trabajo | `memberId` |
| `update_member_role` | Actualiza el rol de un miembro del equipo (`role`: `owner`/`member`). Un espacio de trabajo puede tener varios propietarios; al último propietario no se le puede quitar el rol. `postApproval` (`requires_approval`/`auto_approve`) se ignora para propietarios, que siempre publican sin revisión | `memberId`, `role`, `postApproval?` |
| `list_team_invitations` | Lista las invitaciones de equipo pendientes | `page?`, `limit?` |
| `cancel_team_invitation` | Cancela una invitación de equipo pendiente | `invitationId` |

## Biolinks (19 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_biolinks` | Lista todas las páginas de biolink | *(ninguno)* |
| `get_biolink` | Obtiene los detalles de una página de biolink | `id` |
| `create_biolink` | Crea una página de biolink nueva | `slug?`, `displayName?`, `bio?` |
| `update_biolink` | Actualiza una página de biolink existente | `id`, `displayName?`, `bio?`, `slug?` |
| `delete_biolink` | Elimina una página de biolink | `id` |
| `publish_biolink` | Alterna el estado de publicación de un biolink | `id` |
| `change_biolink_theme` | Cambia un biolink a un tema predefinido | `id`, `theme` |
| `set_biolink_custom_theme` | Aplica colores de tema personalizados a un biolink | `id`, `backgroundColor?`, `textColor?`, `buttonColor?`, `buttonTextColor?` |
| `list_biolink_buttons` | Lista los botones de una página de biolink | `biolinkId`, `page?`, `limit?` |
| `create_biolink_button` | Añade un botón a una página de biolink | `biolinkId`, `type`, `text`, `url?`, `email?`, `phone?`, `icon?`, `isActive?` |
| `update_biolink_button` | Actualiza un botón de una página de biolink | `biolinkId`, `buttonId`, `text?`, `url?`, `email?`, `phone?`, `icon?`, `isActive?` |
| `delete_biolink_button` | Elimina un botón de una página de biolink | `biolinkId`, `buttonId` |
| `reorder_biolink_buttons` | Reordena los botones de una página de biolink | `biolinkId`, `buttonIds` (array) |
| `list_biolink_posts` | Lista las publicaciones de galería de un biolink | `biolinkId` |
| `create_biolink_post` | Añade una publicación de galería a un biolink | `biolinkId`, `imageUrl?`, `caption?`, `linkUrl?`, `isVisible?` |
| `update_biolink_post` | Actualiza una publicación de galería de un biolink | `biolinkId`, `postId`, `imageUrl?`, `caption?`, `linkUrl?`, `isVisible?` |
| `delete_biolink_post` | Elimina una publicación de galería de un biolink | `biolinkId`, `postId` |
| `reorder_biolink_posts` | Reordena las publicaciones de galería de un biolink | `biolinkId`, `itemIds` (array) |
| `get_biolink_analytics` | Obtiene las analíticas de una página de biolink (vistas, clics) | `biolinkId` |

## Contenido con IA (10 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `generate_caption` | Genera un texto con IA para una plataforma de redes sociales | `platform`, `topic`, `tone?` |
| `generate_content` | Genera o reescribe texto con IA de cualquier tipo (publicación, descripción, hashtag, titular, biografía, hilo, correo, etc.) | `text`, `type?`, `command?` (`generate`/`rewrite`/`insert`), `tone?`, `platform?`, `customInstruction?` |
| `generate_image` | Genera una imagen con IA a partir de un prompt de texto | `prompt`, `style?`, `aspectRatio?`, `negativePrompt?`, `provider?`, `numImages?` |
| `generate_and_schedule` | Genera contenido con IA, crea una publicación y la programa, todo en una sola llamada | `platform`, `socialMedia`, `topic`, `scheduledAt`, `tone?`, `accountId?` |
| `get_ai_history` | Obtiene el historial de prompts de generación con IA | `page?`, `limit?` |
| `get_ai_credits` | Obtiene los saldos y límites de créditos de IA (texto, imagen, vídeo UGC) del plan actual | *(ninguno)* |
| `list_ai_image_providers` | Lista los proveedores de generación de imágenes con IA permitidos por el plan actual | *(ninguno)* |
| `list_generated_images` | Lista las imágenes generadas con IA con paginación | `page?`, `limit?` |
| `get_generated_image` | Obtiene los detalles de una imagen generada con IA por ID | `id` |
| `delete_generated_image` | Elimina una imagen generada con IA por ID | `id` |

## Vídeo con IA / UGC (9 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `generate_video` | Genera un vídeo UGC con IA | `hookText` (máx. 500 caracteres), `avatarId`, `soundId?`, `productDemoUrl?` |
| `list_videos` | Lista los vídeos UGC generados | `page?`, `limit?` |
| `get_video` | Obtiene un vídeo generado por ID (incluye el estado de generación) | `id` |
| `delete_video` | Elimina un vídeo generado | `id` |
| `list_avatars` | Lista los avatares UGC disponibles para la generación de vídeo | `page?`, `limit?` |
| `list_sounds` | Lista los sonidos/músicas disponibles para la generación de vídeo | `page?`, `limit?`, `genre?` |
| `get_sound_genres` | Lista los géneros de sonido de fondo disponibles para vídeos UGC | *(ninguno)* |
| `generate_hook_suggestions` | Genera sugerencias de gancho/guion con IA para vídeos UGC | `topic`, `platform?`, `count?` (por defecto 5) |
| `list_ai_video_providers` | Lista los proveedores de vídeo UGC con IA permitidos por el plan actual | *(ninguno)* |

## Analíticas (26 herramientas)

### Multiplataforma y por publicación

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_analytics_summary` | Resumen de analíticas del espacio de trabajo: número de publicaciones por estado y plataforma | *(ninguno)* |
| `get_platform_analytics` | Analíticas detalladas de una cuenta social conectada concreta | `accountId`, `days?` |
| `get_post_analytics` | Analíticas de una publicación concreta | `postId`, `days?` |

### Analíticas por plataforma

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_facebook_analytics` | Analíticas a nivel de página de Facebook | `accountId`, `days?` |
| `get_facebook_posts_analytics` | Analíticas de página de Facebook por publicación | `accountId`, `days?` |
| `get_facebook_videos_analytics` | Analíticas de página de Facebook por vídeo | `accountId`, `days?` |
| `get_instagram_analytics` | Analíticas a nivel de cuenta de Instagram | `accountId`, `days?` |
| `get_instagram_media_analytics` | Analíticas de medios de Instagram por publicación | `accountId`, `days?` |
| `get_instagram_stories_analytics` | Analíticas de las historias de Instagram | `accountId`, `days?` |
| `get_linkedin_analytics` | Analíticas a nivel de página de LinkedIn | `accountId`, `days?` |
| `get_linkedin_posts_analytics` | Analíticas de página de LinkedIn por publicación | `accountId`, `days?` |
| `get_youtube_analytics` | Analíticas a nivel de canal de YouTube | `accountId`, `days?` |
| `get_youtube_videos_analytics` | Analíticas del canal de YouTube por vídeo | `accountId`, `days?` |
| `get_twitter_analytics` | Analíticas a nivel de cuenta de Twitter/X | `accountId`, `days?` |
| `get_twitter_content_analytics` | Analíticas a nivel de contenido de Twitter/X | `accountId`, `days?` |
| `get_whatsapp_analytics` | Analíticas de la cuenta de WhatsApp Business | `accountId`, `days?` |
| `get_tiktok_analytics` | Analíticas de la cuenta de TikTok | `accountId`, `days?` |
| `get_bluesky_analytics` | Analíticas de la cuenta de Bluesky | `accountId`, `days?` |
| `get_mastodon_analytics` | Analíticas de la cuenta de Mastodon | `accountId`, `days?` |
| `get_reddit_account_analytics` | Analíticas a nivel de cuenta de Reddit | `accountId`, `days?` |
| `get_reddit_submissions_analytics` | Analíticas de los envíos (publicaciones) de Reddit | `accountId`, `days?` |
| `get_pinterest_analytics` | Analíticas de la cuenta de Pinterest | `accountId`, `days?` |
| `get_pinterest_pins_analytics` | Analíticas de Pinterest por pin | `accountId`, `days?` |
| `get_pinterest_top_pins_analytics` | Pines de Pinterest con mejor rendimiento (`sortBy`: `IMPRESSION`/`ENGAGEMENT`/`OUTBOUND_CLICK`/`PIN_CLICK`/`SAVE`) | `accountId`, `days?`, `sortBy?` |
| `get_pinterest_top_video_pins_analytics` | Pines de vídeo de Pinterest con mejor rendimiento | `accountId`, `days?`, `sortBy?` |
| `get_gmb_analytics` | Analíticas de una ubicación de Google Business Profile (GMB) | `accountId`, `locationId?`, `days?` |

> [!NOTE]
>
> `days` es `7` por defecto (ventana de consulta hacia atrás) en todas las herramientas de analíticas.

## Mejor momento para publicar (3 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_best_time_recommendations` | Lista las recomendaciones del mejor momento para publicar de todas las cuentas conectadas del espacio de trabajo | *(ninguno)* |
| `get_best_time_recommendation` | Obtiene la recomendación del mejor momento (mapa de calor + mejores franjas) de una sola cuenta | `socialAccountId` |
| `recompute_best_time_recommendation` | Recalcula la recomendación del mejor momento de una cuenta a partir del historial reciente de interacción | `socialAccountId` |

## Notificaciones (5 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_notifications` | Lista las notificaciones dentro de la app del usuario autenticado (paginación por cursor) | `category?`, `isRead?`, `limit?`, `cursor?` |
| `get_unread_notification_count` | Obtiene el número de notificaciones sin leer, opcionalmente por categoría | `category?` |
| `mark_notification_read` | Marca una notificación como leída | `id` |
| `mark_all_notifications_read` | Marca todas las notificaciones (opcionalmente dentro de una categoría) como leídas | `category?` |
| `archive_notification` | Archiva (descarta) una notificación | `id` |

## Conocimiento / RAG (6 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_knowledge` | Lista los documentos de conocimiento que usa el asistente de IA (RAG) | `search?`, `tags?` (array), `activeOnly?`, `sortBy?`, `sortOrder?` (`ASC`/`DESC`), `limit?`, `offset?` |
| `get_knowledge` | Obtiene un documento de conocimiento con el texto extraído y los metadatos | `id` |
| `create_knowledge` | Crea un documento de conocimiento a partir de un archivo subido o una nota escrita (`sourceType`: `pdf`/`image`/`text_file`/`note`) | `sourceType`, `title`, `fileId?`, `body?`, `tags?`, `isActive?` |
| `update_knowledge` | Actualiza los metadatos o el cuerpo de la nota de un documento de conocimiento | `id`, `title?`, `tags?`, `isActive?`, `body?` |
| `reprocess_knowledge` | Reintenta la extracción de un documento de conocimiento PDF/imagen/texto que falló | `id` |
| `delete_knowledge` | Elimina un documento de conocimiento | `id` |

> [!NOTE]
>
> En `create_knowledge`, `fileId` es obligatorio para los tipos de origen `pdf`/`image`/`text_file`, y
> `body` es obligatorio para `note`.

## Canva (4 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_canva_status` | Comprueba si Canva está conectado para el usuario autenticado | *(ninguno)* |
| `list_canva_designs` | Lista los diseños de Canva del usuario (paginado, con búsqueda) | `query?`, `continuation?` |
| `export_canva_design` | Exporta un diseño de Canva a una imagen (asíncrono; devuelve un id de trabajo de exportación) | `designId` |
| `get_canva_export_status` | Consulta el estado de un trabajo de exportación de un diseño de Canva | `exportId` |

## Plantillas (3 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_templates` | Lista las plantillas de contenido disponibles por categoría (`meme`, `quote_card`, `before_after`, `reaction`, `announcement`, `testimonial`) | `category?`, `page?`, `limit?` |
| `get_template` | Obtiene una plantilla de contenido por ID | `id` |
| `render_template` | Genera una plantilla con los valores de campo proporcionados | `id`, `fields` (objeto) |

## Ayuda y soporte (5 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `create_ticket` | Crea un ticket de soporte (`priority`: `LOW`/`MEDIUM`/`HIGH`, por defecto `MEDIUM`) | `subject`, `message`, `priority?` |
| `list_tickets` | Lista tus tickets de soporte | `page?`, `limit?` |
| `get_ticket` | Obtiene un ticket de soporte con detalles | `id` |
| `send_ticket_message` | Envía un mensaje en un ticket de soporte | `ticketId`, `message` |
| `list_ticket_messages` | Lista todos los mensajes de un ticket de soporte | `ticketId` |

## WhatsApp (6 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_whatsapp_templates` | Lista las plantillas de mensajes de WhatsApp Business | `accountId` |
| `get_whatsapp_template` | Obtiene una plantilla de mensajes de WhatsApp por nombre | `accountId`, `templateName` |
| `create_whatsapp_template` | Crea (envía a aprobación de Meta) una plantilla de mensajes de WhatsApp (`category`: `MARKETING`/`UTILITY`/`AUTHENTICATION`) | `accountId`, `name`, `language`, `category`, `components` (array) |
| `delete_whatsapp_template` | Elimina una plantilla de mensajes de WhatsApp | `accountId`, `templateName` |
| `send_whatsapp_template` | Envía un mensaje de plantilla de WhatsApp a un destinatario (teléfono E.164) | `accountId`, `to`, `templateName`, `languageCode`, `components?` |
| `upload_whatsapp_template_media` | Sube el medio de cabecera (imagen/vídeo/documento) de una plantilla | `accountId`, `fileType`, `fileUrl?`, `fileBase64?` |

## Ayudas de integración (9 herramientas)

Resuelven los destinos específicos de cada plataforma (tableros, canales, subreddits, ubicaciones) antes de publicar.

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_pinterest_boards` | Lista los tableros de Pinterest de una cuenta (selecciona un tablero antes de publicar) | `accountId` |
| `create_pinterest_board` | Crea un tablero de Pinterest nuevo (`privacy`, p. ej. `PUBLIC`/`SECRET`) | `accountId`, `name`, `description?`, `privacy?` |
| `list_reddit_subreddits` | Lista los subreddits de los que es miembro la cuenta de Reddit conectada | `accountId` |
| `list_reddit_flairs` | Lista los flairs de publicación disponibles de un subreddit | `accountId`, `subreddit` |
| `list_gmb_locations` | Lista las ubicaciones de Google Business Profile (GMB) de una cuenta | `accountId` |
| `list_discord_channels` | Lista los canales de Discord disponibles para una cuenta en modo bot | `accountId` |
| `list_slack_channels` | Lista los canales de Slack de un espacio de trabajo conectado | `accountId` |
| `list_telegram_chats` | Lista los chats/grupos de Telegram disponibles para una cuenta | `accountId` |
| `get_tiktok_creator_info` | Obtiene la información de creador/cuenta de TikTok (valida las capacidades de publicación) | `accountId` |

## Webhooks (10 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_webhook_subscriptions` | Lista todas las suscripciones de webhook de tu espacio de trabajo | *(ninguno)* |
| `get_webhook_subscription` | Obtiene una suscripción de webhook por ID | `id` |
| `create_webhook_subscription` | Crea una suscripción de webhook nueva | `url`, `categories` (array), `description?` |
| `update_webhook_subscription` | Actualiza una suscripción de webhook existente | `id`, `url?`, `categories?`, `description?`, `isActive?`, `regenerateSecret?` |
| `delete_webhook_subscription` | Elimina una suscripción de webhook | `id` |
| `test_webhook_subscription` | Envía un ping de prueba a una suscripción de webhook | `id` |
| `list_webhook_deliveries` | Lista los registros de entrega de webhooks (filtrable) | `page?`, `limit?`, `subscriptionId?`, `event?`, `status?`, `category?` |
| `get_webhook_delivery` | Obtiene un registro de entrega de webhook con el payload completo y el estado | `id` |
| `retry_webhook_delivery` | Reintenta una entrega de webhook fallida | `id` |
| `list_webhook_events` | Lista todos los tipos de eventos de webhook disponibles por categoría | *(ninguno)* |

> [!NOTE]
>
> Las `categories` de webhook aceptan: `post`, `inbox`, `account`, `subscription`, `ai`, `team`, `support`.
> El filtro `status` de entrega acepta: `pending`, `success`, `retrying`, `failed`.

## Planes, facturación y uso (6 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_billing` | Obtiene la información de suscripción y facturación | *(ninguno)* |
| `get_usage` | Obtiene el desglose de uso del periodo de facturación actual | *(ninguno)* |
| `get_plans` | Obtiene el catálogo de planes con precios y visibilidad | *(ninguno)* |
| `get_plan_features` | Obtiene la matriz de funciones usando su identificador interno: `solo` (Lite), `team` (Standard), `scale` (Advanced) o `lifetime` (Lifetime). `hobby` es un plan heredado retirado | `planName` |
| `get_subscription` | Obtiene el estado de la suscripción actual del espacio de trabajo, su plan y sus límites | *(ninguno)* |
| `list_invoices` | Lista las facturas de la suscripción actual | *(ninguno)* |

## Referidos (2 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_referral_code` | Obtiene el código de referido del usuario autenticado | *(ninguno)* |
| `get_referral_stats` | Obtiene el código de referido, el número de referidos, los créditos ganados y la URL para compartir | *(ninguno)* |

## Claves de API (3 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_api_keys` | Lista las claves de API activas del espacio de trabajo actual | *(ninguno)* |
| `create_api_key` | Crea una clave de API nueva; la clave completa se devuelve solo una vez | `name`, `expiresAt?` |
| `revoke_api_key` | Revoca una clave de API | `id` |

## Tenants / Espacios de trabajo (4 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `list_tenants` | Lista los espacios de trabajo/tenants a los que pertenece el usuario autenticado | `page?`, `limit?` |
| `create_tenant` | Crea un espacio de trabajo/tenant nuevo propiedad del usuario autenticado | `name`, `description?` |
| `delete_tenant` | Elimina un espacio de trabajo/tenant | `id` |
| `leave_tenant` | Abandona un espacio de trabajo/tenant del que el usuario es miembro | `tenantId?` (por defecto el actual) |

## Perfil y preferencias (5 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_profile` | Obtiene tu perfil de usuario | *(ninguno)* |
| `update_profile` | Actualiza el perfil del usuario autenticado | `name?`, `password?`, `email?` |
| `get_user_preferences` | Obtiene las preferencias del usuario autenticado (ajustes de notificaciones, zona horaria, preferencias de la interfaz) | *(ninguno)* |
| `update_user_preferences` | Actualiza (fusiona) las preferencias del usuario autenticado | `preferences` (objeto) |
| `get_current_tenant` | Obtiene los detalles del espacio de trabajo (tenant) activo | *(ninguno)* |

## Organización (2 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_organization` | Obtiene los detalles del espacio de trabajo/organización | *(ninguno)* |
| `update_organization` | Actualiza el espacio de trabajo / organización actual | `name?`, `description?`, `color?` (hex), `timezone?` (IANA) |

## Introspección de MCP (2 herramientas)

| Herramienta | Descripción | Parámetros |
| - | - | - |
| `get_mcp_usage` | Obtiene el uso de créditos MCP de este espacio de trabajo, sus límites y el desglose por herramienta del periodo actual | *(ninguno)* |
| `list_mcp_tools` | Lista todas las herramientas MCP disponibles y su coste en créditos | *(ninguno)* |

## Ejemplos de uso

```json Crear y programar una publicación theme={null}
{
  "name": "create_post",
  "arguments": {
    "text": "Shipping our biggest update yet 🚀 Read the changelog → so-me.studio/changelog",
    "socialMedia": "LINKEDIN_PAGE",
    "postType": "TEXT",
    "scheduledAt": "2026-06-20T14:00:00.000Z",
    "accountId": "acct_01HZ..."
  }
}
```

```json IA: generar, crear y programar en una sola llamada theme={null}
{
  "name": "generate_and_schedule",
  "arguments": {
    "platform": "INSTAGRAM",
    "socialMedia": "INSTAGRAM",
    "topic": "5 tips for consistent posting as a solo founder",
    "tone": "engaging",
    "scheduledAt": "2026-06-21T16:30:00.000Z"
  }
}
```

```json Generar una imagen con IA (4 variantes) theme={null}
{
  "name": "generate_image",
  "arguments": {
    "prompt": "minimalist product launch banner, soft gradient background",
    "style": "illustration",
    "aspectRatio": "16:9",
    "provider": "flux_fal",
    "numImages": 4
  }
}
```

```json Obtener analíticas detalladas de Instagram theme={null}
{
  "name": "get_instagram_media_analytics",
  "arguments": {
    "accountId": "acct_01HZ...",
    "days": 30
  }
}
```

```json Responder en bloque a muchos mensajes directos con personalización theme={null}
{
  "name": "create_bulk_reply",
  "arguments": {
    "threadIds": ["thr_1", "thr_2", "thr_3"],
    "message": "Hey {{firstName}}, thanks for reaching out! Here's the link you asked for."
  }
}
```

```json Mejor momento para publicar en una cuenta theme={null}
{
  "name": "get_best_time_recommendation",
  "arguments": {
    "socialAccountId": "acct_01HZ..."
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.