bitHuman docsBLOCK
Public — source for docs.bithuman.ai (Astro Starlight + auto-generated OpenAPI reference). [public]
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
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. - **Pla
37e0d6b1479bOBSERVED · 2026-10-01Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add public-docs --env BITHUMAN_API_SECRET=${BITHUMAN_API_SECRET} --env GH_TOKEN=${GH_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} --env VERCEL_OIDC_TOKEN=${VERCEL_OIDC_TOKEN} -- npx -y [email protected]{
"mcpServers": {
"public-docs": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"BITHUMAN_API_SECRET": "${BITHUMAN_API_SECRET}",
"GH_TOKEN": "${GH_TOKEN}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"VERCEL_OIDC_TOKEN": "${VERCEL_OIDC_TOKEN}"
}
}
}
}Exposed tools (6)
4 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
Guides | write | Create an avatar, give it a persona and a voice, then follow a recipe. |
Platforms | read | Every platform bitHuman runs on, and where the avatar renders on each. |
Quickstart | write | Talk to a live avatar, get an API secret, and run your first avatar on the platform you choose. |
Resources | read | Downloads, the changelog, news, help, legal and files for AI agents. |
fetch | read | Fetch one docs page as markdown by the id |
search | read | Search docs.bithuman.ai (bitHuman real-time avatar SDKs, the REST API, deployment options, models, pricing). |
Trust audit
BLOCKgrade F · trust 47/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (11 observation(s))
- Shell
- declared (13 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
const spec = yaml.load(readFileSync(join(ROOT, "src/openapi/bithuman.yaml"), "utf8"));
return yaml.load(readFileSync(join(process.cwd(), "src/openapi/bithuman.yaml"), "utf8"));
return eval(src.slice(i, end + 1));
root = importlib.import_module(ROOT_PACKAGE)
module = importlib.import_module(name)
os.path.dirname(importlib.import_module(ROOT_PACKAGE).__file__),
module = importlib.import_module(ROOT_PACKAGE)
root = importlib.import_module(ROOT_PACKAGE)
console.log(`::error::MUTATIONS.${arm}.token ${JSON.stringify(m.token)} is not part of what the mutation writes (${JSON.stringify(m.to)}) — the --mutate arm could never see its own symbol in a rejecticonsole.log(` ok ${arm}: the rejection must name ${JSON.stringify(m.token)}, which the mutation really writes`);const base = `http://127.0.0.1:${server.address().port}`;await pf.options({ basePath: `http://127.0.0.1:${srv.address().port}/pagefind/`, baseUrl: "/" });const base = `http://127.0.0.1:${server.address().port}`;token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
token: "fetchRenamedByTheSdk",
token: "createRenamedByTheSdk",
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
poster.avif
poster.avif
poster.avif
poster.avif
poster.avif
import { QUERIES } from "../../scripts/search-queries.mjs";const INDEX = join(import.meta.dirname, "../../dist/docs-mcp-index.json");
assert.equal(doc.text, readFileSync(join(import.meta.dirname, "../../dist/platforms/python.md"), "utf8"));
Gates applied: no_behavioural_pass.
37e0d6b1479bfull audit observations/trust-audit/mcp-server/bithuman-product__docs.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-01 | 37e0d6b1479b | BLOCK | F | 47 | first audit |
Questions
What is the bitHuman docs MCP server?
Public — source for docs.bithuman.ai (Astro Starlight + auto-generated OpenAPI reference). [public]
What tools does bitHuman docs expose?
6 in total: 4 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is bitHuman docs safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (47/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does bitHuman docs need?
It reads BITHUMAN_API_SECRET, GH_TOKEN, GITHUB_TOKEN and VERCEL_OIDC_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How current is this page?
The grade is for one exact copy of the source (37e0d6b1479b), read on 2026-10-01. The repository is watched and re-audited when it changes.