For developers & vibe coders

Ship video from your terminal.

Your agent writes the ad. You post the MP4.

Connect the Hubfluencer MCP to your coding agent and turn a single prompt into a finished, post-ready ad — or bring your own footage, product shots and logo for the agent to edit in. You keep the credits and access tokens in the app; the agent just makes the video.

Tokens live in Settings → Access tokens. Prepaid credits — no crypto, nothing to mine.

agent session
> Use Hubfluencer to make a 15s ad for my candle brand.

make_video({ prompt: "...", save_path: "./candle-ad.mp4" })
→ { slug: "...", kind: "editor", terminal: true, ready: true,
    video_url: "https://...mp4 (presigned, ~24h)",
    saved_to: "./candle-ad.mp4" }

How it works

Three steps. One prompt. One MP4.

Connect your account

In the app, buy credits and create an access token (Settings → Access tokens, Generate videos scope). Or run npx -y @hubfluencer/mcp login to connect with no copy-paste.

Add the MCP

Register the Hubfluencer MCP server with your agent — one command, or a small config snippet.

npx -y @hubfluencer/mcp

Run this in a normal terminal — not inside a Claude or agent session, where a nested agent runs the line as a prompt and the server never gets registered.

Prompt your agent

Say “Use Hubfluencer to make a 15s ad for my candle brand” and get an MP4 back.

Creating a draft is free. Rendering a short costs 15 credits; multi-scene editor ads cost more.

Quickstart

Wire it up to your agent.

Pick your tool. Each kit registers the same @hubfluencer/mcp server and ships a ready-made skill so the agent knows how to drive it.

Add the MCP — one command

terminal
claude mcp add --transport stdio --env HUBFLUENCER_API_TOKEN=YOUR_TOKEN hubfluencer -- npx -y @hubfluencer/mcp

All flags go before the server name; -- separates it from the command Claude Code runs. Use --scope project to write the server into .mcp.json at the repo root.

…or a config file

.mcp.json
{
  "mcpServers": {
    "hubfluencer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@hubfluencer/mcp"],
      "env": {
        "HUBFLUENCER_API_TOKEN": "${HUBFLUENCER_API_TOKEN}"
      }
    }
  }
}

Teach the agent

Drop the skill at .claude/skills/hubfluencer-create/SKILL.md (project, committed) or ~/.claude/skills/… (personal). The directory name becomes the /hubfluencer-create command.

Download the kit

Connect first: create a Generate-videos-scope token in the app and export it as HUBFLUENCER_API_TOKEN, or run npx -y @hubfluencer/mcp login. Never paste a token into a committed file — use ${HUBFLUENCER_API_TOKEN} expansion.

Add the MCP — one command

terminal
codex mcp add hubfluencer --env HUBFLUENCER_API_TOKEN=YOUR_TOKEN -- npx -y @hubfluencer/mcp

…or a config file

~/.codex/config.toml
[mcp_servers.hubfluencer]
command = "npx"
args = ["-y", "@hubfluencer/mcp"]

[mcp_servers.hubfluencer.env]
HUBFLUENCER_API_TOKEN = "YOUR_TOKEN"
# Optional:
# HUBFLUENCER_BASE_URL = "https://hubfluencer.com"
# HUBFLUENCER_OUTPUT_DIR = "/absolute/path/where/mp4s/may/be/written"

Restart Codex after editing config.toml. Manage with codex mcp list / get / remove.

Teach the agent

Install the skill at ~/.codex/skills/hubfluencer-create/SKILL.md (personal) or .codex/skills/… (project). For always-on guidance, paste the AGENTS.md section into ~/.codex/AGENTS.md or the repo root.

Download the kit

Connect first: create a Generate-videos-scope token in the app, or run npx -y @hubfluencer/mcp login. If you logged in, omit the env block entirely — the server reads the saved token automatically.

Add the MCP — config only

OpenCode has no mcp add command. Hand-edit the JSON config. Note: type is local (not stdio), and the key is environment (not env).

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hubfluencer": {
      "type": "local",
      "command": ["npx", "-y", "@hubfluencer/mcp"],
      "enabled": true,
      "environment": {
        "HUBFLUENCER_API_TOKEN": "YOUR_ACCESS_TOKEN"
      }
    }
  }
}

Goes in opencode.json (project root) or ~/.config/opencode/opencode.json. Restart OpenCode after editing.

Teach the agent

OpenCode reads a plain-Markdown AGENTS.md at the project root (or ~/.config/opencode/AGENTS.md). Drop the Hubfluencer usage section in there.

Download the kit

Connect first: paste a Generate-videos-scope token as HUBFLUENCER_API_TOKEN in the environment block, or run npx -y @hubfluencer/mcp login and drop the block entirely.

Add MCP support, then the server

Pi has no native MCP — install the pi-mcp-adapter extension, then drop an mcp.json config.

