# Ensure the workspace is properly built:pnpm build:shared # Build internal shared packagespnpm build:apps # Build all applications# Or run from the root with workspace support:pnpm dev
Port conflicts
Default ports used by WebMCP:
Main dev server: 5173-5174
Extension dev server: 3000
Native host: 12306
Change ports if conflicts occur with your existing services.
# Run in dev modepnpm --filter @mcp-b/extension dev
Make sure you’ve loaded the unpacked extension from:
./apps/extension/.output/chrome-mv3
TypeScript errors
Common TypeScript issues:
// Ensure proper importsimport type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";// Use .js extensions for MCP SDK importsimport { TabServerTransport } from "@mcp-b/transports";
# Create .env filecp apps/native-server/.env.example apps/native-server/.env# Edit with your extension IDecho "DEV_EXTENSION_ID=your-extension-id" > apps/native-server/.env# Rebuild and restartpnpm buildpnpm dev
Registration timing: Ensure @mcp-b/global is imported
Syntax errors: Check browser console for JavaScript errors
Tool registration: Verify tools are properly registered
Debug with logging:
// After registering a toolconsole.log('Tool registered');// Check if navigator.modelContext is availableif ('modelContext' in navigator) { console.log('WebMCP is loaded');}
// Check if WebMCP is loadedif (window.__mcpBridge) { console.log('MCP Server:', window.__mcpBridge.server); console.log('Registered tools:', window.__mcpBridge.tools);}// Check navigator.modelContext availabilityif ('modelContext' in navigator) { console.log('navigator.modelContext is available');} else { console.error('navigator.modelContext not found - ensure @mcp-b/global is imported');}
Debug mode may expose sensitive information in console logs. Only use in development.