Introduction
TypeScript framework for MCP Apps on the 2026-07-28 stateless core.
bitmcp is a TypeScript compiler and runtime for official MCP Apps. It is not a general MCP toolkit.
A tool is a server function. A View is a predeclared, hashed HTML resource. Confirmations use MRTR. State uses handles, not sessions.
One folder, one app
src/tools/forecast/
tool.ts
view.tsx
actions.tsThat folder produces:
- A
tools/callhandler with text andstructuredContent - A hashed
ui://HTML resource for UI-capable hosts - Optional app-only backing tools hidden from the model
If the host has no UI, the tool still works. If the host has UI, the View renders. If the process restarts or the next request hits another replica, nothing breaks.
Degradation order
Always: text → MRTR → View.
Tools work in text-only hosts. Confirmations use MRTR, not iframe-only buttons. Views are never the only path for a side effect.
How bitmcp differs
- Official Apps shape: predeclared, content-hashed
ui://HTML. Not JSX from a tool handler. Not a JSON component tree. - Stateless core: per-request server factory. Handles, not sessions.
- File convention as compiler input: envelope fields are compiler output.
- Sugar over the protocol:
bitmcp/reactwraps@modelcontextprotocol/ext-apps.
Public packages
bitmcp: runtime, CLI, anddefineConfigbitmcp/react:useApp()for Viewsbitmcp/vite: compiler plugincreate-bitmcp: scaffold (--deploy node|vercel|cloudflare)
LLM-friendly docs
For the complete documentation index, see llms.txt. Markdown variants of every page are available by appending .md to the URL.