Claude & Cursor (MCP)

Let Claude, Cursor and other MCP clients drive bitHuman as tools: create agents, speak, embed, render. The server is built into the CLI (bithuman mcp).

bithuman mcp is a Model Context Protocol server built into the CLI. An MCP client such as Claude Code, Claude Desktop or Cursor can then call bitHuman as tools: “make an avatar that explains our pricing, then give me an embed token” becomes a chain of tool calls.

DetailExpression 2Essence 2
Create agentsgenerate_agent with model: "expression-2"generate_agent with model: "essence-2"
Render locallyrender toolrender tool

Before you start

  • The CLI on macOS (Apple silicon) or Linux. On Windows or in a hosted agent, call the REST API directly.
  • An MCP client.

Install

The server is the CLI; there is nothing else to install.

curl -fsSL https://install.bithuman.ai | sh
bithuman mcp tools      # prints the tool list and exits

Authenticate

Run bithuman login once, or set BITHUMAN_API_SECRET in the client’s configuration. The server reads the same credential as the CLI and never logs it.

First frame

Register the server with your client.

Claude Code:

claude mcp add bithuman -- bithuman mcp

Claude Desktop, Cursor (~/.cursor/mcp.json) and other clients:

{"mcpServers": {"bithuman": {"command": "bithuman", "args": ["mcp"]}}}

If you have not run bithuman login, add "env": {"BITHUMAN_API_SECRET": "<your API secret>"} to that entry.

Then ask: “Use the bithuman tools to validate my API secret.” The client calls validate_api_secret and reports {"valid": true}.

Integrate into your app

Ask in plain language; the client chooses and chains the tools.

AskTools it calls
”Create an Expression 2 avatar from this image, wait until it is ready, and give me an embed token.”generate_agent, get_agent_status, create_embed_token
”List the female voices and read this with F1.”list_voices, text_to_speech
”What is my credit balance, and what did I spend this week?”get_credit_balance, get_usage
”Register a webhook at https://example.com/hooks and send it a test event.”create_webhook, test_webhook
”Download wise-pup and render this WAV to an MP4.”pull, render

Tools

ToolWhat it does
version, doctorCLI version and install health (local)
inspect_model, list_showcase, pull, renderInspect, list, download and render avatars on this machine (local)
validate_api_secretCheck the API secret (free)
get_platform_statusService status from status.bithuman.ai
get_credit_balance, get_usageBalance, plan and usage history
list_voices, text_to_speechVoices, and speech saved as a WAV (free)
generate_agent, get_agent_statusCreate an agent from an image (spends credits; always pass model), then poll until ready or failed
get_agent, list_agents, update_agent_prompt, delete_agentManage your agents
agent_speak, add_agent_contextMake a live agent speak, or give it background knowledge
get_dynamics, generate_dynamicsList or create gestures (spends credits)
create_embed_tokenA one-hour token to embed an agent on a website
upload_fileUpload an asset and get a URL
create_webhook, list_webhooks, delete_webhook, test_webhookWebhooks

Talking video, adding a model to an agent and knowledge bases have no tool; use the REST API.

Platform notes

  • Agent creation is asynchronous: a second-generation agent takes about 2–2.5 hours. Prices are on pricing.
  • Errors come back as structured objects with the HTTP status and a link to Errors.

Troubleshooting

SymptomCauseFix
No bithuman tools in the clientbithuman is not on the client’s PATHuse the full path to the binary in the config, then restart the client
validate_api_secret returns valid: falseno or wrong credentialbithuman login, or set BITHUMAN_API_SECRET in the config
A created agent uses a first-generation modelmodel was not passedask for essence-2 or expression-2 explicitly
422 when creating an Essence 2 agentthe image is not a photoreal personuse a photo, or choose Expression 2

Reference