Servidor MCP
UberLLM es un servidor MCP en https://api.uberllm.dev/mcp. Un agente conectado
a él puede listar modelos, cotizar una solicitud, crear y editar imágenes, hacer videos y
verificar su saldo, sin escribir llamadas HTTP.
Está listado en el Registro oficial de MCP
como dev.uberllm/mcp, por lo que los clientes que leen el registro pueden añadirlo por nombre.
Utiliza el transporte HTTP Streamable. Inicie sesión con la misma API key que usa
para /v1, enviada como Authorization: Bearer ull_.... Una llamada a la herramienta se factura,
limita y rechaza exactamente como la misma solicitud a la API: los mismos precios,
los mismos límites de gasto por API key, y las solicitudes fallidas no cuestan nada.
Código de Claude
Reemplaza $KEY con tu API key, o configura KEY primero en tu shell:
claude mcp add --transport http uberllm https://api.uberllm.dev/mcp --header "Authorization: Bearer $KEY"
Añade --scope user para usarlo en cada proyecto. Ejecuta claude mcp list para comprobar que se conectó.
Claude Desktop
Claude Desktop se conecta a un servidor remoto con una clave a través de
mcp-remote (requiere Node.js). Abre
Ajustes → Desarrollador → Editar Configuración y añade:
{
"mcpServers": {
"uberllm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.uberllm.dev/mcp", "--header", "Authorization:${UBERLLM_AUTH}"],
"env": { "UBERLLM_AUTH": "Bearer ull_your_key_here" }
}
}
}
El encabezado no tiene espacio después de : a propósito: en Windows, Claude Desktop no
cita los espacios dentro de args. Reinicia Claude Desktop después de guardar.
Cursor y otros clientes
Clientes que leen un archivo mcpServers (el ~/.cursor/mcp.json de Cursor, por ejemplo) aceptan:
{
"mcpServers": {
"uberllm": {
"url": "https://api.uberllm.dev/mcp",
"headers": { "Authorization": "Bearer ull_your_key_here" }
}
}
}
Herramientas
| Herramienta | Qué hace | Gasta |
|---|---|---|
list_models |
Modelos que puedes llamar ahora, con su precio. type es chat, image, video o music; search mantiene modelos cuyo id o nombre contiene las palabras. |
No |
get_model |
Un modelo: su precio y, para un modelo de medios, parameters, un JSON Schema de las opciones que aceptan sus solicitudes. |
No |
quote |
Comprueba una solicitud de imagen, video, música o texto a voz contra el modelo y la valora, sin hacer nada. Devuelve cost_usd, el precio de lista, y max_cost_usd, lo que se retiene mientras se ejecuta y lo máximo que se factura. |
No |
generate_image |
Crea imágenes a partir de un prompt. Devuelve enlaces y usage.cost_usd. Con return_image: true las imágenes también vuelven en la respuesta. |
Sí |
edit_image |
Cambia la imagen en image_url (o las imágenes en input_images) siguiendo el prompt. Usa un modelo de edición, como uno cuyo id termina en -edit. |
Sí |
start_video |
Inicia un video y devuelve un job. Envía idempotency_key para que un reintento nunca inicie o pague un segundo video. |
Sí, cuando el video está hecho |
get_job |
Un job de video o música: estado, progreso y, una vez que tuvo éxito, sus enlaces de archivo y costo. | No |
wait_job |
Espera hasta que un job termine, por hasta timeout_seconds (50 como máximo). Si done es false, llámalo de nuevo. |
No |
balance |
Lo que puedes gastar ahora y lo que se retiene para solicitudes y jobs aún en ejecución, en dólares estadounidenses. | No |
Las opciones que un modelo lista en su esquema parameters (por ejemplo duration_seconds,
resolution o aspect_ratio) van en options en quote, generate_image,
edit_image y start_video. Envía max_cost (dólares estadounidenses) en una herramienta de gasto
para rechazar cualquier cosa que pudiera costar más.
Un video tarda desde aproximadamente 30 segundos hasta varios minutos. El flujo habitual es
get_model, quote, start_video, luego wait_job hasta que el estado sea
succeeded, failed, canceled o expired.
Archivos
Los enlaces de resultados (/v1/media/artifacts/...) necesitan la misma API key en el
header Authorization para descargar. Los archivos se guardan durante aproximadamente 3 horas después de que un trabajo finaliza; los enlaces de imágenes durante aproximadamente 15 minutos. Consulta
Crear un video o imagen para los detalles de cada solicitud.
Errores
Cuando la API rechaza una llamada, la herramienta responde con un resultado de error que lleva el mensaje y el código propios de la API, por ejemplo insufficient_credits o max_cost_too_low. Los códigos son los que se encuentran en Errores. Una solicitud sin una clave válida es respondida 401 antes de que se ejecute cualquier herramienta.
Comprobar la conexión
curl https://api.uberllm.dev/mcp \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'