NovitàCollega qualsiasi agente a UberLLM: una chiave, tutti i modelli, a prezzo di listino o meno.
UberLLM

Server MCP

UberLLM è un server MCP a https://api.uberllm.dev/mcp. Un agente ad esso connesso può elencare i modelli, prezzare una richiesta, creare e modificare immagini, creare video e controllare il tuo saldo, senza scrivere chiamate HTTP.

È elencato nel Registro MCP ufficiale come dev.uberllm/mcp, quindi i client che leggono il registro possono aggiungerlo per nome.

Utilizza il trasporto HTTP Streamable. Accedi con la stessa API key che usi per /v1, inviata come Authorization: Bearer ull_.... Una chiamata a uno strumento viene fatturata, limitata e rifiutata esattamente come la stessa richiesta all'API: gli stessi prezzi, gli stessi limiti di spesa per API key, e le richieste fallite non costano nulla.

Codice Claude

Sostituisci $KEY con la tua API key, o imposta KEY nella tua shell prima:

claude mcp add --transport http uberllm https://api.uberllm.dev/mcp --header "Authorization: Bearer $KEY"

Aggiungi --scope user per usarlo in ogni progetto. Esegui claude mcp list per verificare che si sia connesso.

Claude Desktop

Claude Desktop si connette a un server remoto con una chiave tramite mcp-remote (richiede Node.js). Apri Impostazioni → Sviluppatore → Modifica Config e aggiungi:

{
  "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" }
    }
  }
}

L'header non ha uno spazio dopo : di proposito: su Windows, Claude Desktop non mette tra virgolette gli spazi all'interno di args. Riavvia Claude Desktop dopo aver salvato.

Cursor e altri client

I client che leggono un file mcpServers (il ~/.cursor/mcp.json di Cursor, per esempio) accettano:

{
  "mcpServers": {
    "uberllm": {
      "url": "https://api.uberllm.dev/mcp",
      "headers": { "Authorization": "Bearer ull_your_key_here" }
    }
  }
}

Strumenti

Tool Cosa fa Spende
list_models Modelli che puoi chiamare ora, con il loro prezzo. type è chat, image, video o music; search mantiene i modelli il cui id o nome contiene le parole. No
get_model Un modello: il suo prezzo e, per un modello multimediale, parameters, uno JSON Schema delle opzioni che le sue richieste accettano. No
quote Verifica una richiesta di immagine, video, musica o text-to-speech rispetto al modello e la prezza, senza creare nulla. Restituisce cost_usd, il prezzo di listino, e max_cost_usd, ciò che viene trattenuto mentre è in esecuzione e il massimo che verrà fatturato. No
generate_image Crea immagini da un prompt. Restituisce link e usage.cost_usd. Con return_image: true le immagini tornano anche nella risposta. Sì
edit_image Modifica l'immagine in image_url (o le immagini in input_images) seguendo il prompt. Usa un modello di editing, come uno il cui id finisce in -edit. Sì
start_video Avvia un video e restituisce un job. Invia idempotency_key in modo che un nuovo tentativo non avvii o paghi mai un secondo video. Sì, quando il video è creato
get_job Un job video o musicale: stato, progresso e, una volta riuscito, i suoi link ai file e il costo. No
wait_job Attende fino alla fine di un job, per un massimo di timeout_seconds (50 al massimo). Se done è false, richiamalo. No
balance Ciò che puoi spendere ora e ciò che è trattenuto per richieste e job ancora in esecuzione, in dollari USA. No

Le opzioni che un modello elenca nel suo schema parameters (ad esempio duration_seconds, resolution o aspect_ratio) vanno in options su quote, generate_image, edit_image e start_video. Invia max_cost (dollari USA) su uno strumento di spesa per rifiutare qualsiasi cosa che potrebbe costare di più.

Un video richiede da circa 30 secondi a diversi minuti. Il flusso usuale è get_model, quote, start_video, poi wait_job finché lo stato non è succeeded, failed, canceled o expired.

File

I link ai risultati (/v1/media/artifacts/...) richiedono la stessa API key nell'header Authorization per essere scaricati. I file vengono conservati per circa 3 ore dopo il completamento di un lavoro; i link alle immagini per circa 15 minuti. Vedi Creare un video o un'immagine per i dettagli di ogni richiesta.

Errori

Quando l'API rifiuta una chiamata, lo strumento risponde con un risultato di errore che riporta il messaggio e il codice propri dell'API, ad esempio insufficient_credits o max_cost_too_low. I codici sono quelli in Errori. Una richiesta senza una chiave valida riceve risposta 401 prima che qualsiasi strumento venga eseguito.

Controlla la connessione

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"}'