MCP

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.

On this page