Documentación del servidor MCP de Chattee
Última actualización: 2026-10-15 · Esta página en Markdown · Qué puede hacer tu asistente con Chattee
El servidor MCP de Chattee es un servidor remoto del Model Context Protocol con el que asistentes de IA como Claude Code, Claude.ai, Cursor, Codex y ChatGPT crean, cambian, despliegan y publican apps web completas en Chattee. Esta página explica cómo conectar cada cliente, cómo funcionan la autenticación y los scopes, qué hacen las 35 herramientas y con qué límites te encontrarás.
¿Qué es el servidor MCP de Chattee?
Con el servidor MCP de Chattee, el asistente de IA que ya usas construye apps web completas en Chattee: crea el proyecto con tu descripción, te transmite el plan para tu aprobación, sigue la construcción y publica la app en una URL En vivo. Es un único endpoint remoto: inicias sesión con OAuth o un token de acceso personal.
Habla el Model Context Protocol (revisiones 2025-11-25 y 2026-07-28) por Streamable HTTP, en una sola URL:
https://chattee.ai/mcp/connect
A través de él, tu asistente puede crear un proyecto a partir de una descripción, transmitirte el plan que propone Chattee y llevarle tu respuesta, seguir la construcción, entregarte la vista previa del Borrador, publicar en una URL En vivo, crear proyectos a partir de plantillas o exportarlos como plantillas, leer y escribir archivos, gestionar variables de entorno y recursos gestionados, leer la base de datos y consultar tus créditos. Chattee construye apps web completas: un frontend React, un backend Node, una base de datos Postgres gestionada, autenticación, almacenamiento de archivos y correo, desplegadas y alojadas en chattee.ai.
La regla que lo define todo: los planes y las decisiones de dinero son tuyos. Un plan se te muestra completo y solo tú lo apruebas; una ejecución que alcanza su presupuesto se pausa, y su asignación sube solo hasta un total que tú indiques. Los créditos se compran en el builder; tu asistente nunca los compra.
¿Qué puedo pedirle a mi asistente que haga con Chattee?
Pídelo con tus propias palabras, como se lo explicarías a un desarrollador: tu asistente convierte la petición en llamadas a las herramientas de Chattee y te muestra la respuesta. Una app nueva pasa por un plan que apruebas; un cambio pequeño puede aplicarse directamente. La tabla muestra peticiones reales y las herramientas que se usaron.
| Lo que pides | Qué pasa | Herramientas que llama |
|---|---|---|
| Hazme una web de una sola página para mi panadería, «Sunrise Bakery»: una portada con el nombre y una frase corta, tres tarjetas para nuestro pan, nuestras tartas y nuestro café, nuestro horario y una sección de contacto con nuestra dirección (12 Baker Street, Springfield). Sin inicio de sesión ni zona de administración. Publícala cuando esté terminada. | Chattee planifica una web de una sola página sin backend y hace dos preguntas sobre su aspecto; tras tu sí, construye la página y la publica. | create_project, wait_for_run, answer_question, approve_plan, publish_project, get_release_status |
| Crea un portal para los estudiantes de mi academia de tutorías, Brightpath Tutoring. Los estudiantes inician sesión y ven sus propias calificaciones y su asistencia, y suben allí sus tareas. Cuando un estudiante entregue una tarea, quiero recibir un correo. Publícalo cuando funcione. | Chattee pregunta cómo obtienen su cuenta los estudiantes y qué aspecto debe tener el portal, planifica una app full-stack (inicio de sesión, base de datos, almacenamiento de archivos, correo) a la espera de tu sí, la construye, continuando una vez tras el límite de tiempo de la ejecución, y la publica. | create_project, wait_for_run, answer_question, approve_plan, set_env_vars, get_project, get_run_logs, list_resources, get_release_status, continue_run, list_env_vars, publish_project |
| Hazme una app para nuestro club deportivo, el TSV Grünwald. Los socios se registran e inician sesión, ven los horarios de entrenamiento y los próximos eventos, y pueden apuntarse a un evento; reciben una confirmación por correo. La junta directiva sube documentos, como las actas de las reuniones, que todos los socios pueden leer. Publica la app cuando esté terminada. | Chattee pregunta por el aspecto y el color del club, planifica la app para socios (inicio de sesión, base de datos, almacenamiento de archivos, correo) a la espera de tu sí, la construye, continuando una vez tras el límite de tiempo de la ejecución, y la publica. | create_project, wait_for_run, answer_question, approve_plan, continue_run, publish_project, get_release_status |
| ¿Por qué falló el último despliegue? | Tu asistente lee el registro de despliegue y explica el error. | get_run_logs (source) |
| Cambia el titular de la página de inicio por «Recién hecho cada mañana». | Un cambio pequeño y directo, sin plan; los créditos se gastan en el acto. | send_message (mode), wait_for_run |
| ¿Cuántas personas se han registrado en la app En vivo? | Una consulta de solo lectura a la base de datos de En vivo; las lecturas de En vivo se registran. | query_database (env, sql) |
| Devuelve En vivo a la versión de ayer. | Tu asistente busca la versión en el historial y la vuelve a poner En vivo. | get_release_status, publish_project (restore_release_uid) |
| Guarda este proyecto como plantilla. | Una plantilla privada con su propia base de datos vacía, desde la que empezar proyectos nuevos. | export_project_as_template |
Las tres primeras filas son ejecuciones reales del benchmark MCP de Chattee: la petición tal como la escribió el usuario simulado (traducida, porque esas ejecuciones se hicieron en inglés y en alemán) y las herramientas que llamó el asistente, en el orden en que las llamó por primera vez. Las demás son peticiones sueltas.
Requisitos
Necesitas tres cosas: una cuenta de Chattee, un cliente MCP que hable Streamable HTTP y una forma de iniciar sesión. Los clientes alojados inician sesión con OAuth y no necesitan más; los que envían cabeceras usan un token de acceso personal. La clave API de tu cuenta se rechaza a propósito, porque no tiene scopes ni se puede revocar.
- Una cuenta de Chattee (empieza gratis). El plan gratuito incluye créditos.
- Un cliente MCP: Claude Code, Claude.ai o Claude Desktop, Cursor, Codex CLI, ChatGPT o tu propio agente creado con el Claude Agent SDK.
- Un token de acceso personal (se crea en la página Asistentes de IA del builder) o un cliente que inicie sesión con OAuth. La clave API de tu cuenta no funciona aquí.
¿Cómo conecto el servidor MCP de Chattee a Claude Code?
Claude Code añade el servidor MCP de Chattee con un solo comando e inicia sesión con OAuth, así que no pegas ningún token en ningún sitio. Añádelo para tu usuario y lo tendrás en todos tus proyectos; un equipo que comparte un repositorio puede subir un .mcp.json, donde el token de cada persona sale de una variable de entorno.
Añade el servidor una vez y luego inicia sesión:
claude mcp add --transport http chattee --scope user https://chattee.ai/mcp/connect
--scope user añade Chattee para tu usuario, de modo que esté en todos tus proyectos y no solo en la carpeta actual, como ocurre con el scope por defecto de Claude Code. Inicia sesión desde tu terminal:
claude mcp login chattee
Dentro de Claude Code, /mcp hace lo mismo: elige Chattee ahí. En ambos casos, Claude Code abre la página de consentimiento de Chattee, apruebas y las herramientas aparecen como mcp__chattee__<tool>. Para usar un token de acceso personal en lugar de OAuth, pásalo como cabecera:
claude mcp add --transport http chattee --scope user https://chattee.ai/mcp/connect --header "Authorization: Bearer chattee_pat_…"
Para una configuración a nivel de proyecto que pueda compartir un equipo, pon esto en .mcp.json, en la raíz del repositorio. El archivo no contiene ningún token: Claude Code sustituye ${CHATTEE_PAT} por la variable de entorno CHATTEE_PAT, así que cada miembro del equipo usa su propio token de acceso personal y el archivo puede subirse al repositorio tal cual:
{
"mcpServers": {
"chattee": {
"type": "http",
"url": "https://chattee.ai/mcp/connect",
"headers": {
"Authorization": "Bearer ${CHATTEE_PAT}"
}
}
}
}
Define la variable antes de abrir Claude Code, por ejemplo en el perfil de tu shell (~/.zshrc o ~/.bashrc): export CHATTEE_PAT=chattee_pat_…. No escribas nunca el token en .mcp.json ni lo subas a ningún repositorio.
Luego pídele a Claude Code, por ejemplo: «Crea en Chattee una página de reservas para mi estudio de yoga y enséñame el plan antes de aprobarlo.»
¿Cómo configuro Chattee como conector personalizado en Claude.ai y Claude Desktop?
Claude.ai, Claude Desktop y las apps móviles de Claude se conectan a Chattee como conector personalizado: pegas la URL del servidor una vez, inicias sesión en Chattee y apruebas los permisos. La conexión usa OAuth 2.1, funciona en todos los planes de Claude y luego aparece en cada chat en el que actives el conector.
Los conectores personalizados están disponibles en todos los planes (el plan Free permite un conector personalizado). Los menús se nombran aquí como en la interfaz en inglés:
- Abre Customize → Connectors (propietarios de Team y Enterprise: Organization settings → Connectors y luego Add → Custom → Web).
- Haz clic en +, elige Add custom connector, pega
https://chattee.ai/mcp/connectcomo URL y haz clic en Add. - Conéctalo: Claude abre la página de consentimiento de Chattee. Inicia sesión, revisa los permisos y aprueba.
Después, Chattee aparece como un conector que puedes activar en cada chat, en la web, en Claude Desktop y en las apps móviles. No hace falta pegar ningún token en Claude.
¿Cómo conecto el servidor MCP de Chattee a Cursor?
Cursor instala el servidor MCP de Chattee con un clic, o con unas líneas en mcp.json, y luego inicia sesión con OAuth en la página de consentimiento de Chattee. Como Cursor ignora las cabeceras configuradas en cuanto un servidor ofrece OAuth, iniciar sesión es la única forma de autenticarse aquí; un token en el archivo no sirve de nada.
O añade tú mismo el servidor a ~/.cursor/mcp.json (o al .cursor/mcp.json del proyecto):
{
"mcpServers": {
"chattee": {
"url": "https://chattee.ai/mcp/connect"
}
}
}
Cursor detecta que el servidor ofrece OAuth y te pide iniciar sesión; aprueba en la página de consentimiento de Chattee.
¿Cómo conecto el servidor MCP de Chattee a Codex CLI?
Codex CLI se conecta a Chattee con un token de acceso personal que lee de una variable de entorno, así que el token nunca está en un archivo de configuración. Añade el servidor con un comando o con tres líneas de TOML, y mantén la espera por defecto: Codex corta cualquier llamada a una herramienta a los 60 segundos.
Guarda un token de acceso personal en la variable de entorno CHATTEE_PAT y luego añade el servidor:
codex mcp add chattee --url https://chattee.ai/mcp/connect --bearer-token-env-var CHATTEE_PAT
O escribe lo mismo en ~/.codex/config.toml:
[mcp_servers.chattee]
url = "https://chattee.ai/mcp/connect"
bearer_token_env_var = "CHATTEE_PAT"
Codex corta una llamada a una herramienta a los 60 segundos, así que mantén el valor por defecto de wait_for_run, 45 segundos; la herramienta responde antes y Codex simplemente vuelve a llamarla.
¿Cómo conecto el servidor MCP de Chattee a ChatGPT?
ChatGPT conecta servidores MCP en el Developer mode, en la página que ahora llama Plugins (antes hablaba de conectores), en los planes de pago de OpenAI y solo en la web. Chattee se conecta únicamente por OAuth: pegas la URL del servidor, apruebas en la página de consentimiento de Chattee y luego eliges Chattee en una conversación.
OpenAI ofrece el Developer mode en sus planes de pago (Plus, Pro, Business, Enterprise y Edu) y solo en la web; en un espacio de trabajo Business, Enterprise o Edu, puede que un administrador tenga que permitirlo antes. Los menús se nombran aquí como en la interfaz en inglés:
- Abre Settings → Security and login y activa Developer mode.
- Ve a ChatGPT Plugins, haz clic en +, escribe un nombre (Chattee) y una descripción breve, y pega
https://chattee.ai/mcp/connectcomo URL del servidor de la conexión. Créala. - ChatGPT te lleva a la página de consentimiento de Chattee; inicia sesión y aprueba.
- En una conversación nueva, elige Developer mode en el menú + y selecciona Chattee.
ChatGPT no acepta tokens de acceso personal, y no pasa nada: el flujo de OAuth concede los mismos scopes, y la conexión se revoca en Chattee, en la página Asistentes de IA.
¿Cómo uso el servidor MCP de Chattee desde el Claude Agent SDK?
Un agente creado con el Claude Agent SDK llega a Chattee por el mismo servidor remoto: pásalo en las opciones de query() con un token de acceso personal leído del entorno. El servidor aplica los scopes, pero no tu política de aprobación, así que tu agente decide cuándo se aprueba un plan: haz que lo confirme una persona.
Pasa el servidor en las opciones de query(), con un token de acceso personal como bearer, leído de la variable de entorno CHATTEE_PAT para que el token nunca esté en tu código:
mcpServers: {
chattee: {
type: "http",
url: "https://chattee.ai/mcp/connect",
headers: { Authorization: "Bearer " + process.env.CHATTEE_PAT },
},
}
Permite las herramientas con allowedTools: ["mcp__chattee"] y deja que una persona decida en approve_plan: el servidor no rechaza nada aquí, así que la política de tu propio agente es lo que impide que un plan se apruebe sin que nadie lo vea.
La skill de Chattee y tools.json
La skill de Chattee enseña a un agente a trabajar con Chattee: el ciclo de construcción, la regla de aprobación, qué significa cada resultado y cada herramienta. Es un archivo Markdown, más un zip para Claude.ai. tools.json lista las mismas herramientas como datos. Un plugin, en cuanto esté publicado, instalará la conexión y la skill a la vez.
- Skill para agentes:
skill.mdenseña a un agente el ciclo de construcción, la regla de aprobación y cada herramienta, en cualquier cliente que lea Agent Skills (Claude Code, Cursor, Codex, el Claude Agent SDK). La skill está en inglés, porque la leen agentes. Claude.ai acepta la misma skill comochattee-skill.zip: súbela en Customize → Skills. - Herramientas en JSON:
tools.jsonlista cada herramienta con su grupo, su scope, su acceso y sus entradas, para agentes y directorios que prefieren datos a texto.
Autenticación: OAuth o tokens de acceso personal
Hay dos formas de iniciar sesión y un solo conjunto de scopes. Los clientes alojados usan OAuth 2.1 y te llevan a la página de consentimiento de Chattee; los que envían cabeceras usan un token de acceso personal. Los scopes que concedes deciden qué herramientas funcionan, y revocas una conexión o un token en la página Asistentes de IA.
- OAuth 2.1 es lo que usan los clientes alojados (Claude.ai, ChatGPT, Cursor, el inicio de sesión con
/mcpde Claude Code). El cliente se identifica con un documento de metadatos de client ID o con registro dinámico, demuestra la posesión con PKCE (S256) y te lleva a la página de consentimiento de Chattee. La página muestra el nombre del cliente con su dominio verificado, o marca como no verificado un cliente que se registró a sí mismo y muestra adónde te devuelve la aprobación. Los tokens de acceso duran 1 hora y los de actualización, 30 días; cada actualización rota el token, y reutilizar uno revoca toda la autorización. - Los tokens de acceso personal (
chattee_pat_…) son para clientes que envían cabeceras: Claude Code con--header, Codex, el Agent SDK, scripts. Créalos en la página Asistentes de IA, con los scopes que quieras y una caducidad opcional. El token se muestra una sola vez y se guarda como hash. Revócalo en la misma página.
| Scope | Qué permite | Herramientas |
|---|---|---|
projects:read | listar y leer espacios de trabajo, proyectos, chats, ejecuciones, registros, archivos, plantillas y el estado de publicación | list_workspaces, list_projects, get_project, list_chats, get_chat, wait_for_run, get_run_logs, get_release_status, list_templates, get_template, list_files, read_file; también: create_project, send_message y refine_plan con adjuntos |
projects:write | crear proyectos y chats, enviar mensajes, aprobar y refinar planes, responder preguntas, detener, continuar y repetir ejecuciones | create_project, create_chat, send_message, approve_plan, refine_plan, answer_question, stop_run, continue_run, retry_run; también: wait_for_run cuando tu cliente muestra la pregunta del agente como formulario |
projects:delete | eliminar proyectos y chats (un proyecto pide su nombre exacto como confirmación) | delete_project, delete_chat |
publish | pasar a En vivo, restaurar una versión, aplicar variables de entorno a En vivo | publish_project; también: set_env_vars con env: live |
templates | exportar un proyecto como plantilla; cambiar el nombre, la descripción y las etiquetas de tus plantillas, publicarlas y eliminarlas | export_project_as_template, update_template, delete_template |
files:write | escribir y eliminar archivos en el Borrador de un proyecto | write_file, delete_file |
config | variables de entorno, recursos gestionados, aprovisionamiento, consultas de solo lectura a la base de datos | list_env_vars, set_env_vars, list_resources, provision_resource, query_database |
usage:read | el saldo de créditos | get_credits |
Mínimo privilegio: un token con solo projects:read y usage:read puede verlo todo y no cambiar nada; añade projects:write para construir, y publish solo si tu asistente debe llevar cambios a En vivo.
Una herramienta llamada sin su scope responde con un resultado insufficient_scope que nombra el scope y dónde concederlo; no se cambia nada. Las apps conectadas y los tokens se listan, y se revocan, en la página Asistentes de IA.
Referencia de herramientas MCP
El servidor MCP de Chattee tiene 35 herramientas en ocho grupos, listadas abajo con su scope y lo que pueden hacer con tus datos. Cada resultado es Markdown para el asistente más datos estructurados, y todos sus enlaces (chat del builder, vista previa del Borrador, URL En vivo) son absolutos, para que tu asistente te los pase.
Cuenta y espacios de trabajo
En nombre de quién construyes: tus espacios de trabajo y los créditos de los que tira cada construcción.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_workspaces | Lista los espacios de trabajo a los que perteneces; el primero por orden alfabético es el predeterminado. | projects:read | Solo lectura |
get_credits | Muestra el saldo de créditos del que tirará la próxima construcción y el límite de créditos por ejecución. | usage:read | Solo lectura |
Proyectos
Un proyecto es una app web, con su propia vista previa del Borrador y su propia URL En vivo.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_projects | Lista los proyectos de un espacio de trabajo con su estado de despliegue y sus enlaces; query busca por nombre. | projects:read | Solo lectura |
get_project | Muestra los módulos, el estado del Borrador y de En vivo, los cambios sin publicar, el chat que tiene una ejecución y los enlaces. | projects:read | Solo lectura |
create_project | Crea un proyecto a partir de un prompt (la planificación empieza en el acto) o de una plantilla. | projects:write1 | Cambia datos |
delete_project | Elimina un proyecto para siempre; pide su nombre exacto como confirmación. | projects:delete | Sobrescribe o elimina |
1 Con adjuntos, create_project, send_message y refine_plan también necesitan projects:read.
Chats
Cada chat es una conversación con el agente; un proyecto hace una sola cosa a la vez.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_chats | Lista los chats de un proyecto por actividad reciente. | projects:read | Solo lectura |
create_chat | Abre un chat nuevo o devuelve el vacío; nunca entrega el chat ocupado. | projects:write | Cambia datos |
get_chat | Lee la transcripción como filas con tipo (texto, plan, pregunta, resumen final) más el estado de la ejecución; retrocede páginas con before. | projects:read | Solo lectura |
delete_chat | Elimina un chat; se rechaza mientras tenga una ejecución por resolver. | projects:delete | Sobrescribe o elimina |
Ejecuciones
Iniciar una ejecución, esperar a sus puntos de decisión y transmitir tus decisiones sobre el plan y sobre las preguntas del agente.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
send_message | Inicia una ejecución (mode: plan o edit) o pasa comentarios a la que está en curso; un chat grande que llevaba tiempo inactivo continúa en uno nuevo. | projects:write1 | Cambia datos |
wait_for_run | Espera hasta un punto de decisión (plan, pregunta, pausa, fin, fallo) o hasta el tiempo límite, e informa del progreso sobre la marcha. | projects:read | Cambia datos2 |
approve_plan | Transmite tu sí al plan; despliega e inicia la construcción. | projects:write | Cambia datos |
refine_plan | Transmite tus comentarios sobre el plan; el agente lo revisa. | projects:write1 | Cambia datos |
answer_question | Transmite tu respuesta a una pregunta del agente; nunca una suposición. | projects:write | Cambia datos |
stop_run | Detiene la ejecución, o termina una que está en pausa por su límite de créditos. | projects:write | Sobrescribe o elimina3 |
continue_run | Reanuda una ejecución en pausa; sube su presupuesto solo hasta un total que tú indiques. | projects:write | Cambia datos |
retry_run | Repite una ejecución detenida o fallida en la misma conversación. | projects:write | Cambia datos |
get_run_logs | Lee las llamadas a herramientas de la ejecución, el registro de despliegue o el de un contenedor; avisa cuando ha recortado una respuesta. | projects:read | Solo lectura |
1 Con adjuntos, create_project, send_message y refine_plan también necesitan projects:read.
2 wait_for_run solo envía la respuesta que tú das cuando tu cliente muestra la pregunta del agente como formulario.
3 stop_run termina la ejecución en curso, o una en pausa por su límite de créditos; el trabajo ya hecho se queda en el Borrador.
Publicación
Pasar el Borrador a En vivo, seguir la publicación o volver a una versión anterior.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
get_release_status | El Borrador frente a En vivo, la versión que está ahora En vivo, el historial y los bloqueos; espera a una publicación con wait_seconds. | projects:read | Solo lectura |
publish_project | Pasa el Borrador a En vivo, o restaura una versión anterior. | publish | Sobrescribe o elimina |
Plantillas
Empezar un proyecto a partir de una plantilla, o convertir en plantilla un proyecto desplegado.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_templates | Lista las plantillas desde las que puedes empezar: las tuyas, las publicadas o ambas. | projects:read | Solo lectura |
get_template | Muestra la descripción, las etiquetas, los módulos y la vista previa de una plantilla. | projects:read | Solo lectura |
export_project_as_template | Congela un proyecto desplegado como plantilla privada, con su propia base de datos vacía. | templates | Cambia datos |
update_template | Cambia el nombre, la descripción o las etiquetas de una plantilla, o la publica o la retira. | templates | Cambia datos |
delete_template | Elimina una plantilla para siempre; retírala antes. | templates | Sobrescribe o elimina |
Archivos
Leer el código o hacer un cambio pequeño y seguro; para algo mayor, enviar una edición para que el agente la construya y la verifique.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_files | Muestra un árbol de archivos, o busca en nombres y contenidos. | projects:read | Solo lectura |
read_file | Lee una ventana de un archivo de texto, como mucho 200.000 caracteres por llamada. | projects:read | Solo lectura |
write_file | Escribe un archivo completo del Borrador y lo crea si no existe; cuenta como cambio sin publicar. | files:write | Sobrescribe o elimina |
delete_file | Elimina un archivo del Borrador. | files:write | Sobrescribe o elimina |
Configuración y datos
Los ajustes de la app, sus recursos gestionados y las consultas de solo lectura a la base de datos.
| Herramienta | Qué hace | Scope | Acceso |
|---|---|---|---|
list_env_vars | Lista las variables por módulo; el valor de un secreto vuelve como null. | config | Solo lectura |
set_env_vars | Combina variables; solo elimina una con remove: true; apply recrea los contenedores. | config4 | Sobrescribe o elimina |
list_resources | Lista la base de datos gestionada, el almacenamiento de archivos, la autenticación y el correo, con su estado. | config | Solo lectura |
provision_resource | Añade un recurso gestionado fuera de un plan. | config | Cambia datos |
query_database | Muestra el esquema o ejecuta una consulta de solo lectura contra el Borrador o En vivo (env es obligatorio; las lecturas de En vivo se registran). | config | Solo lectura |
4 Con env: live, set_env_vars también necesita publish.
El ciclo de construcción y la aprobación humana
Toda construcción sigue el mismo ciclo: una ejecución de planificación, tu aprobación, la construcción y una publicación cuando la pidas. Tu asistente lo dirige con unas pocas herramientas y espera entre pasos, porque una construcción tarda 5–90 minutos. Dos decisiones nunca salen de tus manos: aprobar un plan y gastar más que el presupuesto de una ejecución.
create_project(osend_messageen un chat existente conmode: plan) inicia una ejecución de planificación.wait_for_runresponde cuando el plan está listo. Tu asistente te muestra el plan completo y el enlace al builder.- Dices que sí (
approve_plan) o das tus comentarios (refine_plan). La aprobación despliega los contenedores e inicia la implementación. wait_for_run, una y otra vez, hasta que la ejecución termina. Una ejecución tarda 5–90 minutos; cada espera vuelve como mucho a los 240 segundos con el progreso hasta ese momento, y un resultadotimed_out_waitingsolo significa «vuelve a llamarla».- Si el agente pregunta algo (
awaiting_input), tu asistente te transmite la pregunta y tu respuesta vuelve conanswer_question. Los clientes que admiten la elicitación de MCP reciben la pregunta como formulario. - Cuando la ejecución termina, vuelven el resumen final y el enlace a la vista previa del Borrador.
publish_projectcuando lo pidas; la URL En vivo vuelve del mismo modo.
Las pausas por presupuesto, una tarjeta caducada o la falta de créditos terminan una espera con un resultado escalate y enlaces al builder. El presupuesto de una ejecución en pausa sube solo hasta un total que tú indiques: tu asistente transmite tu cifra con continue_run, y solo la guarda como tu valor por defecto si lo dices aparte. Una ejecución en pausa por su límite termina sola tras 30 minutos si nadie decide, y stop_run la termina al instante; su trabajo se conserva, y tu siguiente mensaje lo continúa como una ejecución nueva con un límite de créditos nuevo. Los créditos se compran en el builder; nada en este endpoint los compra.
Límites y rate limits
Cada límite de abajo lo aplica el servidor y lo nombra en su respuesta cuando lo alcanzas, para que tu asistente pueda esperar o acotar la llamada en vez de adivinar. Las esperas tienen un tope para que ningún cliente pierda una llamada, las llamadas se limitan por usuario y las lecturas largas llegan en ventanas que vas recorriendo.
wait_for_runespera 45 segundos por defecto;get_release_statusespera 0 segundos por defecto, así que responde al instante salvo que paseswait_seconds. Ambas esperan como mucho 240 segundos por llamada. Más no sirve de nada: Claude Code abandona una llamada HTTP a una herramienta tras cinco minutos sin progreso.- 120 llamadas por minuto y usuario, sumando todos tus tokens y apps conectadas; por encima, un resultado
rate_limitedconretry_after_seconds. Una espera en curso no detiene la ejecución. - 20 esperas simultáneas por usuario, una ejecución por proyecto a la vez y el límite de proyectos de tu plan.
- Adjuntos: hasta 10 por mensaje, texto de hasta 256 KB y archivos binarios de hasta 5 MB cada uno, y como máximo 20 MB en total por mensaje.
read_filedevuelve como mucho 200.000 caracteres por llamada. Una ventana más larga vuelve contruncated: trueynext_offset_line, y el resultado explica cómo seguir leyendo conoffset_lineylimit_lines.get_chatacorta los mensajes largos (truncated: true) y devuelve los mensajes anteriores mediantebefore: pasa elnext_beforedel resultado para leer la página anterior a esta.get_run_logslimita cada respuesta y avisa cuando ha recortado una; acótala contailosource.- Las claves de idempotencia de las herramientas que modifican datos se recuerdan durante 24 horas; un reinicio del servicio las olvida.
Seguridad
El endpoint es la única superficie pública del servidor MCP de Chattee; la verificación de tokens y las llamadas a Chattee ocurren detrás, en el mismo host. Los tokens se guardan como hash, los scopes se comprueban en cada llamada, el contenido pasa los controles de seguridad del builder y cada llamada queda en un registro de auditoría.
- El endpoint es la única superficie pública. La verificación de tokens y cada llamada al plano de control de Chattee se ejecutan por loopback dentro del mismo host.
- Los tokens se guardan como hash. OAuth usa PKCE S256, URI de redirección exactas (salvo los puertos de loopback, según RFC 8252), códigos de un solo uso y tokens de actualización rotativos; la página de consentimiento muestra el dominio verificado de un cliente y marca como no verificado un cliente que se registró a sí mismo, así que un cliente que se hace pasar por otro queda a la vista.
- Los scopes se aplican en cada llamada; el endpoint rechaza la clave API de la cuenta.
- El contenido pasa los mismos controles de seguridad (guardrails) que en el builder. Un bloqueo de los guardrails revoca todos los tokens y todas las apps conectadas de la cuenta.
- Cada llamada a una herramienta se escribe en un registro de auditoría que se conserva 30 días. En el chat del builder, un mensaje que envió tu asistente lleva la marca del cliente que lo envió, por ejemplo «vía Claude Code».
- Revoca un token o una app conectada cuando quieras en la página Asistentes de IA.
Solución de problemas
La mayoría de los errores indican su propia solución: el resultado trae un código, una frase sobre lo ocurrido y, a menudo, un enlace al builder. Abajo están los códigos con los que más probablemente te encontrarás, cada uno con lo que puedes hacer. Si una llamada falla sin código, avísanos indicando la hora de la llamada.
- 401
invalid_token— el token se ha revocado, ha caducado o es la clave API de la cuenta. Crea un token de acceso personal, o vuelve a conectar para que el cliente inicie sesión de nuevo. token_inactive— la credencial dejó de funcionar durante la llamada: se revocó o caducó. Una app conectada vuelve a iniciar sesión en su siguiente petición (vuelve a conectarla si no lo hace); un token de acceso personal no se puede recuperar, así que crea uno nuevo en la página Asistentes de IA y úsalo en su lugar.email_unconfirmed— la dirección de correo de tu cuenta de Chattee aún no está confirmada. Confírmala con el enlace del correo que te envió Chattee (el builder puede enviártelo de nuevo) y vuelve a intentarlo.account_blocked— tu cuenta de Chattee está suspendida, y nada en este endpoint funciona hasta que se reactive. Escríbenos.internal_error— algo falló dentro de Chattee. Repite la llamada una vez; si vuelve a fallar, avísanos indicando la hora de la llamada.insufficient_scope— el resultado nombra el scope que falta. Concédelo en el token, o vuelve a conectar la app y acepta el permiso.rate_limited— espera losretry_after_seconds; no se ha perdido nada y la ejecución sigue.conflict_busy— otro chat del proyecto tiene ocupado el espacio de trabajo; el resultado lo nombra. Espera allí, o detén esa ejecución.attachment_invalid— elbase64de un adjunto no es base64 válido. Vuelve a codificar el archivo, o envía un archivo de texto comotext.too_many_tasks— tu cuenta tiene demasiadas tareas de larga duración abiertas en el servidor (en clientes que usan las tareas de MCP). Deja que terminen algunas o cancélalas y vuelve a intentarlo; las ejecuciones en sí no se ven afectadas.- Cursor pide iniciar sesión una y otra vez — Cursor ignora las cabeceras
Authorizationcuando un servidor ofrece OAuth. Quita la cabecera e inicia sesión. - Codex informa de un tiempo de espera agotado — Codex corta las llamadas a herramientas a los 60 segundos. Mantén la espera por defecto; no pases un
timeout_secondssuperior a 50. - 503
introspection_unavailable— Chattee no pudo verificar tokens durante un momento. Vuelve a intentarlo en unos segundos; el cliente conserva su token.
Historial de cambios
- 2026-10-15 — La documentación y la página de presentación están ahora también en español, francés y portugués, además de inglés y alemán:
/es/docs/mcp,/fr/docs/mcpy/pt/docs/mcp, cada una con su versión en Markdown. La skill para agentes ytools.jsonsiguen en inglés. - 2026-10-02 — Una ejecución en pausa por su límite de créditos termina sola tras 30 minutos si nadie decide, y
stop_runla termina al instante (resultadoended);get_creditsinforma del límite con el que empieza una ejecución y de lo máximo que se puede subir;create_projectacepta el límite de la primera ejecución yapprove_planla asignación propia de la construcción, cada uno solo como una cifra que tú indiques. - 2026-10-01 — Las herramientas aparecen en una tabla por grupo, con el scope de cada una y lo que puede hacer con tus datos; prompts de ejemplo de ejecuciones reales; la skill de Chattee (
skill.md, y un zip para Claude.ai) ytools.json; un asistente sube el presupuesto de una ejecución en pausa solo hasta un total que tú indiques. Claude Code: el comando de configuración añade Chattee para tu usuario (--scope user), yclaude mcp login chatteeinicia sesión desde la terminal. Los pasos de Claude.ai y ChatGPT siguen los menús actuales de ambas apps. - 2026-09-26 — Primera versión: 35 herramientas, OAuth 2.1 con PKCE y tokens de acceso personal, las dos revisiones del protocolo, elicitación y tareas de MCP para los clientes que las declaran, y un resumen final al terminar cada construcción.
Preguntas frecuentes
¿Qué puede hacer el servidor MCP de Chattee?
Permite que tu asistente de IA construya una app web completa en Chattee a partir de una descripción: crear el proyecto, transmitirte el plan para que lo apruebes, seguir la construcción, entregarte la vista previa del Borrador y publicar en una URL En vivo. También puede leer y cambiar archivos, gestionar variables de entorno y recursos gestionados, consultar la base de datos en modo solo lectura y partir de plantillas.
¿Cómo empiezo a usar el servidor MCP de Chattee?
Crea una cuenta gratuita de Chattee, añade https://chattee.ai/mcp/connect a tu asistente (un comando en Claude Code, un conector personalizado en Claude.ai, una entrada JSON en Cursor), inicia sesión con OAuth o con un token de acceso personal y pide a tu asistente que construya algo. La configuración de cada cliente está en esta página.
¿Qué asistentes de IA funcionan con el servidor MCP de Chattee?
Claude Code, Claude.ai, Claude Desktop y las apps móviles de Claude, Cursor, Codex CLI, ChatGPT en Developer mode y los agentes creados con el Claude Agent SDK. Cualquier otro cliente MCP que hable Streamable HTTP también funciona; mcp-remote hace de puente para un cliente que solo habla stdio.
¿Es gratis el servidor MCP de Chattee?
Conectar es gratis. Construir consume los créditos de tu plan de Chattee, exactamente igual que construir en el navegador, y el plan gratuito incluye créditos para empezar. Una ejecución que alcanza su presupuesto se pausa; su asignación sube solo hasta un total que tú indiques, y los créditos se compran en el builder.
¿Chattee despliega y aloja la app?
Sí. Cada proyecto tiene una vista previa del Borrador, y al publicar pasa a una URL En vivo en chattee.ai o en tu propio dominio, con una base de datos Postgres gestionada, inicio de sesión, almacenamiento de archivos y correo cuando la app los necesita. Tu asistente nunca tiene que ocuparse de servidores, contenedores ni scripts de despliegue.
¿Puede mi asistente aprobar un plan por su cuenta?
No. Cada plan se te muestra a ti y lo apruebas tú, en tu chat o en el builder. Las descripciones de las herramientas prohíben que el asistente apruebe por su cuenta, y puedes limitar un token a scopes de solo lectura si quieres ir sobre seguro.
¿Puede mi asistente subir el presupuesto de una ejecución?
Sí, pero solo hasta un total que tú indiques. Una ejecución que alcanza su presupuesto se pausa, y tu asistente te da el enlace al builder. Si tú mismo le dices un total nuevo, continúa la ejecución exactamente con esa asignación, y solo la guarda como tu valor por defecto tras un sí aparte. Si nadie decide, la ejecución en pausa termina sola tras 30 minutos y conserva su trabajo; tu siguiente mensaje lo continúa como una ejecución nueva. Tu asistente nunca compra créditos: los planes y los créditos se compran en el builder.
¿En qué se diferencia de dejar que un agente de programación cree la app por sí solo?
Un agente de programación por sí solo escribe código en tu máquina, y el hosting, la base de datos, el inicio de sesión, el correo y los despliegues tienes que montarlos tú. A través de Chattee, tu asistente pasa la descripción a un builder que planifica, construye, despliega y aloja la app completa, mientras tú apruebas el plan y decides cuándo pasa a En vivo.
¿Qué versiones del protocolo MCP se admiten?
Las dos revisiones actuales: 2025-11-25, la que usa sesiones y que hablan hoy todos los clientes disponibles, y 2026-07-28, la que no guarda estado, con tareas y resultados input-required. El transporte es Streamable HTTP. No hay paquete stdio; mcp-remote hace de puente para un cliente que lo necesite.
¿Puedo usar la clave API de mi cuenta en lugar de un token?
No. El endpoint rechaza a propósito la clave de la cuenta: un token de acceso personal tiene scopes y se puede revocar, y la clave de la cuenta no tiene ninguna de las dos cosas. Crea un token en la página Asistentes de IA, o deja que el cliente inicie sesión con OAuth.
¿Cuánto tarda una construcción?
Una app completa tarda 5–90 minutos; un cambio pequeño, unos pocos. wait_for_run responde en cada punto de decisión y, si no, como mucho a los 240 segundos, así que tu asistente sigue consultando hasta que la ejecución te necesita.
¿Qué pasa si mi asistente se desconecta durante una construcción?
En el lado de Chattee, nada: las ejecuciones viven en el backend, no en la conexión. Vuelve a conectar y llama de nuevo a wait_for_run, o abre el chat en el builder, donde continúa la misma ejecución.
¿Esta documentación está disponible en otros idiomas?
Sí: en inglés en /docs/mcp, en alemán en /de/docs/mcp, en francés en /fr/docs/mcp y en portugués en /pt/docs/mcp, y la página de presentación con los mismos prefijos (/mcp, /de/mcp, etc.). La skill para agentes y tools.json solo están en inglés, porque los leen agentes.