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