Generar imágenes en Cursor: Guía del servidor MCP
Conecta Cursor a un servidor MCP remoto y genera imágenes directo en tu repo: config mcp.json, secretos env-var, detalles del cliente y costos desde $0.03.

Un servidor MCP para Cursor es una caja de herramientas externa que el agente del editor puede llamar desde el chat: agregas un bloque JSON a mcp.json y Cursor obtiene capacidades que sus modelos base no tienen, incluida la generación de imágenes. El agente de Cursor edita archivos y ejecuta comandos de terminal todo el día, pero ninguno de los modelos detrás de él puede producir un archivo de imagen. Conecta un servidor de generación y «hazme un banner hero de 16:9 para esta landing page» se convierte en una instrucción de chat normal que termina con un archivo real en tu repositorio.
Aquí está toda la configuración, si eso es lo único que venías a buscar. Crea una clave API en tu perfil de BananaBanana, luego agrega esto a ~/.cursor/mcp.json (global) o .cursor/mcp.json en el proyecto:
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer ${env:BB_API_KEY}"
}
}
}
}
Exporta BB_API_KEY=bb_live_YOUR_KEY en tu entorno y listo. Sin procesos de servidor local, sin cuenta de Google Cloud, sin suscripción. Las imágenes se facturan desde $0.03 de un saldo prepago, el video desde $0.10. Ambas imágenes de demostración en esta guía se generaron a través de esta configuración exacta con una clave activa mientras escribía el texto; los registros de ejecución (traces) y la factura de medios de $0.55 se muestran más abajo.
¿Por qué conectar un generador de imágenes a Cursor?
Porque el trabajo de frontend sigue requiriendo imágenes justo en el momento en que tienes las manos en el código. Un banner hero para la landing page. Marcadores de posición (placeholders) para tarjetas de producto para que la cuadrícula no se publique con cajas grises. Una imagen OG para la entrada de blog que acabas de configurar. Ninguna de estas tareas es difícil, pero cada una solía implicar el mismo desvío: abrir un generador en una pestaña del navegador, escribir un prompt, descargar, renombrar, arrastrar a public/, regresar y escribir la etiqueta <img>. Diez minutos de trabajo de integración por recurso y ya perdiste el hilo en el componente.
Con un servidor MCP, el agente se encarga de todo ese ciclo. Escribe el prompt (normalmente mejor que mi perezoso primer borrador), llama a generate_image, descarga el resultado en la carpeta correcta y escribe el marcado con texto alt. Tú revisas un diff en lugar de hacer tareas rutinarias.
La otra mitad del argumento es lo que no tienes que instalar. Existen servidores MCP locales para la generación de imágenes y funcionan, pero implican ejecutar tu propio proceso de Node o Python y configurar tu propia clave API de Google, con cuotas y facturación en tu cuenta de Google. Un servidor remoto se salta todo eso: el endpoint ya se ejecuta de nuestro lado, en el mismo pipeline que el generador de BananaBanana, y tu única credencial es una clave bb_live_.

¿Cómo agregar un servidor MCP a Cursor?
Tres pasos, unos dos minutos. Los detalles de configuración a continuación están verificados con la documentación oficial de MCP de Cursor al 11 de julio de 2026.
Primero, regístrate y abre Perfil → Claves API de MCP. Crea una clave. Se muestra solo una vez, comienza con bb_live_ y se guarda de forma cifrada (hash) de nuestro lado, así que cópiala de inmediato. Las cuentas nuevas comienzan con un saldo de $0.20, suficiente para seis imágenes de prueba en el modelo más económico.
Segundo, elige dónde vivirá la configuración. Cursor lee dos ubicaciones:
~/.cursor/mcp.json: global, el servidor te sigue en cada proyecto;.cursor/mcp.jsonen la raíz del repositorio: de alcance de proyecto y seguro de confirmar (commit) si mantienes la clave fuera de él.
Ese «si» es lo que resuelve la interpolación de ${env:BB_API_KEY} en el fragmento anterior: Cursor sustituye las variables de entorno en los valores de mcp.json al momento de la carga, por lo que el archivo en sí no contiene ningún secreto. La misma sintaxis también es compatible con ${workspaceFolder} y algunas otras variables, según la documentación.
Tercero, reinicia o recarga Cursor y abre Configuración de Cursor → MCP. El servidor debería aparecer con un indicador verde y una lista de siete herramientas, desde list_models hasta list_generations. Nuestra página del servidor MCP conserva el mismo fragmento más una tabla de compatibilidad para todos los demás clientes que hemos verificado:

