MCP
The Model Context Protocol server, the most differentiated, agent-facing surface in Handoff 2.
Handoff exposes a Model Context Protocol (MCP) server so an AI agent, Claude, Cursor, Windsurf, or anything else that speaks MCP, can read (and, in scoped places, write) the same design-system data as the UI and REST surfaces. This is the three-surfaces principle applied to agents: tokens, components, icons, design artifacts, pages, and change history are all reachable as tools, not just as pages or API routes.
Server identity
The server identifies itself as handoff, version 2.0.0:
new McpServer({ name: 'handoff', version: '2.0.0' }, { capabilities: { tools: {}, resources: {} } })The resources capability is there for MCP Apps, interactive,
UI-bearing tool results, not just plain text/JSON.
One endpoint, 56 tools, 12 categories
Everything is served from a single route, /api/mcp, over a stateless HTTP transport (no
SSE, no session affinity), see Route & transport for the details.
Fifty-six tools are registered (53 plain tools plus three MCP Apps),
organized into twelve categories, Context, Components, Tokens, Icons & Logos, Assets, Design
Artifacts, Design Workbench, Pages & Compositions, Previews, Documentation, Change Inquiry, and
Build & Sync, covered in full on the Tool catalog page. A handful of
tools aren't in the category map yet and fall into an "Other" bucket on a live registry.
Where to go next
- Route & transport: the endpoint, transport, and how project context gets hydrated on connect.
- Tool catalog: every tool, grouped by category, with its purpose and required scope.
- Authentication: workspace vs. registry auth, OAuth 2.1 flows, scopes.
- Onboarding:
mcp-init/mcp-token, connecting from Claude, Cursor, and OAuth-based connectors. - MCP Apps: the embedded component-preview UI.
- Stack guides: per-framework authoring rules an agent pulls before writing code.
Legacy-site equivalent: "Consumption by LLMs" (using_handoff/consumption_by_llms), re-homed
and substantially expanded here, since MCP didn't exist in v1.