PostLake

Una sola API que permite a desarrolladores y agentes de IA publicar, programar y obtener análisis en redes sociales sin integrar cada plataforma por separado.

Documentación

PostLake: el sistema operativo social para agentes de IA

Dale a un agente una forma confiable de operar en redes sociales. PostLake permite a los agentes publicar, programar, monitorear, descubrir, responder, moderar y aprender en X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube y Pinterest.

Una sola conexión le da a un agente un contrato normalizado en lugar de nueve SDKs de plataforma, nueve modelos de autenticación y nueve formatos de resultados incompatibles. Puede actuar con un servidor MCP alojado, una habilidad de agente integrable o la API REST.

Un agente puede planificar una campaña, validar cada destino antes de gastar un crédito, publicar o guardar un borrador para aprobación, confirmar publicaciones asíncronas, leer conversaciones y comentarios, manejar lo que necesita respuesta y usar los resultados para decidir qué hacer a continuación.

Por qué los agentes usan PostLake

Un contrato, todas las redes

Publica una vez o distribuye a todas las redes conectadas. Cada destino tiene el mismo estado, URL, hora y formato de error, por lo que un agente maneja el resultado una sola vez en lugar de escribir lógica de recuperación específica de cada plataforma.

Seguro dejar actuar a un agente

validate_post proporciona una prueba gratuita antes de publicar. Las claves de idempotencia hacen que los reintentos sean seguros. Los propietarios pueden exigir aprobación en una conexión OAuth, lo que obliga a que cada solicitud de publicación de ese agente se convierta en un borrador y evita que apruebe su propio trabajo. confirm_post verifica un proveedor asíncrono después de que acepta una publicación, y cada acción informa el resultado individual del destino en lugar de ocultar fallos parciales.

No es solo un endpoint de publicación

Un agente puede leer un feed unificado de notificaciones, mensajes directos, comentarios y rendimiento de publicaciones. Luego puede responder, moderar, interactuar, investigar un tema o inspeccionar una cuenta antes de actuar. La gestión social permanece en el mismo flujo de trabajo que la publicación.

Control humano donde corresponde

OAuth hace que el propietario de la cuenta apruebe una conexión en el navegador. get_connect_link permite que un agente lo envíe directamente a ese paso de aprobación. Los propietarios pueden revocar un agente, gestionar canales, establecer límites de agente y exigir aprobación desde PostLake. Un agente OAuth no puede crear una clave de cuenta sin restricciones para eludir esos controles, y nunca necesita una contraseña de red social.

Comienza en minutos

MCP alojado: Cursor, Claude, ChatGPT, Gemini, Copilot y más

PostLake es un servidor MCP HTTP Streamable remoto. No se instala, ejecuta ni aloja nada localmente. Agrega este servidor en tu cliente MCP y luego completa la aprobación OAuth de PostLake una vez.

PostLake admite las revisiones de protocolo 2026-07-28, 2025-11-25, 2025-06-18 y 2025-03-26. Los clientes existentes pueden conservar su handshake heredado; los clientes más nuevos usan server/discover y metadatos por solicitud. Tanto /mcp como el endpoint de compatibilidad con claves API /v1/mcp preservan la identidad del agente, las salvaguardas de aprobación y los límites de publicación. Las anotaciones de herramientas son indicaciones conservadoras, no permisos. Los agentes conectados por OAuth o restringidos no pueden crear claves API sin restricciones para eludir los controles del propietario.

{
  "mcpServers": {
    "postlake": {
      "url": "https://api.postlake.dev/mcp"
    }
  }
}

Cursor

Abre Configuración -> Herramientas y MCP -> Nuevo servidor MCP, agrega la configuración anterior, luego selecciona Conectar para PostLake y aprueba el inicio de sesión en el navegador.

Claude Code

claude mcp add --transport http postlake https://api.postlake.dev/mcp

Grok Build

Este repositorio es un complemento de Grok Build. Incluye el servidor MCP alojado y las habilidades del agente. Sin proceso local, sin hooks de shell, sin clave API en el chat.

Agrega este repositorio como mercado y luego instala postlake:

grok plugin marketplace add PostLake/postlake-mcp
grok plugin install postlake --trust

Dentro de Grok Build también puedes explorar /marketplace después de que el catálogo oficial de xAI lo liste.

El servidor MCP es https://api.postlake.dev/mcp (HTTP Streamable). En el primer uso, Grok abre OAuth de PostLake en el navegador. El propietario de la cuenta aprueba el agente una vez y puede revocarlo desde https://app.postlake.dev/app/agents.

Este complemento solo llama a:

  • https://api.postlake.dev (MCP y REST)
  • https://postlake.dev y https://docs.postlake.dev (documentos que citan las habilidades)
  • https://app.postlake.dev (aprobación OAuth y panel de control)

openclaw/ en este repositorio es un paquete OpenClaw separado. Grok Build no lo carga.

Otros clientes MCP

Agrega https://api.postlake.dev/mcp como servidor MCP remoto. El desafío OAuth inicial abre el flujo de inicio de sesión y aprobación del host. Instrucciones completas de configuración: https://docs.postlake.dev/mcp

Habilidades integrables: agentes de codificación

Instala las habilidades de agente de PostLake para Claude Code, Cursor, Codex, Windsurf y otros agentes de codificación compatibles con habilidades:

npx skills add postlake/postlake-mcp --all

Configura POSTLAKE_API_KEY en el entorno de ejecución del agente y luego pídele que maneje el trabajo social en lenguaje natural. Las habilidades cubren cuentas, publicación, programación, medios, conversaciones de bandeja de entrada y análisis.

API REST: entornos de ejecución de agentes personalizados

Usa https://api.postlake.dev/v1 desde LangGraph, CrewAI, AutoGen, llamadas de herramientas de OpenAI o cualquier cliente HTTPS. La API REST y el servidor MCP funcionan con los mismos perfiles, canales, publicaciones y reglas de seguridad.

Lo que un agente puede hacer

El servidor MCP actualmente proporciona 63 herramientas enfocadas. Están diseñadas en torno a resultados sociales en lugar de APIs individuales de plataforma.

ResultadoHerramientas
Entender la cuentawhoami, set_my_name, get_changelog, get_credits, list_profiles, list_social_accounts, get_social_account, list_account_targets, search_facebook_pages, check_allowance
Conectar y organizar canalescreate_profile, rename_profile, delete_profile, connect_account, get_connect_link, disconnect_account
Planificar y validarget_platform_capabilities, get_publish_info, validate_post
Publicar y programarcreate_post, create_scheduled_calendar, get_post, confirm_post, list_posts, edit_post, edit_scheduled_posts_bulk, cancel_post, publish_draft, delete_post
Mediosupload_media, upload_media_batch, manage_media
Bandeja de entrada unificadalist_notifications, mark_notifications_seen, list_conversations, read_conversation, mark_conversation_read, send_message, read_comments, reply_to_comment, hide_comment, delete_comment
Descubrir y entender la redsearch_posts, look_up_profile, read_profile_posts, search_places, list_own_posts, list_tagged_posts
Interactuar y gestionar presenciaengage, update_profile
Comercio, eventos y colaboracioneslist_products, list_events, create_event, find_creators
Transmisiones en vivo de páginas de Facebookcreate_live_broadcast, start_live_broadcast, list_live_broadcasts, get_live_broadcast, end_live_broadcast
Medir y mejorarget_post_analytics, get_analytics

set_my_name solo cambia el nombre para mostrar del agente autenticado. El propietario de la cuenta puede configurar y bloquear ese nombre en Control de agente. Renombrar no cambia la clave API subyacente ni la identidad del cliente OAuth.

Las herramientas de publicidad de Meta y de anuncios de asociación no están disponibles actualmente. No le pidas a un agente que use operaciones de socio de marca, cuenta publicitaria o anuncios de asociación.

list_posts admite paginación por cursor limitada y filtros por estado, agente, perfil, red, fechas, estado de aprobación, campaña, composición de destino única o compartida, y una búsqueda de título literal que no distingue mayúsculas con q. Esto permite que un agente inspeccione el historial de publicación sin cargar todas las publicaciones de una cuenta en una sola respuesta de herramienta. El endpoint REST GET /v1/posts usa el mismo comportamiento de búsqueda y paginación.

