AibubuDevelopers
Developer Docs

Remote MCP

Connect Aibubu to Claude Code, Codex, Cursor, VS Code, Cherry Studio and Claude Desktop with an MCP URL and an API key; nothing to install.

Aibubu runs a remote MCP server over Streamable HTTP, authenticated with your API key:

ItemValue
URLhttps://aibubu.ai/mcp
AuthHeader Authorization: Bearer sk_aibubu_xxx
ScopesRead tools need v1:read; upload and generation need v1:generate

MCP shares authentication, billing and the daily credit limit with the /v1 API.

Tools

ToolKindPurpose
list_modelsReadList available models, filterable by image, video, text or keyword
get_modelReadShow a model's parameter schema and pricing notes
quoteReadEstimate credits for given parameters without creating a task
get_balanceReadShow available credits
upload_imageWriteUpload a base64-encoded reference image (up to 30 MiB per request, so about 22 MB of image) and get a URL valid for about 15 minutes, for the next generation
generate_imageWrite, spends creditsSubmit an image generation task; pass idempotency_key so network retries never double-submit
generate_videoWrite, spends creditsSubmit a video generation task
get_taskReadGet task status and results
wait_taskReadWait up to about 60 seconds on the server; returns the current state if unfinished, so call it again

Generation tools are marked as write operations, so most clients ask you to confirm before calling them.

Configure your client

These examples read the key from AIBUBU_API_KEY. Set it first:

export AIBUBU_API_KEY=sk_aibubu_your_api_key

Claude Code

claude mcp add --transport http aibubu https://aibubu.ai/mcp \
  --header "Authorization: Bearer $AIBUBU_API_KEY"

Run claude mcp list to confirm aibubu is connected.

Codex

Edit ~/.codex/config.toml:

[mcp_servers.aibubu]
url = "https://aibubu.ai/mcp"
bearer_token_env_var = "AIBUBU_API_KEY"

Cursor

Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project:

{
  "mcpServers": {
    "aibubu": {
      "url": "https://aibubu.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${env:AIBUBU_API_KEY}"
      }
    }
  }
}

VS Code

Create .vscode/mcp.json in your project. This prompts for the key on first connect and keeps it out of the file:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "aibubu-api-key",
      "description": "Aibubu API Key",
      "password": true
    }
  ],
  "servers": {
    "aibubu": {
      "type": "http",
      "url": "https://aibubu.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${input:aibubu-api-key}"
      }
    }
  }
}

Cherry Studio

Under Settings → MCP Servers → Add Server:

  • Type: Streamable HTTP (streamableHttp)
  • URL: https://aibubu.ai/mcp
  • Headers: Authorization=Bearer sk_aibubu_your_api_key

Claude Desktop

Claude Desktop's config file only runs local commands, so bridge with mcp-remote (needs Node.js). Edit claude_desktop_config.json:

{
  "mcpServers": {
    "aibubu": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://aibubu.ai/mcp", "--header", "Authorization:${AIBUBU_AUTH}"],
      "env": {
        "AIBUBU_AUTH": "Bearer sk_aibubu_your_api_key"
      }
    }
  }
}

Keep Authorization:${AIBUBU_AUTH} without a space; the space goes inside the environment variable's value.

Verify

Ask your client:

Use aibubu to list the video models and show my credit balance

If you get a model list and a balance, the connection works.

Troubleshooting

SymptomFix
Connection fails with 401The key isn't reaching the header. Check the variable is set where the client starts
Generation returns scope_forbiddenThe key lacks v1:generate
Generation returns insufficient_creditsNot enough credits; top up and retry
wait_task says the task is still runningExpected. Videos usually take a few minutes; let the client call wait_task or get_task again

On this page