{"_id":"@businessmaps/bifrost","_rev":"5-c3265e109a12992a019f848823983e05","name":"@businessmaps/bifrost","dist-tags":{"latest":"0.4.0"},"versions":{"0.0.1":{"name":"@businessmaps/bifrost","version":"0.0.1","keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"license":"Apache-2.0","_id":"@businessmaps/bifrost@0.0.1","maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"homepage":"https://github.com/Business-Maps/mcp#readme","bugs":{"url":"https://github.com/Business-Maps/mcp/issues"},"bin":{"bifrost":"bin/bifrost"},"dist":{"shasum":"e279d4371380026890e7f383b47dc9e6e6ccd0bf","tarball":"https://registry.npmjs.org/@businessmaps/bifrost/-/bifrost-0.0.1.tgz","fileCount":5,"integrity":"sha512-pmLYS54lrvq0jAFEUwYJ9YNL8Ubk8oTAmWkDUBVaTMIxA9XMEAVfFbneThm1eHzqAjSViSbAjwH4u4LePvnbfA==","signatures":[{"sig":"MEUCIQCiL+bUeZu3qr+4S6QUHLMfPZBmrjmtyqFz+Ybet9eJdwIgVf1M3+n0XL8C6hiW07Ur8qB+hqGwSBNT/qIGZNmz2QU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"type":"module","engines":{"node":">=18"},"gitHead":"1fe751f8a02ad62b9428294434c74e797501dccc","scripts":{"test":"node --test test/*.test.js","start":"node bin/bifrost","release":"npm test && git tag -f v$(node -p \"require('./package.json').version\") && git push origin main --tags --force"},"_npmUser":{"name":"shalashtein","email":"shalashtein@gmail.com"},"repository":{"url":"git+https://github.com/Business-Maps/mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Bridge any browser web app to Claude Code via MCP","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bifrost_0.0.1_1774640081384_0.8146809430733839","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@businessmaps/bifrost","version":"0.0.2","keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"license":"Apache-2.0","_id":"@businessmaps/bifrost@0.0.2","maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"homepage":"https://github.com/Business-Maps/mcp#readme","bugs":{"url":"https://github.com/Business-Maps/mcp/issues"},"bin":{"bifrost":"bin/bifrost"},"dist":{"shasum":"3c318f1e16766ea507d6f998ea385da5ce554eaf","tarball":"https://registry.npmjs.org/@businessmaps/bifrost/-/bifrost-0.0.2.tgz","fileCount":5,"integrity":"sha512-Llp9sXmiP87Pmhh18Cxyu1PJLSYd927XtvN1Ka6ZYYprY5EFccaOq3BO/NBQejD763jXwUBIgBkorvTk30TBPQ==","signatures":[{"sig":"MEUCICw4+8bPnuypmaB7d/BMIsFm2EOG4G7bsID5Ho1UGEF5AiEAnmJuzJLLQpiBsluQzTK0QVYvZ503DSxKpdwV92CykFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37768},"type":"module","engines":{"node":">=18"},"gitHead":"6914167559fa8a1d1bdb0b1d655848bb2fdadeb1","scripts":{"test":"node --test test/*.test.js","start":"node bin/bifrost","release":"npm test && git tag -f v$(node -p \"require('./package.json').version\") && git push origin main --tags --force"},"_npmUser":{"name":"shalashtein","email":"shalashtein@gmail.com"},"repository":{"url":"git+https://github.com/Business-Maps/mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Bridge any browser web app to Claude Code via MCP","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bifrost_0.0.2_1774643576481_0.8727165301771747","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@businessmaps/bifrost","version":"0.1.2","keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"license":"Apache-2.0","_id":"@businessmaps/bifrost@0.1.2","maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"homepage":"https://github.com/Business-Maps/mcp#readme","bugs":{"url":"https://github.com/Business-Maps/mcp/issues"},"bin":{"bifrost":"bin/bifrost"},"dist":{"shasum":"2ffffc76d0e472fb1728d6f4f4500844f9d1565f","tarball":"https://registry.npmjs.org/@businessmaps/bifrost/-/bifrost-0.1.2.tgz","fileCount":5,"integrity":"sha512-dmsxN2oc3+H2mHVuh9UC9eh7+iK0TboC7tS5OjNTt1rkxvCrf+3YnqmkAwsrndelsOEswzG37ZxL4/qldfL/wQ==","signatures":[{"sig":"MEQCIBDqerQb+F6tkxlVDKuYm1lPmFrM3PimOklQkMYy5ffLAiAMBBXvRjus0KMVZ5rNI6HOE7ENxUQC7hA9yTMEj7iPCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31882},"type":"module","engines":{"node":">=18"},"gitHead":"7f0ebe79acfc55d0d5f2ce8e964b2ed1e07982ef","scripts":{"test":"node --test test/*.test.js","start":"node bin/bifrost","release":"npm test && git tag -f v$(node -p \"require('./package.json').version\") && git push origin main --tags --force"},"_npmUser":{"name":"shalashtein","email":"shalashtein@gmail.com"},"repository":{"url":"git+https://github.com/Business-Maps/mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Bridge any browser web app to Claude Code via MCP","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bifrost_0.1.2_1774659253055_0.9810584314935535","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@businessmaps/bifrost","version":"0.1.3","keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"license":"Apache-2.0","_id":"@businessmaps/bifrost@0.1.3","maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"homepage":"https://github.com/Business-Maps/bifrost#readme","bugs":{"url":"https://github.com/Business-Maps/bifrost/issues"},"bin":{"bifrost":"bin/bifrost"},"dist":{"shasum":"9f5cc54404889c8233a44f102f9597f87fe7ec0b","tarball":"https://registry.npmjs.org/@businessmaps/bifrost/-/bifrost-0.1.3.tgz","fileCount":5,"integrity":"sha512-3EM7EORwU/DOOS7kiw+lcrwsBVH44wcEi8CR+21dVpDfRl3f4Cw9MFBWukot9u6f6ToAziYo93Epmk42YvZ7Rg==","signatures":[{"sig":"MEQCIBSoALJQ6PuIbnnN47Bt0KqJU0pg6Xf7xaja6O0i8ALvAiAqSUKHIynF1MLnvMRdn1Dv4EoGI6g4E9VJtfC+xNXfKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@businessmaps%2fbifrost@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32759},"type":"module","engines":{"node":">=18"},"gitHead":"6829495f4b7d348c7b6ca67a93139efd7323e943","scripts":{"test":"node --test test/*.test.js","start":"node bin/bifrost"},"_npmUser":{"name":"shalashtein","email":"shalashtein@gmail.com"},"repository":{"url":"git+https://github.com/Business-Maps/bifrost.git","type":"git"},"_npmVersion":"10.9.7","description":"Bridge any browser web app to Claude Code via MCP","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bifrost_0.1.3_1776166578888_0.3138081827356187","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@businessmaps/bifrost","version":"0.4.0","description":"Bridge any browser web app to Claude Code via MCP","type":"module","bin":{"bifrost":"bin/bifrost"},"publishConfig":{"access":"public"},"scripts":{"start":"node bin/bifrost","test":"node --test test/*.test.js"},"engines":{"node":">=18"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/Business-Maps/bifrost.git"},"keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"dependencies":{"ws":"^8.20.0"},"_id":"@businessmaps/bifrost@0.4.0","gitHead":"f6105f3e09746cccf49e5cb55758750749f6d6cd","bugs":{"url":"https://github.com/Business-Maps/bifrost/issues"},"homepage":"https://github.com/Business-Maps/bifrost#readme","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-1TPCfy14L+7kKCfng7D2ArxVA9VsYalM/aAo5YxJv+h/RZ/FZJOBXChxbhuK2Oyr4jzJXx5fI9CUHjoTo5eV0w==","shasum":"6b1a235002e2214d4697e05c7362473602300628","tarball":"https://registry.npmjs.org/@businessmaps/bifrost/-/bifrost-0.4.0.tgz","fileCount":5,"unpackedSize":36365,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@businessmaps%2fbifrost@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF3OacTWHTAdOa4py5v7IY8InjvKLtpXWUafX3Bu0ozhAiEA9CU5X5pB3wn2iveb9e6EuFerwhT6ODwz6ZrDOzbaEDk="}]},"_npmUser":{"name":"shalashtein","email":"shalashtein@gmail.com"},"directories":{},"maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bifrost_0.4.0_1776171394643_0.1316125480614836"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T19:34:41.283Z","modified":"2026-04-14T12:56:35.100Z","0.0.1":"2026-03-27T19:34:41.548Z","0.0.2":"2026-03-27T20:32:56.669Z","0.1.2":"2026-03-28T00:54:13.184Z","0.1.3":"2026-04-14T11:36:19.085Z","0.4.0":"2026-04-14T12:56:34.792Z"},"bugs":{"url":"https://github.com/Business-Maps/bifrost/issues"},"license":"Apache-2.0","homepage":"https://github.com/Business-Maps/bifrost#readme","keywords":["bifrost","mcp","browser","bridge","claude","websocket"],"repository":{"type":"git","url":"git+https://github.com/Business-Maps/bifrost.git"},"description":"Bridge any browser web app to Claude Code via MCP","maintainers":[{"name":"shalashtein","email":"shalashtein@gmail.com"}],"readme":"# @businessmaps/bifrost\n\n[![CI](https://github.com/Business-Maps/bifrost/actions/workflows/ci.yml/badge.svg)](https://github.com/Business-Maps/bifrost/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@businessmaps/bifrost)](https://www.npmjs.com/package/@businessmaps/bifrost)\n\nMCP server that lets AI tools call functions running in your browser.\n\nThe daemon sits between any MCP client and your browser tab. It speaks JSON-RPC over stdio on one side and WebSocket on the other. Your browser app connects, registers tools, and the AI can call them.\n\n## Quick start\n\n### 1. Add to your AI tool\n\n**Claude Code:**\n\n```bash\nclaude mcp add --transport stdio bifrost -- npx @businessmaps/bifrost --no-auth\n```\n\n**Claude Desktop** - add to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bifrost\": {\n      \"command\": \"npx\",\n      \"args\": [\"@businessmaps/bifrost\", \"--no-auth\"]\n    }\n  }\n}\n```\n\n**Cursor** - add to `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bifrost\": {\n      \"command\": \"npx\",\n      \"args\": [\"@businessmaps/bifrost\", \"--no-auth\"]\n    }\n  }\n}\n```\n\nNo install needed. `npx` downloads and runs the package automatically.\n\n### 2. Add the client to your browser app\n\n```bash\nnpm i @businessmaps/bifrost-browser\n```\n\nOr via CDN:\n\n```html\n<script src=\"https://unpkg.com/@businessmaps/bifrost-browser\"></script>\n```\n\nTypeScript types are included.\n\n### 3. Register tools\n\n```js\nimport { BifrostBrowser } from \"@businessmaps/bifrost-browser\";\n\nconst bridge = new BifrostBrowser({ port: 3099 });\n\nbridge.registerTools([\n  {\n    name: \"get_page_title\",\n    description: \"Returns the page title\",\n    inputSchema: { type: \"object\", properties: {} },\n    handler: async () => document.title,\n  },\n  {\n    name: \"get_selection\",\n    description: \"Returns the user's current text selection\",\n    inputSchema: { type: \"object\", properties: {} },\n    handler: async () => window.getSelection().toString(),\n  },\n]);\n\nbridge.connect();\n```\n\nThat's it. The AI can now call `get_page_title` and `get_selection` in your browser tab. Handlers have full access to DOM, Canvas, IndexedDB, Clipboard, `fetch`, etc.\n\n## Auth\n\nBy default the daemon generates a random token on startup. Two ways to get it:\n\n- **Terminal mode** - the token prints to screen when the daemon starts\n- **MCP mode** - the AI calls the built-in `bifrost_connection_info` tool to get the token, then tells you what to paste into your app\n\nPass the token to the client:\n\n```js\nconst bridge = new BifrostBrowser({ port: 3099, token: \"TOKEN\" });\n```\n\nSkip auth entirely with `--no-auth` during local development.\n\n## Multiple tabs\n\nEach tab registers its own tools. Calls route to whoever owns the tool. Disconnecting a tab removes its tools.\n\n## Options\n\n```\n--port <port>     WebSocket port        (default: 3099)\n--timeout <secs>  Tool call timeout     (default: 120)\n--no-auth         Disable token auth    (dev only)\n--help, -h        Show this message\n--version, -v     Show version\n```\n\n## Dev\n\n```bash\ngit clone https://github.com/Business-Maps/bifrost.git && cd bifrost\nnpm install\nnpm test\n```\n\n[Architecture](docs/architecture.md) · [Client API](docs/client-api.md) · [Contributing](CONTRIBUTING.md)\n\n## License\n\nApache 2.0\n","readmeFilename":"README.md"}