CONFIGURACIÓN DE MCP

Conecta herramientas de IA

Dale a Claude o ChatGPT la capacidad de publicar en Upfling. Describe el sitio y el asistente lo publica. Las herramientas de programación como Claude Code, Cursor, Windsurf y VS Code se conectan de la misma forma.

Server
URL
https://mcp.upfling.host/mcp
Auth
Inicia sesión con tu cuenta de Upfling o usa una clave de API

Un solo endpoint para todos los clientes. Al iniciar sesión desde el cliente se usa OAuth, así que ningún secreto acaba en un archivo de configuración. Una clave de API funciona en cualquier lugar donde puedas definir un encabezado.

¿Publicas desde un pipeline? Puedes llamar a la API REST desde CI con la misma clave.

1
Paso 1

Conecta tu cliente

Empieza con Claude o ChatGPT: pega una URL, inicia sesión y la conexión queda hecha. No hay nada que instalar. Las herramientas de programación que aparecen más abajo necesitan, en cambio, un breve fragmento de configuración.

Claude y Claude Desktop

Abre Configuración, luego Conectores y luego Añadir conector personalizado. Llámalo Upfling, pega la URL de abajo e inicia sesión cuando Claude te lo pida. No hay nada más que rellenar: Claude se registra solo y Upfling emite el token.

Upfling también aparece en el directorio de conectores de Claude, que hace la misma configuración sin la URL. Mira lo que hace el conector.

https://mcp.upfling.host/mcp

ChatGPT

Abre Configuración, luego Conectores y luego Crear. Pega la URL de abajo e inicia sesión cuando ChatGPT te lo pida. En un chat normal y en Deep Research, ChatGPT puede leer tus sitios: los busca y obtiene una página o un archivo. Para publicar y editar desde ChatGPT, activa el Modo desarrollador en Configuración, Conectores; te pedirá confirmación antes de cada escritura.

https://mcp.upfling.host/mcp

Herramientas de programación

Para quienes trabajan en una terminal o un editor. Iniciar sesión sigue siendo la opción predeterminada; la forma con clave aparece a continuación cuando la herramienta admite encabezados. Cada una se configura con un archivo JSON. Si un cliente no arranca después de pegar el bloque, comprueba que el JSON sea válido antes de revisar cualquier otra cosa.

Claude Code

Un comando añade el servidor; después escribe /mcp dentro de Claude Code, elige upfling e inicia sesión. Si prefieres no iniciar sesión, pasa una clave como encabezado, o haz commit del JSON como .mcp.json y guarda la clave en una variable de entorno UPFLING_API_KEY.

Terminal
claude mcp add --transport http upfling https://mcp.upfling.host/mcp
Terminal
claude mcp add --transport http upfling https://mcp.upfling.host/mcp \
  --header "Authorization: Bearer upf_YOUR_KEY_HERE"
.mcp.json
{
  "mcpServers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer ${UPFLING_API_KEY}"
      }
    }
  }
}

Cursor

Guárdalo como .cursor/mcp.json en tu proyecto, o como ~/.cursor/mcp.json para usarlo en todas partes. Cursor te pide que inicies sesión; si prefieres usar una clave, añade en su lugar el bloque headers.

.cursor/mcp.json
{
  "mcpServers": {
    "upfling": {
      "url": "https://mcp.upfling.host/mcp"
    }
  }
}
.cursor/mcp.json
{
  "mcpServers": {
    "upfling": {
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer upf_YOUR_KEY_HERE"
      }
    }
  }
}

Windsurf

Añádelo a ~/.codeium/windsurf/mcp_config.json y pon tu clave de API en lugar de upf_YOUR_KEY_HERE; el inicio de sesión en Windsurf no está verificado, así que aquí se usa la forma con clave. Windsurf llama al campo serverUrl, no url.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "upfling": {
      "serverUrl": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer upf_YOUR_KEY_HERE"
      }
    }
  }
}

VS Code (Copilot)

Guárdalo como .vscode/mcp.json. VS Code te pide que inicies sesión. La segunda forma usa un bloque inputs para que VS Code pida la clave una sola vez y la guarde en su propio almacén de secretos, sin que nada acabe en git.

.vscode/mcp.json
{
  "servers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp"
    }
  }
}
.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "upfling-api-key",
      "description": "Upfling API key",
      "password": true
    }
  ],
  "servers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer ${input:upfling-api-key}"
      }
    }
  }
}

Otros clientes

Cualquier cliente compatible con Streamable HTTP funciona con la URL que aparece al principio de esta página, ya sea iniciando sesión con OAuth o enviando una clave de API en un encabezado. Los clientes que no pueden hacer ninguna de las dos cosas pueden pasar por mcp-remote.

