React hooks for Model Context Protocol (MCP) - Let AI agents like Claude, ChatGPT, Cursor, and Copilot control your React components
Version
Current release: v3.0.0 — aligned with the WebMCP v3 document-first API. Provider hooks register tools againstdocument.modelContext (the canonical v3 surface) while retaining a navigator.modelContext fallback for older preview runtimes.
When to use this package
- You want the full MCP-B feature set from React (tools, prompts, resources, sampling, elicitation).
- You want Zod v3 object-map support and Standard Schema v1 (e.g., Zod v4
~standard) in hook configuration. - You need client/provider hooks (
McpClientProvider,useMcpClient) in addition to browser-exposed tools.
- You only need strict-core
registerToolbehavior. Useusewebmcp. - You are not using a BrowserMcpServer-based runtime. Install
@mcp-b/globalfirst.
| Feature | Benefit |
|---|---|
| React-First Design | Hooks follow React patterns with automatic cleanup and StrictMode support |
| Type-Safe with Zod | Full TypeScript support with Zod schema validation for inputs/outputs |
| Two-Way Integration | Both expose tools TO AI agents AND consume tools FROM MCP servers |
| Execution State Tracking | Built-in loading, success, and error states for UI feedback |
| Works with Any AI | Compatible with Claude, ChatGPT, Gemini, Cursor, Copilot, and any MCP client |
document.modelContext to come from a browser-native implementation or from the MCP-B runtime that wraps the strict core with BrowserMcpServer.
React peer dependency: ^17.0.0 || ^18.0.0 || ^19.0.0.
Zod peer dependency (optional): ^3.25 || ^4.0.
usewebmcp instead.
For client functionality, you’ll also need:
document.modelContext API. Install @mcp-b/global or use a browser that implements the Web Model Context API.
Provider hooks register tools with document.modelContext.registerTool(tool, { signal }) and abort the controller on unmount. The hooks retain a navigator.modelContext fallback for older preview runtimes, but document.modelContext is the canonical v3 surface. On Chrome Beta 147 native (which ignores the second arg) cleanup cannot remove the tool. Install @mcp-b/global for spec-aligned behavior.
Quick Start - Provider (Registering Tools)
Quick Start - Client (Consuming Tools)
API Overview
Provider Hooks
| Hook | Description |
|---|---|
useWebMCP(config, deps?) | Register a tool with full control over behavior and state |
useWebMCPContext(name, description, getValue) | Simplified hook for read-only context exposure |
Client Hooks
| Hook / Component | Description |
|---|---|
McpClientProvider | Provider component managing an MCP client connection |
useMcpClient() | Access client, tools, connection status, and capabilities |
Zod Version Compatibility
This package supports Zod 3.25.76+ (3.x only).Documentation
For full API reference, output schemas, memoization patterns, migration guide, best practices, and complete examples, see the React WebMCP Guide.Related Packages
@mcp-b/global- W3C Web Model Context API polyfill (required for provider hooks)@mcp-b/transports- Browser-specific MCP transports@mcp-b/chrome-devtools-mcp- Connect desktop AI agents to browser toolsusewebmcp- React hooks for strict core WebMCP API only
