@pixazo-api/mcp-bridge
v0.1.5
Published
Stdio bridge: connect any MCP-compatible client (Claude Code, Claude Desktop, VSCode, Cursor, Continue, Cline, Goose) to gateway.pixazo.ai using a Pixazo subscription key.
Downloads
127
Maintainers
Readme
@pixazo-api/mcp-bridge
Connect any MCP-compatible client to gateway.pixazo.ai with one line of config and a Pixazo subscription key.
Works with: Claude Code, Claude Desktop, VSCode, Cursor, Continue, Cline, Goose, and any spec-compliant MCP client that supports the stdio transport.
Why use the bridge?
Pixazo's HTTP MCP endpoints (https://gateway.pixazo.ai/<model>-mcp/mcp) speak OAuth 2.1 with browser sign-in — great for Claude clients, but blocked for VSCode / Cursor / headless / CI today. This bridge wraps the HTTP MCP behind a stdio transport that takes a subscription key from your environment, so it works everywhere a child Node process works.
Install
You don't install — your MCP client runs the bridge via npx on demand.
Get your subscription key
- Go to api-console.pixazo.ai/api_keys.
- Sign in with your Pixazo account.
- Copy your primary or secondary key.
- Treat it like a password — don't commit it to git.
Configure
Same shape across every client. Just put a stdio entry in your client's MCP config and set PIXAZO_SUBSCRIPTION_KEY in env.
Claude Code
.mcp.json at your project root:
{
"mcpServers": {
"happy-horse": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pixazo-api/mcp-bridge", "happy-horse-mcp"],
"env": { "PIXAZO_SUBSCRIPTION_KEY": "<your-key>" }
}
}
}Or one-shot CLI:
claude mcp add happy-horse npx -y @pixazo-api/mcp-bridge happy-horse-mcp \
--env PIXAZO_SUBSCRIPTION_KEY=<your-key>Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"happy-horse": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pixazo-api/mcp-bridge", "happy-horse-mcp"],
"env": { "PIXAZO_SUBSCRIPTION_KEY": "<your-key>" }
}
}
}Quit and relaunch Claude Desktop after editing.
VSCode
.vscode/mcp.json at your project root:
{
"servers": {
"happy-horse": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pixazo-api/mcp-bridge", "happy-horse-mcp"],
"env": { "PIXAZO_SUBSCRIPTION_KEY": "<your-key>" }
}
},
"inputs": []
}Reload the window: Cmd/Ctrl + Shift + P → Developer: Reload Window.
Cursor
.cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"happy-horse": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pixazo-api/mcp-bridge", "happy-horse-mcp"],
"env": { "PIXAZO_SUBSCRIPTION_KEY": "<your-key>" }
}
}
}Open Settings → MCP in Cursor; the server should appear after restart.
Continue
~/.continue/config.json → mcpServers array — same shape as Cursor.
Goose
~/.config/goose/config.yaml:
mcp_servers:
happy-horse:
type: stdio
command: npx
args: ["-y", "@pixazo-api/mcp-bridge", "happy-horse-mcp"]
env:
PIXAZO_SUBSCRIPTION_KEY: <your-key>Available MCPs
The bridge works with every Pixazo MCP. Just swap the slug in args[2]. Examples:
| Slug | Model |
|---|---|
| happy-horse-mcp | Happy Horse 1.0 (text/image/reference/video → video) |
| seedream-mcp | Seedream 5.0 Lite (text→image, image edit) |
| seedance-mcp | Seedance video |
| flux-mcp | Flux image generation |
| gpt-image-mcp | GPT image |
| ideogram-mcp | Ideogram |
| kling-mcp | Kling video |
| happy-horse-v2 | Happy Horse 2.0 (text/image/reference/video → video) |
You can register multiple MCPs in the same client config — give each a unique key under mcpServers.
Environment variables
| Var | Required | Default | Purpose |
|---|---|---|---|
| PIXAZO_SUBSCRIPTION_KEY | yes | — | Your Pixazo subscription key (get one at api-console.pixazo.ai/api_keys) |
| PIXAZO_GATEWAY_URL | no | https://gateway.pixazo.ai | Override the gateway base URL (for staging / local dev) |
| PIXAZO_DEBUG | no | 0 | Set to 1 to log every request/response on stderr |
Troubleshooting
| Symptom | Fix |
|---|---|
| PIXAZO_SUBSCRIPTION_KEY env var is not set | Add the env var to your client's env block in the MCP config — not as a system env var (most clients don't inherit shell env). |
| gateway returned 401 — your subscription key was rejected | Key is wrong, revoked, or doesn't have access to that MCP slug. Verify at api-console.pixazo.ai/api_keys. |
| gateway returned 404 | Slug is wrong. Convention is <model>-mcp (e.g. happy-horse-mcp, not happy-horse). |
| Tool list shows up but every call hangs | The MCP gateway uses Server-Sent Events; some MCP clients have issues with long-lived SSE responses for video models. Set PIXAZO_DEBUG=1 and inspect stderr. |
| npm ERR! 404 on first run | The package isn't published yet, or you're behind a corporate npm registry that doesn't proxy public npm. Run npm config get registry to check. |
How it works
┌─────────────────┐ stdin (JSON-RPC) ┌─────────────────────────┐
│ Your MCP │ ────────────────────► │ @pixazo-api/mcp-bridge │
│ client │ ◄──────────────────── │ (this package) │
│ │ stdout (JSON-RPC) └─────────────────────────┘
└─────────────────┘ │
▼ HTTPS POST + subscription-key header
┌──────────────────────────┐
│ gateway.pixazo.ai │
│ /<model>-mcp/mcp │
└──────────────────────────┘
│
▼
┌──────────────────────────┐
│ Pixazo gateway → │
│ upstream model service │
└──────────────────────────┘The bridge is a dumb pipe: it forwards line-delimited JSON-RPC from stdin to the HTTP MCP, parses the SSE response, and writes JSON-RPC payloads back to stdout. No model-specific logic — adding a new Pixazo MCP requires zero changes to the bridge.
License
MIT — see LICENSE.
