Skip to main content
Unlock Desktop AI Integration: The native host is a core feature that bridges your browser’s WebMCP tools to desktop AI assistants. Use browser-based tools directly from Claude Code, Claude Desktop, or any MCP-compatible client!
The native host bridges your browser’s WebMCP tools to local MCP clients like Claude Code and Claude Desktop. This allows AI assistants running on your desktop to interact with tools you’ve registered on your websites.
Prerequisites:
  • MCP-B Chrome Extension installed from Chrome Web Store
  • Node.js 18+ installed
  • A website with WebMCP tools registered

How It Works

The native host acts as a proxy server that:
  1. Runs locally on your machine (default port: 12306)
  2. Communicates with the MCP-B Chrome extension
  3. Exposes browser tools to desktop MCP clients via HTTP
  4. Respects your browser’s authentication (cookies, sessions)

Installation

Step 1: Install the Native Server

Install the native server globally via npm:
The native server must be installed globally to make the @mcp-b/native-server command available system-wide.

Step 2: Verify Installation

Check that the installation was successful:

Starting the Native Host

Basic Usage

Start the native server with default settings:
You should see output like:
Keep this terminal window open while using the native host. Closing it will stop the server.

Configuration Options

The native server supports several configuration options:

Running as a Background Service

For continuous use, you can run the native server as a background service.

Connecting to Claude Code

Claude Code is Anthropic’s command-line AI assistant that supports MCP.

Step 1: Configure Claude Code

Add the native host to your Claude Code MCP configuration:
Edit ~/.config/claude/mcp.json:

Step 2: Start Claude Code

Start Claude Code in your project directory:

Step 3: Verify Connection

Once Claude Code starts, ask it to list available tools:
You should see tools from any websites you have open with the MCP-B extension active.
Open your website in Chrome with the MCP-B extension enabled before asking Claude Code to use tools. The native host can only access tools from active browser tabs.

Connecting to Claude Desktop

Claude Desktop is Anthropic’s desktop application that supports MCP.

Step 1: Configure Claude Desktop

Add the native host to Claude Desktop’s MCP settings:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

Step 2: Restart Claude Desktop

Restart Claude Desktop to load the new configuration:
  1. Quit Claude Desktop completely
  2. Reopen Claude Desktop
  3. Wait a few seconds for MCP connections to initialize

Step 3: Test the Connection

In Claude Desktop, ask about available tools:
Claude should list tools from your open browser tabs.

Verifying the Setup

Check Native Host Status

Verify the native host is running and accepting connections:
Expected response:

Check Extension Connection

Verify the MCP-B extension is connected:
  1. Open Chrome and click the MCP-B extension icon
  2. Go to the “Settings” tab
  3. Check for “Native Host: Connected” status
  4. If disconnected, ensure the native server is running

Test Tool Execution

Try calling a tool from your MCP client:
1

Open a website with WebMCP tools

Navigate to a site with tools registered (e.g., the MCP-B demo)
2

Ask Claude to use a tool

In Claude Code or Claude Desktop:
3

Verify execution

  • Check that Claude successfully calls the tool
  • Verify the tool executes in the browser tab
  • Confirm Claude receives the tool’s response

Debugging Issues

Native Server Won’t Start

Error: EADDRINUSE: address already in use :::12306Solution: Another process is using port 12306
Error: @mcp-b/native-server: command not foundSolution: Global npm modules not in PATH
Error: Extension not connected in server logsSolution: Extension ID mismatch or extension not installed
  1. Verify the MCP-B extension is installed from the Chrome Web Store
  2. Check the extension is enabled at chrome://extensions/
  3. Restart Chrome
  4. Restart the native server

MCP Client Can’t Connect

Error: ECONNREFUSED when Claude tries to connectChecklist:
  1. Native server is running: curl http://127.0.0.1:12306/health
  2. Port matches config: Check both server and client config
  3. Firewall not blocking: Allow localhost connections
  4. Config file is valid JSON: Validate with a JSON linter
Issue: Claude connects but can’t see any toolsChecklist:
  1. Browser tabs with WebMCP tools are open
  2. MCP-B extension is active (click icon to check)
  3. Tools are registered: Check extension “Tools” tab
  4. Native server is connected to extension: Check server logs
Issue: Claude sees tools but execution failsDebug steps:
  1. Check browser console for errors:
    • Open DevTools (F12)
    • Look for errors when tool is called
  2. Check native server logs:
  3. Verify tab is still active:
    • If you closed or navigated away from the tab, tools won’t work
    • Tools are scoped to specific pages
  4. Test directly in extension:
    • Click MCP-B extension icon
    • Go to “Tools” tab
    • Manually call the tool
    • Check for errors in extension popup

Configuration Issues

Issue: Claude can’t find the MCP configuration fileSolution: Create the directory structure
Error: Claude fails to load configSolution: Validate your JSON
Correct format:
Issue: Connection fails due to incorrect URLCorrect formats:
  • http://127.0.0.1:12306/mcp
  • http://localhost:12306/mcp
  • http://127.0.0.1:12306 (missing /mcp path)
  • https://127.0.0.1:12306/mcp (https not supported)
  • ws://127.0.0.1:12306/mcp (wrong protocol)

Security Considerations

The native host provides access to browser tools that can perform actions on your behalf. Only use it on trusted networks and with tools you control.

Best Practices

The native host should only listen on localhost (127.0.0.1), not on external network interfaces. This is the default behavior.Avoid:
Ensure your firewall allows localhost connections but blocks external access:
  • Allow: 127.0.0.1:12306 → localhost only
  • Block: 0.0.0.0:12306 → all interfaces
Only expose tools that you would be comfortable executing through your browser’s UI. Tools have the same permissions as your browser session.Review tools carefully:
  • Check what data they can access
  • Verify what actions they can perform
  • Ensure proper authentication checks
Keep the native server logs visible or check them regularly to monitor tool execution:
Watch for:
  • Unexpected tool calls
  • Failed authentication attempts
  • Unusual patterns of usage

Advanced Usage

Multiple Extension Support

If you’re testing with both the Chrome Web Store extension and a development build:
Disable one version to avoid port conflicts. Both versions will try to connect to the same native host.
  1. Go to chrome://extensions/
  2. Disable the version you’re not using
  3. Restart Chrome
  4. Restart the native server

Custom Extension IDs

For development builds with custom extension IDs, configure the native server:

Monitoring and Logging

Enable detailed logging for debugging:

Health Monitoring

Monitor the native host health with automated checks:

Next Steps

Claude Code Integration

Deep dive into using Claude Code with WebMCP

Development Guide

Learn how to develop WebMCP tools

Examples

Explore complete examples and patterns

Troubleshooting

More debugging tips and solutions

Getting Help

If you encounter issues not covered here:
1

Check server logs

Run with verbose logging: @mcp-b/native-server --verbose
2

Test health endpoint

Verify server is running: curl http://127.0.0.1:12306/health
3

Check GitHub Issues

Search for similar problems: WebMCP Issues
4

Join Discord

Ask the community: WebMCP Discord
When reporting issues, include:
  • Native server version (npm list -g @mcp-b/native-server)
  • MCP-B extension version
  • Operating system and version
  • MCP client (Claude Code/Desktop) and version
  • Relevant log output with --verbose flag