AibubuDevelopers
Developer Docs

Remote MCP

Add Aibubu's MCP URL to Claude, ChatGPT, Cursor and other AI tools, sign in to authorize, and generate images and videos right there.

Aibubu runs a remote MCP server at:

https://aibubu.ai/mcp

There are two ways to connect:

MethodBest forHow
Account sign-in (recommended)Most peopleAdd the URL in your AI tool, sign in to Aibubu in the browser and click Allow. No API key needed
API keyDevelopers, scripts, or clients without sign-in supportSend Authorization: Bearer sk_aibubu_xxx; see "Connect with an API key" below

Both spend credits from your account, billed the same way as the web app.

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.

The first time you connect, your AI tool opens the Aibubu authorization page in your browser:

  1. Sign in to Aibubu (skipped if you already are).
  2. Choose which workspace's credits to use (personal by default) and set a daily credit limit (300 by default; 0 means no limit).
  3. Click Allow and return to your AI tool.

Your first connection earns bonus credits; the authorization page shows the amount.

Claude (web and desktop)

In Claude, go to Settings → Connectors and choose "Add custom connector":

  • Name: Aibubu
  • Remote MCP server URL: https://aibubu.ai/mcp

Click Connect, then sign in and authorize.

ChatGPT

In ChatGPT settings, create a custom connector (enable developer mode when ChatGPT asks), set the URL to https://aibubu.ai/mcp, choose OAuth authentication, then sign in and authorize.

Claude Code

claude mcp add --transport http aibubu https://aibubu.ai/mcp

Then type /mcp in Claude Code and pick aibubu to sign in and authorize.

Or install the official plugin, which bundles the MCP server and the Agent Skill:

/plugin marketplace add aibubu2026/aibubu-skills
/plugin install aibubu-global@aibubu

Then run /mcp to authorize as above.

Cursor

Add this to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project:

{
  "mcpServers": {
    "aibubu": {
      "url": "https://aibubu.ai/mcp"
    }
  }
}

Save, then click the sign-in prompt in Cursor's MCP settings and authorize.

VS Code

Create .vscode/mcp.json in your project:

{
  "servers": {
    "aibubu": {
      "type": "http",
      "url": "https://aibubu.ai/mcp"
    }
  }
}

VS Code asks you to sign in when the server starts; authorize when prompted.

Manage and revoke connections

Each authorized AI tool appears under API keys as "Tool name (MCP)", for example "Claude (MCP)". There you can change its daily credit limit, or delete it to disconnect; after deleting, the tool has to be authorized again.

Connect with an API key

For developers, scripts, or clients without sign-in support. Read tools need a key with v1:read; upload and generation need v1:generate. The key's daily credit limit applies.

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
401 or "unauthorized" after signing inThe connection may have been deleted. Check its "(MCP)" entry under API keys, or reconnect from the client
401 when using an API keyThe key isn't reaching the header. Check the variable is set where the client starts
Generation fails with a daily limit errorThis connection hit its daily credit limit. Raise it under API keys, or try again tomorrow
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