Si el servidor no aparece, ve directamente a la sección de detalles/problemas comunes. El motivo casi siempre es la variable de entorno, no la configuración.
Caso de uso: un banner hero de landing y fotos de productos sin salir del chat
El escenario sobre el cual se construyó este artículo: eres un desarrollador frontend que está armando una landing page para una marca de equipamiento al aire libre, y el diseño requiere un banner hero de ancho completo de un campamento al amanecer. En el chat de Cursor lo solicitas, el agente compone un prompt de estilo fotográfico y llama a la herramienta. Este es el registro (trace) real de mi sesión, con el ID de trabajo real y todo:
→ generate_image {"prompt": "A photorealistic wide hero shot for an outdoor
gear brand landing page: a lone orange tent glowing softly on the shore of
a still alpine lake at dawn, mist over the water, sharp granite peaks
catching the first pink light, generous empty sky for headline text, low
angle, 35mm lens, no text", "model": "nano-banana-pro", "aspect_ratio": "16:9"}
← {"job_id": "cmrgox3xj000s…", "status": "processing",
"cost_charged_usd": 0.11, "balance_remaining_usd": 1554.40}
→ get_result {"job_id": "cmrgox3xj000s…"}
← {"status": "completed", "files": [{"url": "https://bananabanana.pro/api/files/…"}]}
Dieciocho segundos desde la llamada hasta el archivo terminado. Aquí está esa salida exacta, primera toma, sin repeticiones (rerolls):

Luego, el agente extrae el archivo de la URL firmada en public/ y escribe el componente. Los enlaces siguen siendo válidos por 24 horas; una nueva llamada a get_result los vuelve a emitir después de ese tiempo.
Los marcadores de posición de productos son la misma jugada pero con una descripción más cuadrada. Para la cuadrícula de tarjetas de productos, pedí una toma de una botella de agua de la forma en que le darías instrucciones a un fotógrafo: sujeto, superficie, luz, lente. Una llamada, $0.11, veinte segundos:

Ambas demostraciones se ejecutaron en Nano Banana Pro porque se publican en esta página. Para rellenos de cuadrícula descartables, sinceramente usaría nano-banana-2-lite a $0.03 y mejoraría solo las imágenes que sobrevivan a la revisión de diseño; nuestra guía de Lite cubre en qué casos el modelo económico es lo suficientemente bueno. Y si necesitas el mismo personaje en una serie de imágenes, la técnica de prompting importa más que el cliente, así que consulta la guía de campo sobre consistencia de personajes.
El video también funciona desde el mismo chat. generate_video nunca realiza cobros en la primera llamada: devuelve un presupuesto y el agente debe repetir la llamada con confirm_cost aceptando la cantidad exacta. Un clip silencioso de 720p con Veo 3.1 Lite comienza en $0.10; Omni Flash con sonido cuesta $0.10 por segundo, o sea $0.30 por una toma de tres segundos.
Detalles de Cursor que vale la pena conocer antes de publicar
Cada cliente tiene sus propios puntos difíciles. Estos son los que realmente le advertiría a un compañero de equipo, recopilados mientras probaba la configuración anterior.

1. ${env:…} solo funciona si Cursor puede ver la variable. Un comando export en tu .zshrc es visible cuando inicias Cursor desde una terminal, pero una aplicación con interfaz gráfica (GUI) iniciada desde el Dock o un lanzador de escritorio no lee tu perfil de shell, por lo que la misma configuración fallará silenciosamente allí. En mi experiencia, esta es la causa número uno de que el «servidor no se conecte» en macOS. Soluciones: establece la variable a nivel de sistema operativo (launchctl setenv en macOS, o variables de entorno del sistema en Windows), o inicia Cursor desde una terminal una vez para verificar que la configuración esté bien en lo demás.
2. La configuración del proyecto es una función para equipos: una clave por persona. Confirma (commit) .cursor/mcp.json con el marcador de posición ${env:BB_API_KEY} y cada compañero de equipo obtendrá el servidor en el momento en que clone el repositorio, cada uno con su propia clave. Esa división importa más de lo que parece: las claves son gratuitas y cada una tiene su propio registro de uso (herramienta, modelo, costo, vista previa de prompt) y un límite diario opcional en USD en Perfil → Claves API de MCP. Cuando alguien se va, revocas esa clave específica y nadie más lo nota. Los planes de negocios de Cursor también pueden distribuir servidores MCP desde el panel del equipo, pero el archivo confirmado funciona en cualquier plan.
3. Cursor pregunta antes de cada llamada de herramienta, y probablemente deberías dejar eso activado. De forma predeterminada, cada llamada MCP espera tu aprobación, con los argumentos visibles bajo una pequeña flecha al lado del nombre de la herramienta. En los modos de ejecución automática (auto-run), las herramientas permitidas en la lista blanca se ejecutan de inmediato. Sé que hacer clic en aprobar veinte veces durante un lote se vuelve tedioso, pero para herramientas que cuestan dinero real por llamada, yo mantendría activada la aprobación y dejaría que solo las gratuitas (list_models, get_result) se ejecuten automáticamente. El video cuenta con un segundo cinturón de seguridad de nuestro lado de todos modos: no se cobra nada por encima de un presupuesto sin la llamada de confirmación confirm_cost.
4. Puedes ver el renderizado dentro del chat. Según la documentación de Cursor, las imágenes devueltas por las herramientas MCP se adjuntan a la conversación y los modelos con capacidad de visión las analizan. Nuestro get_result incluye una pequeña vista previa en formato webp junto con la URL, por lo que el agente (y tú) pueden juzgar el renderizado sin abrir un navegador. Esto también significa que el agente puede autocorregirse: pídele que revise la imagen y la vuelva a generar si, por ejemplo, la tienda de campaña terminó en medio del área reservada para el título principal.
5. Existen enlaces de instalación con un solo clic, pero no pongas claves en ellos. Cursor admite enlaces profundos cursor:// que instalan un servidor MCP a partir de una configuración codificada en base64, según la documentación de enlaces de instalación. Es práctico para servidores públicos, pero incorrecto para servidores autenticados, porque la configuración codificada llevaría tu clave literal, y cualquiera que obtenga el enlace obtendría tu saldo. Es por eso que el botón de nuestro sitio es un fragmento de copiar y pegar con un marcador de posición de entorno en lugar de un enlace profundo «Add-to-Cursor». Pegas, exportas la variable y listo.
Una limitación honesta del lado del producto mientras somos francos: la herramienta de MCP generate_image aún no acepta imágenes de entrada, por lo que la generación basada en referencias y de imagen a video todavía requieren el generador web. La generación de texto a imagen, el refinamiento de varias iteraciones con edit_image y la generación de texto a video funcionan hoy en día a través de MCP.
¿Cuánto costaron los medios de demostración de este artículo?
Precios estándar por generación, los mismos números que list_models informa al agente, sin descuentos para el personal:
| Recurso | Modelo | Precio |
|---|---|---|
| Demostración de banner hero, vía MCP con clave activa | Nano Banana Pro, 1K | $0.11 |
| Demostración de marcador de posición de producto, vía MCP | Nano Banana Pro, 1K | $0.11 |
| Portada + 2 ilustraciones editoriales | Nano Banana Pro, 1K | $0.33 |
| Captura de pantalla de página de documentación | navegador, no una generación | $0.00 |
| Total | $0.55 |
Esta vez cada generación se logró en el primer intento, lo cual no siempre sucederá; presupuesta una o dos repeticiones (rerolls) en las tomas de productos y haz zoom antes de publicar, ya que la geometría de los objetos sigue siendo el aspecto donde los modelos fotorrealistas fallan con más frecuencia.
Si ya ejecutas este servidor en Claude, la configuración de Cursor anterior es la única parte nueva: misma clave, mismo saldo, mismo historial. Si estás comenzando desde cero, el tutorial de Claude Code cubre cuatro casos de uso adicionales que se aplican a Cursor casi al pie de la letra. ¿Listo para probar? Crea una clave y pídele a Cursor tu primera imagen hero.
Preguntas frecuentes (FAQ)
¿Admite Cursor servidores MCP remotos con un encabezado de autorización (Authorization)?
Sí, de forma nativa. Desde que Cursor agregó el transporte HTTP transmisible (Streamable HTTP transport), un servidor remoto es simplemente una url más un objeto opcional headers en mcp.json, sin necesidad de un proceso de puente local, y la interpolación ${env:VAR} mantiene el secreto fuera del archivo. Esa es la configuración que utiliza esta guía, verificada con la documentación oficial de MCP de Cursor al 11 de julio de 2026. Cursor también es compatible con OAuth para servidores remotos; nuestro endpoint actualmente se autentica con claves Bearer, y se planea OAuth 2.1 como una segunda opción.
¿Necesito una clave API de Google para generar imágenes en Cursor?
No. Los servidores MCP de imágenes que se ejecutan localmente llaman a la Gemini API directamente, por lo que necesitan tu propia clave de Google con tus propias cuotas y facturación. Con el servidor remoto, la generación se ejecuta en el grupo administrado de claves de Vertex AI de BananaBanana, y tu única credencial es la clave bb_live_ de tu perfil. Intercambias el acceso directo a la API nativa de Google por precios por generación sin gastos mínimos, un único saldo prepago y una clave que puedes revocar con un solo clic.
¿La configuración de MCP debería ser global o por proyecto?
Ambas opciones funcionan; la diferencia está en el alcance y la forma de compartir. ~/.cursor/mcp.json te sigue a cada repositorio, lo cual es ideal para una configuración personal. .cursor/mcp.json en la raíz del proyecto viaja con el repositorio, por lo que todo el equipo obtiene el servidor después de clonarlo; mantén la clave como una referencia ${env:…} y el archivo será seguro de confirmar (commit). Mi opción predeterminada es a nivel de proyecto para cualquier cosa que toque un equipo, porque una configuración confirmada junto con claves por desarrollador te brinda registros de uso y revocación por persona.
¿Puede Cursor generar video a través del mismo servidor?
Sí, con un paso de confirmación de costos. La herramienta generate_video siempre devuelve un presupuesto primero, y el agente debe repetir la llamada con confirm_cost coincidiendo con la cantidad exacta antes de que se realice cualquier cobro. Los precios van desde $0.10 por un clip silencioso de 720p de 4 segundos con Veo 3.1 Lite hasta $4.40 por un renderizado de gama alta con Veo 3.1 con audio, y y Omni Flash con sonido cuesta $0.10 por segundo ($0.30–$1.00 por clip). Los clips tardan entre uno y diez minutos, por lo que el agente realiza consultas (polls) a get_result mientras continúa trabajando en tu código.
¿Por qué no aparece mi servidor en Cursor después de editar mcp.json?
Tres sospechosos habituales, en orden de probabilidad. La variable de entorno no es visible para el proceso de Cursor: las aplicaciones iniciadas desde la GUI no leen tu perfil de shell, por lo que debes configurar la variable a nivel de sistema operativo o iniciar Cursor desde una terminal. La configuración no se recargó: reinicia completamente Cursor o utiliza el control de actualización (refresh) en los ajustes de MCP. O el JSON es sutilmente inválido, siendo la coma final el error clásico. Si el servidor aparece pero las llamadas a las herramientas fallan con un error 401, la clave misma es incorrecta o fue revocada; pruébala con una solicitud directa desde el fragmento de la página del servidor MCP.