Plainrouter Sandbox
Prueba la cuenta publicitaria de Meta, la salud de las señales y las herramientas de rendimiento con datos sintéticos a través de un endpoint MCP público; no se requieren credenciales.
Servidor MCP alojado
npx add-mcp 'https://plainrouter.com/mcp/sandbox'Se instala en Claude Code, Codex, Cursor y más
Documentación
Meta Ads MCP: conecta tu agente con Plainrouter
Conecta Claude Code al servidor MCP de Meta Ads de Plainrouter, lee la salud de las señales y envía propuestas creativas para aprobación en una cuenta de anuncios de Meta.
Conecta Claude Code a Plainrouter MCP, verifica una respuesta sintética y luego configura un token de ejecución de workspace para tu propia cuenta de anuncios de Meta. Una configuración de producción exitosa devuelve el workspace y la cuenta que seleccionaste al emitir el token.
Para tareas compatibles, requisitos del cliente y límites de aprobación, comienza con la introducción a MCP.
Verifica la conexión del cliente sin una cuenta o token de Plainrouter. Configura tu token de workspace y confirma la primera lectura de cuenta.Elige tu endpoint de MCP
| Endpoint | Uso | Credencial |
|---|---|---|
https://plainrouter.com/mcp/sandbox | Prueba un cliente contra cuatro herramientas sintéticas. | Ninguna |
https://plainrouter.com/mcp | Lee una cuenta aprobada y envía propuestas gobernadas. | Token de ejecución de workspace para llamadas a herramientas y datos de cuenta |
Plainrouter MCP usa tokens de ejecución de workspace emitidos por un propietario o miembro actual. Las nuevas claves de workspace autorizan un workspace y un nivel de Lectura o Escritura. Las herramientas con ámbito de cuenta seleccionan una cuenta elegible dentro de ese workspace; las claves antiguas vinculadas a cuentas mantienen su restricción original.
Si estás decidiendo entre un secreto de workspace de Signals, un token de ejecución de workspace o una credencial de gestión OAuth, consulta Autenticación y clientes.
Advertencia
Las credenciales de gestión OAuth no pueden autenticarse en el servidor MCP. Solo pueden leer
GET /api/v1/agent/contextpara el descubrimiento de cuentas. Usa un token de workspace para cada llamada a herramienta MCP.
Antes de comenzar
Para el sandbox, solo necesitas un cliente con soporte MCP HTTP remoto. Para producción, también necesitas:
- Una cuenta de Plainrouter con acceso al workspace previsto.
- Una conexión activa de cuenta de anuncios de Meta.
- Un cliente compatible con MCP que pueda enviar un token bearer fijo a un servidor HTTP remoto.
- Membresía actual del equipo con permiso para el nivel de clave que necesitas. Consulta los permisos de clave.
- Una elección clara de la única cuenta publicitaria que el cliente debe usar.
Para lecturas de la biblioteca creativa, la conexión de Meta necesita ads_read o ads_management. La ejecución creativa gobernada necesita ads_management.
Comienza en modo de prueba
En una terminal con Claude Code instalado, agrega el servidor de prueba:
claude mcp add --transport http plainrouter-test https://plainrouter.com/mcp/sandbox
Abre Claude Code en el mismo directorio y ejecuta /mcp para verificar la conexión. No se requiere cuenta ni credencial de Plainrouter. Otros clientes MCP pueden usar la misma URL con transporte HTTP.
El endpoint expone:
get_account_stateget_signal_healthget_performancevalidate_sandbox_event
Cada respuesta es sintética y lleva "sandbox": true. El modo de prueba no lee datos
de tenant, no persiste nada y no contacta a ningún proveedor publicitario. No expone
ninguna herramienta de propuesta, escritura, aprobación, Launcher o que afecte el gasto.
Pregunta al agente:
Use plainrouter-test to call get_account_state, then get_signal_health.
Summarize the synthetic account and signal health. Do not call other tools.
Una respuesta de cuenta exitosa incluye los siguientes campos. Este es un extracto de la respuesta sintética, no una cuenta publicitaria real:
{
"sandbox": true,
"workspace": { "id": 0, "name": "Sandbox Workspace" },
"ad_account": {
"id": 0,
"external_id": "act_SANDBOX",
"name": "Sandbox Ad Account"
}
}
Ambas llamadas deberían devolverse sin error de herramienta. Esto demuestra que la conexión de prueba funciona; no verifica tu cuenta de producción ni la recopilación de eventos.
Cuando el cliente pueda descubrir o inicializar el servidor, listar herramientas y llamar a una herramienta sandbox, cambia su
URL de servidor a https://plainrouter.com/mcp y configura un token de ejecución de
workspace. Los tres nombres de herramientas de lectura y sus formas de argumentos coinciden con producción.
Nota
El endpoint de producción expone su handshake de protocolo, catálogos de herramientas y recursos, y shells de aplicación estáticos de
ui://sin credencial. Las llamadas a herramientas y las lecturas de datos de cuenta permanecen vinculadas a la cuenta y devuelven HTTP401sin un token de ejecución de workspace válido.
¿Qué protocolo MCP debería usar mi cliente?
Plainrouter admite 2026-07-28 hasta server/discover. Los clientes existentes que usan initialize pueden negociar 2025-11-25 o 2025-06-18. Deja que tu cliente MCP maneje el protocolo; la configuración de Claude Code a continuación no necesita campos de protocolo manuales.
Para un cliente HTTP personalizado, comienza con esta solicitud de descubrimiento sandbox sin credenciales:
curl https://plainrouter.com/mcp/sandbox \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'MCP-Protocol-Version: 2026-07-28' \
--header 'Mcp-Method: server/discover' \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'
Verifica que result.supportedVersions incluya 2026-07-28 y que result._meta["io.modelcontextprotocol/serverInfo"].name sea Plainrouter Sandbox. El descubrimiento confirma la compatibilidad del protocolo; no lee tu cuenta ni verifica una llamada a herramienta.
Para solicitudes 2026-07-28 posteriores:
| Campo o encabezado | Requisito |
|---|---|
params._meta | Incluye tanto la versión del protocolo como las capacidades del cliente en cada solicitud. |
MCP-Protocol-Version | Coincide con la versión del protocolo en _meta. |
Mcp-Method | Coincide con el method de JSON-RPC, como tools/list o tools/call. |
Mcp-Name | Para tools/call, coincide con params.name. Para resources/read, coincide con params.uri. |
Authorization | Incluye el token bearer del workspace en cada llamada a herramienta de producción o lectura de datos de cuenta. |
Las solicitudes no tienen estado: no esperes ni requieras un encabezado de respuesta Mcp-Session-Id. Los clientes heredados sin metadatos de protocolo en _meta permanecen en la ruta de compatibilidad; no mezcles los dos formatos de solicitud. Enviar cualquiera de las claves de metadatos de protocolo selecciona la ruta de validación moderna.
La tarjeta de servidor publicada enumera el protocolo, las herramientas y los recursos actuales. La referencia de actualización de transporte explica los encabezados modernos y la compatibilidad heredada.
Conéctate con un token de workspace
En Plainrouter, cambia al workspace previsto y abre **Configuración → Claves de workspace**. Ingresa un nombre, elige Lectura o Escritura y una caducidad, luego selecciona **Crear clave**. Copia el token completo inmediatamente después de la emisión. Plainrouter no puede mostrarlo nuevamente. En tu cliente MCP, agrega `https://plainrouter.com/mcp` como servidor HTTP remoto y configura el token como su credencial bearer. Llama a `get_account_state` primero. Proporciona `account_id` cuando existan múltiples cuentas elegibles. Confirma el workspace y la cuenta devueltos antes de continuar.Consulta Tokens de workspace para la selección de nivel, selección de cuenta, reemplazo y revocación.
Configura Claude Code para tu cuenta de anuncios de Meta
Agrega esta entrada de servidor al .mcp.json de tu proyecto, conservando cualquier servidor existente. Claude Code expande las variables de entorno en los encabezados MCP.
{
"mcpServers": {
"plainrouter": {
"type": "http",
"url": "https://plainrouter.com/mcp",
"headers": {
"Authorization": "Bearer ${PLAINROUTER_WORKSPACE_TOKEN}"
}
}
}
}
Proporciona PLAINROUTER_WORKSPACE_TOKEN en el entorno de la terminal a través de tu gestor de secretos local antes de iniciar Claude Code. Mantén la referencia de variable en el archivo; no la reemplaces con el token ni pegues el token en un prompt del agente. Abre /mcp y permite la conexión del proyecto cuando se solicite.
Comienza con un token de Lectura para inspección de cuentas y bibliotecas. Usa Escritura solo cuando necesites herramientas que generen propuestas.
Confirma una conexión de producción de solo lectura
Pregunta al agente:
Use plainrouter to call get_account_state. Show the workspace name and
Meta ad account name and external ID, then stop. If account_id is required,
ask me to select the intended Plainrouter account ID. Do not propose changes.
Verifica que el workspace y la cuenta de anuncios de Meta devueltos coincidan con la tarea prevista. Para un workspace con múltiples cuentas activas, pasa el mismo account_id seleccionado a cada llamada con ámbito de cuenta; usa el ID de cuenta interno de Plainrouter, no el ID externo de Meta. Si coinciden, solicita get_signal_health para inspeccionar la entrega de conversiones y los diagnósticos de coincidencia. La falta de configuración de Signals o de historial de medición es un problema de configuración separado; una lectura de cuenta exitosa no establece un seguimiento saludable.
Para los campos devueltos y su significado, consulta la referencia de herramientas MCP.
Permisos
| Permiso | Permite |
|---|---|
ad-account.read | Leer la cuenta aprobada y su contexto de Signals de Plainrouter. |
signals.verify | Escribir un diagnóstico de ingesta de Signals sin identidad y seguro para consentimiento. No completa la incorporación. |
actions.propose | Enviar acciones a través de la política del workspace y el pipeline de aprobación. |
creative.read | Leer la biblioteca creativa de la cuenta de Meta aprobada. |
creative.write | Preparar activos creativos y proponer cambios creativos. No elude actions.propose. |
El agente solo puede seleccionar cuentas autorizadas por la clave del workspace; un ID de cuenta no puede ampliar ese ámbito. Las herramientas creativas vuelven a verificar que los objetos del proveedor pertenezcan a la cuenta aprobada.
Advertencia
El permiso de escritura creativa no es autoridad directa de modificación.
upload-assetyduplicate-ad-with-creativedevuelven una propuesta gobernada. Una decisión de política posterior o la aprobación humana determinan si la ejecución se pone en cola.
Flujos de trabajo recomendados
Una vez que la lectura de cuenta tenga éxito, elige una tarea:
- Diagnostica Signals con una lectura almacenada. Usa verificación de ingesta solo cuando quieras explícitamente una escritura de diagnóstico; no verifica una llegada real.
- Inspecciona la reconciliación almacenada y sus límites de evidencia.
- Crea una variante creativa en pausa: lee la biblioteca de la cuenta, selecciona el anuncio y el activo de origen, envía una propuesta y revisa el enlace de aprobación.
Pide al agente que distinga entre solo sugerencia, pendiente de aprobación, bloqueado, en espera de verificación y Aterrizado. La descripción general de acciones enumera los cambios compatibles.
Ejemplo: solicita una propuesta creativa
Después de seleccionar un anuncio de origen y un activo de la biblioteca creativa de la cuenta aprobada, pregunta:
Use the source ad and asset I selected to propose a paused ad copy.
Summarize the proposed change and show its approval link. Stop for my review.
La herramienta creativa envía una propuesta a Plainrouter; no cambia Meta durante esa llamada MCP. En Solo sugerencia, la aprobación registra el acuerdo sin ejecución. En un modo ejecutable, el trabajo creativo compatible aún requiere verificaciones de política y aprobación humana. Una nueva copia de anuncio permanece PAUSED.
Sigue el flujo de trabajo creativo y la guía de revisión de propuestas para los siguientes pasos. Usa la descripción general de acciones para verificar los cambios compatibles antes de solicitar una operación diferente.
Duración de la autorización y revocación
Los tokens de workspace caducan después de 30, 90 o 365 días. Desde Configuración → Claves de workspace, el miembro emisor puede crear un reemplazo dentro de su rol actual y Eliminar la clave antigua para revocarla. La interfaz actual no tiene botón de Rotación de token.
Plainrouter también limita un token según el rol actual del emisor en el workspace en cada solicitud. Si el rol de esa persona ya no cubre el nivel del token, el token deja de autenticarse en ese nivel. Emite un token nuevo en lugar de intentar reutilizar una credencial cuya autoridad cambió.
Solución de problemas
Un cliente personalizado obtiene HTTP 400 o un error de protocolo
Para el error JSON-RPC -32020, compara MCP-Protocol-Version, Mcp-Method y, cuando sea necesario, Mcp-Name con el cuerpo de la solicitud. Un encabezado obligatorio faltante o un valor no coincidente falla antes de que la herramienta se ejecute. Asegúrate de que tu proxy inverso conserve estos encabezados.
Para -32022, verifica la versión del protocolo contra el descubrimiento y usa una versión compatible. Sigue el formato de solicitud moderna completo; cambiar solo el encabezado de versión no es suficiente. Un 401 de autenticación es un fallo de credenciales separado.
El cliente espera un ID de sesión
Plainrouter procesa las solicitudes de forma independiente y no devuelve Mcp-Session-Id. Actualiza un cliente o transporte personalizado que requiera ese encabezado. Sigue enviando la credencial de portador del espacio de trabajo en cada solicitud de herramienta de producción; una respuesta de descubrimiento exitosa no autoriza llamadas posteriores.
Claude Code no puede cargar la variable de token
Confirma que PLAINROUTER_WORKSPACE_TOKEN esté configurada en el entorno que inicia Claude Code. Reinicia el cliente después de proporcionarla. Mantén el nombre de la variable coherente con .mcp.json; no imprimas el token para depurar la conexión.
El cliente recibe 401 Unauthorized
Confirma que el cliente envía el token completo del espacio de trabajo como credencial de portador y que no ha expirado ni sido revocado. También confirma que la persona emisora aún tiene un rol de espacio de trabajo que cubra el nivel del token.
Si el cliente envía un token de acceso OAuth, el rechazo es esperado. Reemplázalo con un token de ejecución del espacio de trabajo.
Una herramienta creativa informa un permiso faltante
Emite un token con el nivel requerido. Usa Lectura para acceso a la biblioteca y Escritura para herramientas creativas que producen propuestas y lotes de borradores de Launcher donde estén habilitados.
Plainrouter te pide reconectar Meta
La cuenta seleccionada puede carecer de una conexión Meta activa o del acceso requerido a ads_read o ads_management. Reconecta Meta, confirma la misma cuenta publicitaria y reintenta la misma solicitud idempotente.
Aparece la cuenta incorrecta
Verifica account_id y el espacio de trabajo de la clave. Las nuevas claves de espacio de trabajo pueden seleccionar una cuenta activa propiedad de ese espacio de trabajo; una clave antigua vinculada a una cuenta rechaza una cuenta diferente. Sigue la selección de cuenta.
Las herramientas de señales muestran configuración requerida
La cuenta puede estar autorizada correctamente mientras su espacio de trabajo no tiene una Señal o destino activo. Completa la configuración de Signals y llama a las herramientas nuevamente.