OneOver MCP server
One key. GPT, Gemini, Grok, and Claude for second opinions, plus image, video, and audio generation, inside Claude Code, Cursor, VS Code, or any MCP client.
Endpoint:
https://api.oneover.com/functions/v1/mcpTransport: Streamable HTTP (remote, nothing to install)
Auth:
Authorization: Bearer oo_live_…, or OAuth from Claude.ai and the Anthropic directory. Create a key at the developer dashboard. Calls spend the same credits as the app. Pro is $10/mo.Try before a key:
initializeandtools/listwork without auth.tools/callneeds a key.
1. Get a key
Sign in at oneover.com, open the developer dashboard, and choose Create key.
Copy the
oo_live_…value. It is shown once.A new key includes chat, images, video, audio, usage, files, apps, assets, jobs, and webhooks. It does not include
billing, socreate_topupstays hidden, orcode, so Code Studio build tools return a scope error.Store it as an env var:
export ONEOVER_API_KEY=oo_live_...
2. Add it to your client
Claude Code
claude mcp add --transport http oneover https://api.oneover.com/functions/v1/mcp \
--header "Authorization: Bearer $ONEOVER_API_KEY"
Add --scope user to use it in every project. Check with claude mcp list, or /mcp inside a session.
Or install the plugin, which also adds a skill that tells Claude when to use OneOver:
/plugin marketplace add jonruppel/oneover-claude-plugin
/plugin install oneover@oneover
Cursor
.cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"oneover": {
"url": "https://api.oneover.com/functions/v1/mcp",
"headers": { "Authorization": "Bearer oo_live_YOUR_KEY" }
}
}
}
VS Code
Copilot agent mode reads .vscode/mcp.json:
{
"inputs": [
{
"type": "promptString",
"id": "oneover-key",
"description": "OneOver API key",
"password": true
}
],
"servers": {
"oneover": {
"type": "http",
"url": "https://api.oneover.com/functions/v1/mcp",
"headers": { "Authorization": "Bearer ${input:oneover-key}" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"oneover": {
"serverUrl": "https://api.oneover.com/functions/v1/mcp",
"headers": { "Authorization": "Bearer oo_live_YOUR_KEY" }
}
}
}
Claude Desktop
claude_desktop_config.json only starts local programs. It does not call a remote URL with a bearer header.
Claude.ai and the Anthropic directory use OAuth. Add https://api.oneover.com/functions/v1/mcp. OneOver asks you to sign in, then mints a key that does not include billing or code.
The Desktop config file still needs a bridge. On macOS it is ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"oneover": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.oneover.com/functions/v1/mcp",
"--header",
"Authorization:${ONEOVER_AUTH}"
],
"env": { "ONEOVER_AUTH": "Bearer oo_live_YOUR_KEY" }
}
}
}
Restart Claude Desktop after saving.
Check that it works
This needs no key. The response lists the tool names (create_topup is absent until the key has billing):
curl -s -X POST https://api.oneover.com/functions/v1/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Then, with a key, ask the client to call list_models. A catalog means the header and the key are working.
3. Tools
Live tools/list returns 18 tools without a billing scope, and 19 with one.
| Tool | Required args | What it does |
|---|---|---|
| chat | model, messages | Stateless chat with any text model (GPT, Gemini, Grok, Claude, and others) |
| list_models | — | Models your key can use now. Call this instead of hard-coding ids |
| generate_image | model, prompt | Image from a prompt. Optional negative_prompt, aspect_ratio, resolution_tier (1k, 2k, 4k) |
| generate_video | model | Async video job. Returns request_id. Optional prompt, duration, resolution, aspect_ratio, generate_audio, reference_image (base64) |
| check_video | request_id | Poll video status |
| generate_audio | model, prompt | Speech or music |
| get_job | request_id | Poll any generation job |
| create_run | — | Start a durable run that keeps going after the client disconnects |
| get_run | run_id | Read a run and the events after a cursor |
| run_app | app_id, prompt | Run a Play app |
| list_assets | — | API-generated library assets |
| get_usage | — | Credit balance and usage |
| build_create | prompt | Start a Code Studio build. Needs the code scope |
| build_iterate | build_project_id, prompt | Follow-up instruction on a build. Needs code |
| build_status | build_project_id | running, complete, failed, or stopped. Needs code |
| build_get_files | build_project_id | Read build files. Needs code |
| build_stop | build_id | Stop a running build and keep the files. Needs code |
| build_publish | build_project_id | Unlisted share link at oneover.com/p/{slug}. Needs code |
| create_topup | — | Off by default. Needs the billing scope. Returns a Stripe Checkout URL (credits_5, credits_10, or credits_20) and spends money. Confirm with the user first |
Video is async: call generate_video, then poll check_video or get_job until status is complete or failed. Builds work the same way: build_create, then build_status.
Protocol: the server negotiates 2025-11-25, 2025-06-18, 2025-03-26, and 2024-11-05, and answers with the version the client requested.
4. Prompts to try
Second opinion: "Use OneOver's
list_models, then ask GPT and Gemini viachatto review the plan in PLAN.md. Summarize where they disagree with you."Hero image: "Generate a 16:9 hero image for this landing page with OneOver
generate_image."Video: "Make a 5-second product clip with
generate_video, then pollcheck_videountil done and give me the link."Voiceover: "Turn the intro paragraph of the README into speech with
generate_audio."Balance: "What's my OneOver credit balance?" (
get_usage)
5. Costs
Calls spend credits from the key's organization. Image and video cost more than chat. $5 buys 500 credits, $10 buys 1,000, and $20 buys 2,000. Pro includes 1,400 credits a month.
6. Common errors
Errors use a JSON envelope with code and request_id. Include the request id when writing to support. See errors.md.
| What you see | Likely cause |
|---|---|
unauthorized or invalid_key (401) on tools/call | Missing key, a typo, or the header is not Authorization: Bearer oo_live_… |
scope_denied (403) | The key is missing the scope. create_topup needs billing (new keys do not have it). Build tools need code (new keys do not have it) |
insufficient_credits (402) | The organization is out of credits. Buy a pack in the app |
rate_limit_exceeded (429) | Per-key limit. Standard keys allow 60 requests a minute. See Retry-After and X-RateLimit-* |
| Unknown model | Call list_models. Availability changes |
| Desktop shows the server but no tools | The remote URL was pasted into claude_desktop_config.json. Use the mcp-remote block above |
tools/list works and tools/call does not | Listing is public. Calls need a key |
Links
OpenAPI · llms.txt · Server card · MCP Registry: com.oneover/mcp