bitHuman

Animated AI characters in your chat: short clips of a character saying your words, or a live talk.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,164Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (0.91% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "characters": {
      "url": "https://mcp.bithuman.ai/mcp"
    }
  }
}

Remote endpoints

https://mcp.bithuman.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_characters

List the bitHuman house characters that can speak. Each has an id (pass it as `character` to make_character_video or talk_to_character), a name, a short description, a picture URL and `talk` (true when talk_to_character is open for it). No arguments, free and read-only; one call per conversation is enough. Only these characters can speak: real people, photos and custom voices are not supported.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "characters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "talk": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "image_url"
        ]
      }
    },
    "make_your_own_url": {
      "type": "string"
    }
  },
  "required": [
    "characters"
  ]
}
🟡make_character_video(character, text)

Make a short video of one bitHuman house character saying `text` word for word, in its own voice. Returns video_url (an MP4 that plays inline and expires after 7 days), duration_seconds and share_url, labelled AI character. Example: {"character": "wise-pup", "text": "Welcome back! Ready for today's lesson?"}. Limits: `text` is 3 to 200 characters and at most 19 seconds when spoken (about 15 s is typical); one video at a time per user; 10 videos per user per UTC day; the same character and text again replays the earlier clip at once. Errors come back as isError with one sentence saying what to do: an unknown character (call list_characters), text too short or too long (rewrite it), personal information such as a phone number, email or street address (remove it), busy (retry in a minute), the daily limit (try again after 00:00 UTC), resting (try later). To hold a conversation in character, write each reply yourself and call this tool once per reply.

Input Schema

{
  "type": "object",
  "properties": {
    "character": {
      "type": "string",
      "enum": [
        "wise-pup",
        "pip-the-red-panda-barista",
        "shelly-tidewater",
        "gio-the-curious-giraffe-guide",
        "grumblewick",
        "bolt",
        "mochi",
        "sprocket",
        "rusty",
        "peanut",
        "yuki",
        "chef-waddles",
        "naps",
        "captain-axl",
        "toasty",
        "flicker",
        "mari"
      ],
      "description": "A character id from list_characters."
    },
    "text": {
      "type": "string",
      "minLength": 3,
      "maxLength": 200,
      "description": "The exact words the character says, 3 to 200 characters (at most 19 seconds of speech). No personal information."
    }
  },
  "required": [
    "character",
    "text"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "character": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "video_url": {
      "type": "string"
    },
    "poster_url": {
      "type": "string"
    },
    "duration_seconds": {
      "type": "number"
    },
    "label": {
      "type": "string"
    },
    "label_burned": {
      "type": "boolean"
    },
    "make_your_own_url": {
      "type": "string"
    },
    "share_url": {
      "type": "string"
    },
    "share_text": {
      "type": "string"
    },
    "talk": {
      "type": "boolean"
    }
  },
  "required": [
    "character",
    "video_url",
    "duration_seconds",
    "label",
    "make_your_own_url"
  ]
}
🟢talk_to_character(character)

Open a live voice conversation with one bitHuman house character in a player in the chat. The user presses Start and speaks through the microphone; the character answers out loud. A conversation lasts up to 60 seconds (max_seconds), then ends by itself; call again for another. Returns session_url: when the host shows no player, give the user that link. Example: {"character": "wise-pup"}. Needs a microphone in the user's browser. Errors come back as isError: an unknown character (call list_characters and use an id whose `talk` is true), resting (live conversations are off right now; make_character_video still works).

Input Schema

{
  "type": "object",
  "properties": {
    "character": {
      "type": "string",
      "enum": [
        "wise-pup",
        "pip-the-red-panda-barista",
        "shelly-tidewater",
        "gio-the-curious-giraffe-guide",
        "grumblewick",
        "bolt",
        "mochi",
        "sprocket",
        "rusty",
        "peanut",
        "yuki",
        "chef-waddles",
        "naps",
        "captain-axl",
        "toasty",
        "flicker",
        "mari"
      ],
      "description": "A character id from list_characters."
    }
  },
  "required": [
    "character"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "character": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "session_url": {
      "type": "string"
    },
    "agent_code": {
      "type": "string"
    },
    "max_seconds": {
      "type": "number"
    },
    "label": {
      "type": "string"
    },
    "make_your_own_url": {
      "type": "string"
    }
  },
  "required": [
    "character",
    "session_url",
    "max_seconds",
    "label"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools