PluginWorld
Bi

bitHuman docs

MCP✓ SPEC VERIFIED✓ REGISTRY

The bitHuman docs over MCP: two read-only tools, search and fetch; it needs no account and no key.

@bithuman-product · v1.0.0 · Apache-2.0 · updated yesterday

SECURITY

A+

SCORE

78

STARS

▲ 0

PLUG IN

claude mcp add --transport http bithuman-docs https://docs.bithuman.ai/docs-mcp

README

bitHuman developer docs

Source for docs.bithuman.ai — bitHuman's developer platform. A custom Astro 6 site styled after developers.openai.com (semantic design tokens, light/dark, Shiki code, brand coral #FF5757 + Roboto). The API reference at /api/reference is rendered from the OpenAPI spec at build time, with no third-party script.

Local dev

nvm use            # Node 22+ (Astro 6); see .nvmrc
npm install
npm run dev        # http://localhost:4321
npm run build      # static output -> dist/

Structure

src/
  content/docs/          The markdown pages; the file path is the URL
  config/nav.ts          Sections, sidebar groups, header, Resources menu, footer
  data/                  One source per fact: versions, pricing, platforms, demo avatars, offline copy
  layouts/               Base (head, nav, footer) and DocLayout (sidebar, chips, Next, pager)
  components/            Card, Chip, LiveDemo, CodeTabs, QuickstartPicker, PlatformSwitcher and the rest of the design system
  scripts/               The small browser scripts: tab and platform state, the explorer, the calculator, filters
  lib/                   Build-time helpers: data blocks, the OpenAPI reader, the curl → Python and Node generator
  styles/                tokens.css (light/dark tokens), components.css, prose.css
  pages/                 The home page, /start, the hubs, llms files and markdown twins
  openapi/bithuman.yaml  OpenAPI spec -> synced to public/api/openapi.yaml
scripts/                 The gates ci/run-local.sh runs, and the generators (redirects, versions, pricing)
STYLE.md                 The style guide: voice, terminology, claims, templates, budgets

Information architecture

Organized by the developer's question. The header is Get started · Platforms · Deploy · Models · Build · API · Performance, then Resources.

  • Get started (/start): the quickstart, the API secret.
  • Platforms (/platforms): iOS & iPadOS, Android, Web, Python, the CLI, LiveKit, REST, and the SDK references.
  • Deploy (/deploy): the bitHuman cloud, your servers, on the device, CPU only (no GPU), fully offline, pricing, and the use-case guides (/deploy/use-cases).
  • Models (/models): Essence 2, Expression 2, the first generation, how it works, the avatar file.
  • Build (/build): create your own avatar, persona, voices, recipes, and the example gallery (/examples).
  • API (/api), Performance (/performance), Resources (/resources).

A page that moves gets a row in scripts/ia-map.json; node scripts/gen-redirects.mjs regenerates the redirects in vercel.json, and ci/run-local.sh checks them before merging (--served after each deploy).

API reference

The reference at /api/reference is generated from src/openapi/bithuman.yaml (OpenAPI 3.1) — npm run sync-openapi copies it to public/api/openapi.yaml (runs automatically on dev/build). Edit the spec; no hand-written endpoint pages.

Deploy

GitHub push → Vercel build (project public-docs) → preview URL. DNS for docs.bithuman.ai is swapped to this project only once the rebuild is approved.

★ A push can succeed while the site keeps serving the old build

Verify a publish by fetching the live HTML, never by reading the Vercel status. This has bitten us: the push lands, the dashboard goes green, the deployment is marked Ready — and docs.bithuman.ai keeps serving the previous build. A green status says a build finished; it does not say the domain is pointing at it. The two failure shapes we have actually seen are an alias that never moved to the new deployment, and a cached HTML response served ahead of it.

So the last step of publishing is not git push. It is:

# 1. Note the commit you pushed.
git rev-parse --short HEAD

# 2. Fetch the LIVE page — cache-busted — and grep for a string that exists
#    only in the new build. Pick a distinctive sentence from your own diff.
curl -sS "https://docs.bithuman.ai/models/essence-2?cb=$(date +%s)" \
  | grep -c "head-upsample"

# 3. Zero means the site is still serving the old build. Investigate the alias
#    before telling anyone the change is live.

Do the same for /llms.txt and /sitemap.xml when the change adds or removes a page — they are generated at build time and are the quickest signal that the build you are looking at is the build you pushed.

A page that carries a TKTK marker is not publishable at all — ci/run-local.sh is red until the marker is resolved (scripts/check-placeholders.mjs), and drafts/ holds page-sized text whose subject is not yet true. See drafts/README.md.

SIMILAR PLUGINS