MCP Server

Live

A hosted Model Context Protocol server so Claude, Cursor, Claude Code and any other MCP-compatible agent can generate images and video through Fluxpool. Nothing to install. In Claude you sign in with your Fluxpool account, with no API key to copy; other clients connect with an API key.

Endpoint · https://mcp.fluxpool.ai/mcp
Auth · OAuth sign-in (Claude), or Authorization: Bearer fp_live_...
Transport · Streamable HTTP (MCP spec 2025-03-26)

Quickstart

Using Claude on the web, desktop or mobile? Add Fluxpool as a connector and sign in: no API key, nothing to install. See Claude below.

For any other MCP client:

  1. Create an API key on the API / MCP Access page in the Fluxpool app. Keys start with fp_live_.
  2. Point your client at https://mcp.fluxpool.ai/mcp with the key as a Bearer token. If your client only speaks stdio, use the @fluxpool/mcp-server npm bridge instead.
  3. Templates for the common clients are below.

Install

The @fluxpool/mcp-server package is a thin stdio bridge to the hosted MCP endpoint — the transport most Claude and Cursor installations expect. No global install needed; npx fetches it on first run.

bash
# Recommended — npx fetches the package on first run, no install step
npx -y @fluxpool/mcp-server

# Or install globally if your client can't run npx
npm install -g @fluxpool/mcp-server

The bridge is stateless — every call proxies to mcp.fluxpool.ai/mcp, so the tool list and behaviour stay in sync with the hosted server automatically. Use version 0.3.0 or later; earlier versions are deprecated.

Claude Desktop

Open Claude Desktop's config file:

  • macOS · ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows · %APPDATA%\Claude\claude_desktop_config.json

Add an entry under mcpServers:

claude_desktop_config.json
{
  "mcpServers": {
    "fluxpool": {
      "command": "npx",
      "args": ["-y", "@fluxpool/mcp-server"],
      "env": {
        "FLUXPOOL_API_KEY": "fp_live_YOUR_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop. Six Fluxpool tools appear in the tools panel — Claude can now generate images and video, poll progress, browse your library, and check credits.

Alternative: connect via hosted HTTP endpoint (no npm)

A connector you add in Claude on the web also appears in Claude Desktop, with no config file. If you'd rather configure it here, newer Claude Desktop builds accept the direct url form, which skips the local Node process:

claude_desktop_config.json (HTTP variant)
{
  "mcpServers": {
    "fluxpool": {
      "url": "https://mcp.fluxpool.ai/mcp",
      "headers": {
        "Authorization": "Bearer fp_live_YOUR_KEY_HERE"
      }
    }
  }
}

Claude (web, desktop and mobile), no API key

In Claude, open Settings → Connectors → Add custom connector. Enter:

  • Name · Fluxpool
  • URL · https://mcp.fluxpool.ai/mcp
  • OAuth fields · leave empty

Click Connect. A Fluxpool page opens: sign in if asked, check which account's credits the connector will use, and click Allow. There is no key to copy.

A connector added on the web is also available in Claude Desktop and mobile. Disconnect it any time from the API / MCP Access page in the app.

Claude Code, Cursor and other MCP clients

Any client that speaks the MCP Streamable HTTP transport (spec 2025-03-26 or later) can connect. The config shape usually matches Claude Desktop's — a URL and an Authorization header.

Claude Code
claude mcp add --transport http fluxpool https://mcp.fluxpool.ai/mcp \
  --header "Authorization: Bearer fp_live_YOUR_KEY_HERE"

Or add it without --header, run /mcp in Claude Code and choose Authenticate to sign in through the browser.

Cursor supports MCP via Settings → MCP Servers. If your client uses a different config format, the two values it needs are always the same: the endpoint URL and your Bearer token.

Tools exposed

Six tools become callable from your agent once the connector is wired up:

Tool What it does
list_models Return the current model catalog — IDs and media type. Call it first if unsure which model to use.
create_generation Submit an image or video generation. Returns the generation ID immediately (generation is async).
check_generation Poll status of a submitted generation. Returns pending / processing / completed / failed and the URL when ready.
get_generation_details Fetch full metadata — prompt, model, parameters, credits used, output URL.
list_library Browse your saved assets. Filter by media type or model, paginate.
get_balance Report the credit balance of the connected account.

All tools call the same REST endpoints documented in the API Reference, so behaviour and error shapes match the direct-API path exactly.

Reference inputs (image / video / audio)

create_generation accepts an inputs array for image-to-image, video-to-video, and other reference-conditioned models. Every entry has the same shape, regardless of modality:

json
{ "type": "image", "source": "url",   "value": "https://..." }
{ "type": "image", "source": "data",  "value": "data:image/png;base64,..." }
{ "type": "image", "source": "local", "value": "./pic.png" }
  • type — image, video, or audio.
  • source: "url" — an https:// URL, passed through untouched.
  • source: "data" — a base64 data-URI. The backend uploads it to S3 for you. Cap: ~4.5 MB decoded per item.
  • source: "local" — a path on the machine running the local MCP bridge (see below).

Local file paths (stdio bridge only)

source: "local" is a convenience of the @fluxpool/mcp-server npm bridge: the file is read on your machine, base64-encoded, and forwarded to the hosted endpoint as a "data" entry. The hosted endpoint itself never sees "local" — so it works only when you connect via the local bridge, not the direct HTTPS MCP endpoint.

Auto-compression for large images. Images over 4 MB are automatically resized to 2048 px and re-encoded as webp when the optional sharp dependency is installed:

bash
npm install -g sharp

Without sharp, oversize images are refused with a message pointing here. Video and audio files above 4 MB are never auto-compressed — upload them with the get_upload_url action on api.fluxpool.ai/initia (up to 20 MB), then pass the returned URL with source: "url".

Async generations

create_generation returns immediately with a generation ID and status pending. Your agent should call check_generation every few seconds until the status flips to completed, at which point the URL in the response is fetchable.

Don't fetch the URL before status is completed. create_generation may return a URL alongside pending, but the object isn't in S3 yet. Wait for check_generation to report completed, then fetch. Presigned URLs expire 1 hour after issue — persist the file promptly if you plan to keep it.

Testing without an MCP client

You can hit the endpoint directly with curl to sanity-check the connection and your API key before wiring it into an agent. Every message is JSON-RPC 2.0 over HTTP POST.

bash
# Handshake — should return protocolVersion + serverInfo
curl -X POST https://mcp.fluxpool.ai/mcp \
  -H "Authorization: Bearer fp_live_..." \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}'

# List available tools
curl -X POST https://mcp.fluxpool.ai/mcp \
  -H "Authorization: Bearer fp_live_..." \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# Call a tool
curl -X POST https://mcp.fluxpool.ai/mcp \
  -H "Authorization: Bearer fp_live_..." \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_models","arguments":{}}}'

Connected before? The earlier address, https://api.fluxpool.ai/v1/mcp, is being retired. Point your client at https://mcp.fluxpool.ai/mcp, which takes an API key or signing in without one.