Terminal
npx -y mcp-remote https://mcp.upfling.host/mcp \
  --header "Authorization: Bearer upf_YOUR_KEY_HERE"
2
Paso 2

O usa una clave de API

Para CI, scripts o un cliente que no puede abrir un navegador. Crea una clave en la página Claves de API y cópiala; solo la verás una vez. Donde un fragmento muestre el marcador de abajo, pega tu clave.

Abrir Claves de API →

upf_YOUR_KEY_HERE

3
Paso 3

Prueba un prompt

Cuando el cliente muestre las herramientas de Upfling, pide algo concreto.

  • Publica este HTML como un sitio en línea llamado portfolio.
  • Muestra mis sitios de Upfling y dime cuáles siguen pendientes.
  • Corrige la errata de index.html en my-portfolio y vuelve a publicarlo.
  • ¿Cuánto almacenamiento estoy usando y cuántos sitios más puedo crear?

Qué puede hacer el asistente

Quince herramientas. El asistente las elige por sí mismo, así que nunca escribes el nombre de una herramienta, pero saber cuáles existen te ayuda a pedir lo correcto.

Sitios

list_sites
Todos los sitios de la cuenta, con su URL y estado.
get_site
Detalles de un sitio: URL, estado y cuándo cambió por última vez.
create_site
Publica un sitio nuevo a partir de archivos de texto incluidos en la llamada.
update_site
Cambia el nombre de un sitio o su subdominio, o define una contraseña o una página de inicio.
delete_site
Mueve un sitio a la papelera o elimínalo definitivamente.

Archivos

write_site_files
Añade o sobrescribe archivos concretos. Todo lo demás se mantiene.
replace_site_files
Reemplaza todo el conjunto de archivos. Los archivos que no estén en la llamada se eliminan.
read_site_file
Lee un archivo, directamente o como un enlace de corta duración.
list_site_files
Muestra los archivos de un sitio con su tamaño y tipo.
delete_site_files
Elimina un archivo. El sitio sigue en línea.

Archivos grandes

request_upload
Reserva URL de subida para archivos binarios o cualquier archivo de más de 1 MB.
confirm_upload
Publica un lote subido cuando todos los archivos están en su sitio.

Búsqueda

search
Encuentra tus sitios y archivos por nombre, título, descripción, dominio o ruta. ChatGPT empieza por aquí.
fetch
Lee un resultado de búsqueda: el resumen de un sitio con su lista de archivos, o el contenido de un archivo.

Cuenta

get_account_info
Plan, número de sitios, almacenamiento usado y lo que queda disponible.

Tu asistente también puede mostrar una decimosexta herramienta, report_missing_feature. Nos envía una frase cuando el asistente busca algo que Upfling todavía no puede hacer, y no cambia nada en tu cuenta.

Límites y notas

  • Archivos incluidos en la llamada: hasta 200 archivos por llamada, 1 MB por archivo, solo texto (HTML, CSS, JS, SVG, JSON).
  • Las imágenes, fuentes, PDF y cualquier archivo de más de 1 MB pasan por request_upload y confirm_upload: el asistente solicita URL de subida prefirmadas, sube los bytes a ellas por su cuenta y después confirma el lote.
  • Los límites del plan se aplican exactamente igual que en el panel: 2 sitios y 25 MB en Free, más en los planes de pago.
  • Los límites de solicitudes se comparten con la API REST: 60 solicitudes por minuto en Free, 300 en Lite y Pro, 600 en Business.
  • Al iniciar sesión, el cliente obtiene sites:read y sites:write solo para tu cuenta. Las claves de API son las mismas claves upf_ que usa la API REST; si revocas una en la página Claves de API, todos los clientes que la usan dejan de funcionar en segundos.

Si algo falla

La página de inicio de sesión nunca se abre
El cliente no pudo conectar con el servidor o es una versión antigua sin compatibilidad con OAuth. Comprueba que la URL termine en /mcp, actualiza el cliente o, de momento, usa la forma con clave de API.
401 Unauthorized
La sesión caducó o la clave es incorrecta, está revocada o le falta el prefijo upf_. Vuelve a iniciar sesión, o crea una clave nueva en la página Claves de API y actualiza la configuración.
insufficient_scope al escribir
Solo aprobaste el acceso de lectura. Quita el servidor del cliente y vuelve a añadirlo, y luego aprueba ambos permisos en la pantalla de consentimiento.
429 Too Many Requests
Se alcanzó el límite por minuto de tu plan. Espera a que pase el tiempo indicado en el encabezado Retry-After o cámbiate a un plan con un límite más alto.
El asistente dice que no tiene herramientas de Upfling
Reinicia el cliente después de editar su configuración. La mayoría de los clientes solo leen los ajustes de MCP al arrancar.

Las claves de API son las mismas que usa la API REST.