Skip to main content
Start with the live WebMCP proposal and current browser support. Add MCP-B packages only for the compatibility, type inference, or extension behavior your application needs.

Choose in order

  1. Does the target browser provide the WebMCP behavior you need? Check WebMCP resources and status. If yes, you may not need a runtime package.
  2. Do you only need ambient types for the live proposal? Use the Community Group’s webmcp-types package.
  3. Do you need MCP-B compatibility types or schema inference? Use @mcp-b/webmcp-types.
  4. Do you need browser tool registration and discovery where native support is unavailable? Use @mcp-b/webmcp-polyfill.
  5. Do you need MCP bridge transport, listTools, prompts, resources, or direct MCP server access? Use @mcp-b/global.
  6. Do you only need React tool registration? Use usewebmcp.
  7. Do you need React prompt, resource, or MCP client/provider hooks? Use @mcp-b/react-webmcp. Prompt and resource hooks require @mcp-b/global; tool hooks work with native or polyfilled document.modelContext, and client/provider hooks use their configured MCP connection.

Package comparison

The two MCP-B runtime packages expose a descriptor-based executeTool() method that accepts serialized JSON. The live proposal currently uses object input. Feature-detect the method and follow the selected runtime’s reference for its implemented signature.

Continue with the selected path

How the layers relate

For the layering rationale, see Runtime Layering. WebMCP and MCP-B extensions describes the package boundary.