Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Make images and videos, price requests, list AI models and read your balance, from one API key.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http uberllm https://api.uberllm.dev/mcp --header 'Authorization: Bearer {api_key}'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"uberllm": {
"url": "https://api.uberllm.dev/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"uberllm": {
"type": "http",
"url": "https://api.uberllm.dev/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain uberllm.dev (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: Authorization
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 7 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, yontu
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
UberLLM is an API marketplace for AI models: chat, image, video, music and speech. You call one OpenAI- and Anthropic-compatible API with one key. Each request is served by a third-party inference provider for that model, and costs what that provider charged for it.
https://api.uberllm.dev/v1 (OpenAI) or https://api.uberllm.dev (Anthropic).This repository holds the public tooling: plugins for Claude Code and Codex, a Gemini CLI extension, the uberllm agent skill, the Claude Code installer with its checksums, and copy-paste setup for SDKs and MCP clients.
Sign in at https://uberllm.dev with your email (a code is sent, no password), add credit, and create a key in Dashboard → Keys. Keys start with ull_.
This repository is a Claude Code plugin, a Codex plugin, a Gemini CLI extension and an Agent Skill. Each one adds UberLLM's hosted MCP server (https://api.uberllm.dev/mcp, Streamable HTTP) and/or the uberllm skill, which knows how to set UberLLM up, pick a model and make images and videos. Nothing to build or run locally: the server is hosted, and it authenticates with your key as Authorization: Bearer ull_....
MCP tools: list_models, get_model, quote, generate_image, edit_image, start_video, get_job, wait_job, balance. A tool call is billed exactly like the same API request. Full reference: https://uberllm.dev/docs/mcp
Claude Code plugin (MCP server + skill). Inside Claude Code:
/plugin marketplace add PSA-Team-source/uberllm
/plugin install uberllm@uberllm
Claude Code asks for your API key when the plugin is enabled and keeps it in your system's credential store. Set or change it later with claude plugin configure uberllm.
Codex plugin (MCP server + skill):
codex plugin marketplace add PSA-Team-source/uberllm
codex plugin add uberllm@uberllm export UBERLLM_API_KEY=ull_... # the MCP server reads the key from here
Gemini CLI extension (MCP server + skill):
gemini extensions install https://github.com/PSA-Team-source/uberllm
Gemini CLI asks for your API key on install and keeps it in your system keychain (change it with gemini extensions config uberllm). If you skip it, export UBERLLM_API_KEY=ull_... before starting gemini works too.
Skill only (Claude Code, Codex, Cursor, OpenCode and other agents that read Agent Skills), via skills.sh:
npx skills add PSA-Team-source/uberllm
MCP server only, Claude Code:
claude mcp add --transport http uberllm https://api.uberllm.dev/mcp --header "Authorization: Bearer ull_..."
Cursor (~/.cursor/mcp.json) and other clients that take a URL:
{
"mcpServers": { "uberllm": { "url": "https://api.uberllm.dev/mcp", "headers": { "Authorization": "Bearer ull_..." } } } }
VS Code (.vscode/mcp.json; VS Code asks for the key once and stores it):
{
"inputs": [ { "type": "promptString", "id": "uberllm-key", "description": "UberLLM API key (ull_...)", "password": true } ], "servers": { "uberllm": { "type": "http", "url": "https://api.uberllm.dev/mcp", "headers": { "Authorization": "Bearer ${input:uberllm-key}" } } } }
Claude Desktop (Settings → Developer → Edit Config), through mcp-remote:
{
"mcpServers": { "uberllm": { "command": "npx", "args": ["-y", "mcp-remote", "https://api.uberllm.dev/mcp", "--header", "Authorization:${UBERLLM_AUTH}"], "env": { "UBERLLM_AUTH": "Bearer ull_..." } } } }
The server is listed in the official MCP Registry as dev.uberllm/mcp (server.json).
from openai import OpenAI
client = OpenAI(base_url="https://api.uberllm.dev/v1", api_key="ull_...") r = client.chat.completions.create( model="deepseek/deepseek-v4-flash", messages=[{"role": "user", "content": "Say hello in five words."}], ) print(r.choices[0].message.content)
from anthropic import Anthropic
client = Anthropic(base_url="https://api.uberllm.dev", api_key="ull_...") m = client.messages.create( model="anthropic/claude-haiku-4.5", max_tokens=100, messages=[{"role": "user", "content": "Say hello in five words."}], ) print(m.content[0].text)
Any chat model in the catalog works on both APIs. Model ids are the ids on https://uberllm.dev/models.
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
const uberllm = createOpenAICompatible({ name: "uberllm", apiKey: process.env.UBERLLM_API_KEY, baseURL: "https://api.uberllm.dev/v1", includeUsage: true, });
const { text } = await generateText({ model: uberllm("deepseek/deepseek-v4-flash"), prompt: "Say hello in five words.", });
Streaming, tool calls and images: https://uberllm.dev/docs/ai-sdk
mkdir -p ~/.uberllm && chmod 700 ~/.uberllm
printf '%s\n' 'ull_your_key' > ~/.uberllm/key && chmod 600 ~/.uberllm/key
~/.claude/settings.json (every project) or /.claude/settings.local.json (one project): {
"apiKeyHelper": "cat ~/.uberllm/key", "env": { "ANTHROPIC_BASE_URL": "https://api.uberllm.dev", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1" } }
install/claude-code.sh (macOS, Linux) and install/claude-code.ps1 (Windows) are byte-for-byte the files served at https://uberllm.dev/install/. They sign you in through the browser, save the key to a mode-600 file, merge ANTHROPIC_BASE_URL and an apiKeyHelper into your Claude Code settings (backing the file up first), and make one test request. --uninstall reverts it.
Read it, check it, then run it:
curl -fsSL https://uberllm.dev/install/claude-code.sh -o claude-code.sh
shasum -a 256 claude-code.sh # compare with install/SHA256SUMS less claude-code.sh sh claude-code.sh # add --project for this project only
| File | SHA-256 |
|---|---|
claude-code.sh | f5aa1c4610992d8f4ecc1b1cd777bc731c5fad9da6a38cac46989834b194d66c |
claude-code.ps1 | 60d631b48e60a2e3f17e5eee19136d47a255f143627986e86b6ceb379858a3b9 |
If the file you downloaded does not match the sum above, do not run it, and tell us at support@uberllm.dev.
Details: https://uberllm.dev/docs/claude-code
support@uberllm.dev · Privacy · Terms
MIT