Skip to main content
WebMCP is a proposed web standard. Native support is currently a Chromium preview behind a flag. For all other browsers, use @mcp-b/webmcp-polyfill or @mcp-b/global.
Chrome’s own documentation should be your first stop for preview status and rollout details: the WebMCP early preview post, the AI on Chrome overview, and the Model Context Tool Inspector.

Browser support matrix

BrowserNative modelContextNative modelContextTestingDeclarative APIPolyfill Support
Chrome 146+ (with flag)YesYesYesN/A
Chrome/Edge (default)NoNoNoYes
FirefoxNoNoNoYes
SafariNoNoNoYes

Chromium requirements

  • Version: Chrome 146.0.7672.0 or higher
  • Flag: chrome://flags/#enable-webmcp-testing set to Enabled
  • Relaunch: Required after enabling the flag

Enabling the flag

Via chrome://flags

  1. Open Chrome and navigate to chrome://flags/#enable-webmcp-testing
  2. Set the flag to Enabled
  3. Click Relaunch

Via command line

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --enable-experimental-web-platform-features \
  http://localhost:5174

Common launch flags

FlagPurposeUse Case
--enable-experimental-web-platform-featuresEnables all experimental web platform features including WebMCPDevelopment and testing
--enable-features=WebModelContextEnables only the Web Model Context featureTargeted testing
--user-data-dir=/tmp/chrome-testIsolated browser profileAvoiding conflicts with existing profile
--disable-extensionsDisables all browser extensionsDebugging polyfill-vs-native issues
--remote-debugging-port=9222Enables DevTools Protocol accessAdvanced debugging, @mcp-b/chrome-devtools-mcp
--headless=newHeadless modeCI and automation

Verification

JavaScript console

console.log("modelContext:", !!navigator.modelContext);
console.log("modelContextTesting:", !!navigator.modelContextTesting);

chrome://version

  1. Navigate to chrome://version
  2. Find the Command Line section
  3. Verify that your launch flags are present
For the deeper Chromium-specific notes we maintain locally, including source paths and test-focused launch setups, see CHROMIUM_FLAGS.md. For practical testing workflows, see Test Native and Polyfill.

Feature detection

Use this pattern to detect the native API and fall back to the runtime:
if (!navigator.modelContext) {
  await import("@mcp-b/global");
}

navigator.modelContext.registerTool({
  name: 'my-tool',
  description: 'Example tool',
  inputSchema: { type: 'object', properties: {} },
  execute: async () => ({ content: [{ type: 'text', text: 'ok' }] }),
});
For production use, @mcp-b/global handles detection automatically. If a native implementation exists, it leaves the core in place and layers MCP-B features on top. For the architectural reason that works, see Runtime Layering.

Security notes

The --no-sandbox flag disables critical security protections. Use it only in trusted CI environments.
  • Native WebMCP features are experimental and may change between Chromium versions.
  • Use an isolated user data directory for testing so you do not mix preview state with your regular browsing profile.
  • --enable-experimental-web-platform-features enables more than WebMCP.
For the current specification status, see Spec Status and Limitations. For the native-preview tutorial path, see Try the Native Chrome Preview.