terminal
pi install npm:pi-mcp-adapter
~/.pi/agent/mcp.json
{
  "mcpServers": {
    "hubfluencer": {
      "command": "npx",
      "args": ["-y", "@hubfluencer/mcp"],
      "env": {
        "HUBFLUENCER_API_TOKEN": "${HUBFLUENCER_API_TOKEN}"
      }
    }
  }
}
Heads up: Pi MCP support comes from a community extension, not a first-party feature — the adapter's field names could drift between versions, so verify against the pi-mcp-adapter README. A fully-native alternative is to ship a Pi Skill that drives the REST API with bash + curl.

Teach the agent

Copy SKILL.md to ~/.pi/agent/skills/hubfluencer-create/SKILL.md (global) or .pi/skills/hubfluencer-create/SKILL.md (project). Add AGENTS.md to the project root as the always-on pointer.

Download the kit

Tool reference

What the agent can call.

Tool What it does Credits
make_video One-shot: prompt in, finished MP4 out. Creates, generates, polls and downloads. 15+
create_short Create a short draft from a prompt. 0
generate_short Render a short draft. 15
create_editor_ad Create a multi-scene editor ad draft for story prompts. 0
upload_video Upload your own video clip and drop it onto the timeline as a scene. 0
set_product Attach your product photo so it features across the AI scenes. 0
set_logo Overlay your brand logo on the finished video. 0
set_closing_image Set a custom end-card image — upload one or reuse the product shot. 0
get_status Check a project's current stage / status. 0
wait_for_completion Poll until a render finishes. Call again on terminal:false. 0
download_result Download the finished MP4 from its presigned (~24h) URL. 0
list_renders List every render version with its status and download URL. 0
retry_render Re-run a failed render from its saved snapshot. 0
list_voices List available voice-over voices. 0
get_credits Read the current credit balance before spending. 0
list_projects List the account's recent video projects. 0

make_video is the one-shot path. A short render is 15 credits; multi-scene editor ads cost more — preflight with GET /api/editor/:slug/autopilot/cost.

Bringing your own media is free: upload_video drops your footage onto the timeline, and set_product / set_logo / set_closing_image add your brand. Beyond this curated set, the MCP also exposes the full granular editor — scenario, per-scene prompts, narration, voice and music — so the agent can direct an ad end to end. See the @hubfluencer/mcp tool list for everything.

Auth & credits

Prepaid credits, scoped tokens.

You buy credits and create access tokens in the app. Nothing crypto here — just a balance and a bearer token. The agent spends; you stay in control.

Access tokens

Created in the app under Settings → Access tokens. The agent scope is labelled “Generate videos” = video:generate + video:read. Agent tokens never get account:admin.

Environment variables the server reads:

  • HUBFLUENCER_API_TOKEN — required (unless logged in)
  • HUBFLUENCER_BASE_URL — optional, default https://hubfluencer.com
  • HUBFLUENCER_OUTPUT_DIR — optional, confines where MP4s may be written

Connect with no copy-paste

Run npx -y @hubfluencer/mcp login. It prints a URL and a short code; you approve the connection in the signed-in app. A scoped token is saved to ~/.hubfluencer/credentials.json and the server picks it up automatically — so you can omit HUBFLUENCER_API_TOKEN entirely.

terminal
npx -y @hubfluencer/mcp login

The agent never invents a token and never echoes one in its output.

Failure handling

  • 402 — credits_insufficient: report required vs available, then stop (no loop).
  • 409 — already running: keep polling, do not restart.
  • 403 — insufficient_scope: the token lacks video:generate.

Credits

  • Create a draft — 0 credits
  • Render a short — 15 credits
  • Multi-scene editor ad — more (preflight the cost)

Out of scope

Publishing to TikTok / Instagram needs a human-linked social account. The agent never auto-publishes — it returns the finished MP4 plus a ready-to-paste caption so you post it yourself.

Direct REST — no MCP

Prefer raw HTTP? Go for it.

Base URL is https://hubfluencer.com, everything lives under /api, and you authenticate with Authorization: Bearer <token>. A short is a two-call path: create, then generate, then poll until the stage is video_ready.

Read the API reference.

Every external endpoint, with parameters and example responses — no token needed to read it. The raw OpenAPI spec is linked from there too.

shorts.sh
# 1. Create the draft (0 credits) — response includes the slug
curl -X POST https://hubfluencer.com/api/shorts \
  -H "Authorization: Bearer $HUBFLUENCER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_prompt": "15s ad for my candle brand"}'

# 2. Start the render (15 credits)
curl -X POST https://hubfluencer.com/api/shorts/SLUG/generate \
  -H "Authorization: Bearer $HUBFLUENCER_API_TOKEN"

# 3. Poll until stage == "video_ready", then read latest_render.video_url
curl https://hubfluencer.com/api/shorts/SLUG \
  -H "Authorization: Bearer $HUBFLUENCER_API_TOKEN"