edit_scheduled_posts_bulk cambia hasta 200 publicaciones programadas en una sola operación protegida. Primero obtén una vista previa con dryRun: true, inspecciona los valores antes y después de cada publicación, y luego aplica con el snapshot devuelto. Puede cambiar títulos, títulos por red, cuentas de destino exactas, metadatos de campaña y recursos, o desplazar instantes UTC programados. Si una publicación seleccionada cambia antes de aplicar, toda la edición se rechaza. create_scheduled_calendar obtiene una vista previa y crea hasta 200 publicaciones programadas en una sola transacción, usando tiempos explícitos o una cadencia UTC transcurrida. Aplica su instantánea de vista previa con una clave de idempotencia única. El endpoint REST de cancelación masiva también elimina un lote seleccionado exacto de forma atómica. Crear un nuevo calendario y cancelar uno anterior siguen siendo operaciones separadas.

Los llamadores MCP autenticados con clave de cuenta también pueden usar create_api_key para transferir a otro servicio de confianza. Los agentes OAuth no ven ni reciben esta herramienta porque una clave de cuenta eludiría sus límites establecidos por el propietario.

Cancelación, eliminación social y borrado de archivos subidos

Estas son acciones separadas. cancel_post detiene la publicación futura y conserva los archivos subidos. delete_post solicita eliminaciones en redes compatibles e informa cada destino; las publicaciones de Instagram y TikTok deben eliminarse en sus propias aplicaciones. Ninguna acción borra archivos subidos ni reembolsa créditos de publicación gastados.

Usa delete_post con dryRun: true para obtener una vista previa de la compatibilidad del destino, luego obtén la confirmación del propietario y envía el snapshot devuelto al aplicar. Las eliminaciones aceptadas se recuerdan en resultados parciales y no se repiten al reintentar.

manage_media lista los archivos almacenados con action: "list". Usa action: "preview_delete" con un ID de medio para ver las publicaciones afectadas y obtener una instantánea. Solo después de que el propietario confirme el borrado irreversible debe un agente aplicar action: "delete" con esa instantánea. Los borradores, las solicitudes de aprobación y las publicaciones pendientes deben dejar de usar el archivo primero. Los bytes de origen y las vistas previas almacenadas se eliminan; las copias sociales publicadas permanecen en línea. Los fallos de almacenamiento siguen siendo reintentables. Más de 200 referencias guardadas requieren borrado asistido por soporte.

Los recursos subidos conservan el mínimo existente de 90 días en cada cuenta abierta, con protección de referencia programada más larga y sin caducidad automática actual. El borrado explícito por parte del propietario es una excepción, no una política de caducidad rutinaria. Los orígenes y las vistas previas usan URLs públicas. Conserva originales duraderos y nunca subas secretos. Contratos REST completos y direcciones del panel de control: https://docs.postlake.dev/media#deletion.

Un flujo de trabajo de agente que no rompe la confianza

  1. Llama a whoami y list_social_accounts para entender la cuenta, los límites, los canales conectados y la preparación actual.
  2. Si un humano aún necesita conectar un canal, llama a get_connect_link y envíale la URL de aprobación de corta duración. No le pidas que busque en un panel de control.
  3. Llama a get_platform_capabilities y validate_post antes de crear una publicación en múltiples redes. PostLake devuelve la restricción exacta y la corrección de cada destino.
  4. Usa create_post para publicar, programar o guardar un draft para revisión humana. Si el propietario habilitó "Requerir mi aprobación", PostLake guarda un borrador incluso cuando el agente no lo solicita. Incluye una clave de idempotencia para que un reintento no pueda publicar dos veces.
  5. Si una plataforma está procesando de forma asíncrona, llama a confirm_post para obtener el estado confirmado por el proveedor sin esperar una URL pública.
  6. Usa list_notifications, list_conversations y read_comments para ver qué necesita atención. Responde, modera o interactúa solo donde la plataforma lo admita.
  7. Usa get_analytics y get_post_analytics para convertir los resultados en la próxima acción informada, no en una hoja de cálculo que alguien tenga que interpretar después.

Mensajes directos

Facebook, Instagram, X y Bluesky usan una forma de conversación normalizada. Los agentes listan hilos con list_conversations, abren uno con read_conversation, lo finalizan con mark_conversation_read y responden con send_message. Un mensaje puede incluir content para un adjunto, medios compartidos o un payload de proveedor que PostLake no puede aplanar de forma segura a texto.

Facebook e Instagram pueden entregar webhooks de message.received. X y Bluesky no envían mensajes entrantes a PostLake, así que consulta list_conversations en un horario. Enviar un DM en X cuesta 6 créditos; enviar en las otras redes de bandeja de entrada compatibles no gasta créditos. Guía completa de REST y MCP: https://docs.postlake.dev/messages.

Ejemplos de prompts

  • "Revisa cada canal conectado y dime qué necesita aprobación humana."
  • "Redacta una publicación de lanzamiento para LinkedIn, Instagram, Threads y TikTok. Valídala, guárdala como borrador y muéstrame los cambios específicos por plataforma."
  • "Lee los nuevos mensajes directos y comentarios. Dame borradores de respuesta concisos, pero no envíes nada hasta que yo los apruebe."
  • "Encuentra lo que la gente dice sobre este tema, inspecciona las tres cuentas más fuertes y propón una publicación que aporte algo útil."
  • "Confirma la publicación de TikTok de ayer, luego compara su rendimiento con el resto de la semana y recomienda la próxima publicación."

Consciente de la plataforma, no ciego a ella

PostLake conoce las restricciones que hacen que las automatizaciones sociales fallen en la vida real: tipos de medios, cantidades de imágenes, límites de subtítulos, configuraciones de TikTok a nivel de creador, opciones de privacidad específicas de la red, destinos de publicación, publicación asíncrona y si una conexión determinada puede leer, buscar, enviar mensajes o interactuar.

Cuando una plataforma no puede realizar una acción, PostLake lo indica en la respuesta. Una lista vacía nunca significa silenciosamente que una red no fue leída. Una publicación parcial no finge que todos los destinos tuvieron éxito. Los agentes obtienen la información que necesitan para recuperarse de manera segura.

Qué contiene este repositorio

RutaUsado por
skills/Claude Code, Cursor, Codex, Windsurf (npx skills add postlake/postlake-mcp --all)
.mcp.jsonGrok Build, plugins de Claude Code, plugins de Cursor. Solo MCP alojado.
.grok-plugin/Manifiesto del plugin de Grok Build
.claude-plugin/Manifiesto del plugin de Claude Code / Cursor
openclaw/Solo OpenClaw. No forma parte del plugin de Grok o Claude.

Seguridad y propiedad

Para clientes MCP interactivos, PostLake utiliza OAuth y PKCE. El propietario de la cuenta aprueba cada agente conectado una vez y puede revocarlo desde el panel en cualquier momento. Los tokens OAuth están limitados a ese cliente y se actualizan automáticamente. Los propietarios pueden imponer límites de perfil, plataforma, créditos diarios, créditos de paquete y de aprobación. Un agente con aprobación obligatoria no puede publicar sus propios borradores ni generar una clave API de cuenta sin restricciones.

Para servicios desatendidos, usa una clave API de PostLake en el almacén de secretos del servicio, no en un prompt o archivo fuente. Las claves tienen acceso a nivel de cuenta, así que usa una clave con nombre por servicio de confianza y revócala cuando ya no sea necesaria.

Precios

Cada plan incluye el servidor MCP y acceso para agentes. Comienza con 20 créditos gratuitos al mes y sin tarjeta. Los créditos se cobran al publicar o cuando una plataforma cobra por una operación específica. En X, send_message cuesta 6 créditos; los envíos en Facebook, Instagram y Bluesky no gastan créditos. Consulta los precios actuales y las tasas de crédito en https://postlake.dev/pricing.

Documentación

Creado por PostLake. Se aceptan problemas y solicitudes de extracción.