{"id":18379,"library":"fsb-mcp-server","title":"FSB MCP Server","description":"FSB MCP Server (v0.7.3) is a Node.js server that bridges the Model Context Protocol (MCP) to the FSB Chrome Extension, enabling AI agents (Claude, Cursor, Windsurf, etc.) to control a browser across four modes: manual, visual session, autopilot, and agent. Released under MIT license with active development (multiple releases per month), it offers 62+ tools for fine-grained browser automation, self-documenting tool descriptions, cookie consent auto-dismiss, site-aware search, and vault tools for secure credential access. Unlike Puppeteer-based solutions, it uses a Chrome extension for direct interaction with the user's existing browser session, preserving login state and avoiding remote debugging protocol complexities.","status":"active","version":"0.7.3","language":"javascript","source_language":"en","source_url":"https://github.com/lakshmanturlapati/FSB","tags":["javascript","mcp","browser-automation","chrome","fsb","model-context-protocol","ai-agent","typescript"],"install":[{"cmd":"npm install fsb-mcp-server","lang":"bash","label":"npm"},{"cmd":"yarn add fsb-mcp-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add fsb-mcp-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Provides the MCP server infrastructure and protocol handling for tool registration and transport.","package":"@modelcontextprotocol/sdk","optional":false},{"reason":"Optional dependency for launching a separate Chrome instance if the extension is not available; fallback for headless scenarios.","package":"puppeteer-core","optional":true}],"imports":[{"note":"Package is ESM-only since v0.3.0. CommonJS require() will fail with ERR_REQUIRE_ESM.","wrong":"const FSBServer = require('fsb-mcp-server')","symbol":"FSBServer","correct":"import { FSBServer } from 'fsb-mcp-server'"},{"note":"createServer is a named export, not default. Default export is undefined.","wrong":"import createServer from 'fsb-mcp-server'","symbol":"createServer","correct":"import { createServer } from 'fsb-mcp-server'"},{"note":"FSBConfig is a TypeScript type-only export. Use import type to avoid runtime errors.","wrong":"import { FSBConfig } from 'fsb-mcp-server'","symbol":"FSBConfig","correct":"import type { FSBConfig } from 'fsb-mcp-server'"}],"quickstart":{"code":"import { createServer } from 'fsb-mcp-server';\n\nconst server = createServer({\n  transport: 'stdio',\n  port: 7225,\n  httpPort: 7226,\n  extensionUrl: 'ws://localhost:7225',\n});\n\nawait server.start();\nconsole.log('FSB MCP Server running on stdio');\n\n// Or with Streamable HTTP:\n// const httpServer = createServer({ transport: 'http', httpPort: 7226 });\n// await httpServer.start();\n// console.log('HTTP MCP endpoint at http://127.0.0.1:7226/mcp');","lang":"typescript","description":"Creates and starts an MCP server connected to the FSB Chrome Extension via stdio or HTTP transport."},"warnings":[{"fix":"Update consuming projects to use ESM: add \"type\": \"module\" to package.json, or use import() instead of require().","message":"Breaking change: v0.3.0 switched from CommonJS to ESM-only exports. Requires Node >= 18 and \"type\": \"module\" in package.json, or use dynamic import().","severity":"breaking","affected_versions":">=0.3.0"},{"fix":"Use createServer() instead of new FSBServer(). FSBServer constructor is deprecated and may be removed.","message":"Breaking change: v0.3.0 renamed the main export from McpServer to FSBServer; createServer() was introduced in v0.4.0 as the recommended way to instantiate.","severity":"breaking","affected_versions":">=0.3.0 <0.4.0"},{"fix":"Replace `new FSBServer(opts)` with `createServer(opts)`.","message":"FSBServer constructor is deprecated since v0.4.0. Use createServer() factory function instead.","severity":"deprecated","affected_versions":">=0.4.0"},{"fix":"Pass `transport: 'http'` and `httpPort: 7226` to createServer for HTTP mode.","message":"The default transport is stdio; to use HTTP/Streamable HTTP, you must explicitly set transport to 'http'. The httpPort option is ignored in stdio mode.","severity":"gotcha","affected_versions":">=0.4.0"},{"fix":"Ensure the FSB Chrome Extension is installed and the browser is running before starting the MCP client.","message":"If the FSB Chrome Extension is not installed or not connected, the server will start but all browser automation tools will fail with errors like 'Extension not connected'. The server does not auto-launch Chrome.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use dynamic import: `const { createServer } = await import('fsb-mcp-server');` or switch your project to ESM by adding `\"type\": \"module\"` to package.json.","cause":"Attempting to require() an ESM-only package from a CommonJS module.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/node_modules/fsb-mcp-server/dist/index.js from /path/to/your-project/app.js not supported. Instead change the require of index.js in /path/to/your-project/app.js to a dynamic import() which is available in all CommonJS modules."},{"fix":"Use createServer() and await the promise: `const server = await createServer(opts); server.start();`","cause":"Using the deprecated FSBServer constructor which no longer returns an object with .start() method, or calling .start() before the server is fully initialized.","error":"TypeError: server.start is not a function"},{"fix":"Install the FSB Chrome Extension from the GitHub repository, launch Chrome, and ensure the extension is active (check by navigating to chrome://extensions and verifying it is enabled).","cause":"The MCP server started but cannot communicate with the FSB browser extension.","error":"Error: Extension not connected. Please ensure the FSB Chrome Extension is installed and the browser is running."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}