{"_id":"@booboo-brain/serve","_rev":"6-eeeff16d34700d5b2e341ffc5447f9e3","name":"@booboo-brain/serve","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@booboo-brain/serve","version":"0.1.0","license":"MIT","_id":"@booboo-brain/serve@0.1.0","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"homepage":"https://github.com/jessedu29260-netizen/booboo#readme","bugs":{"url":"https://github.com/jessedu29260-netizen/booboo/issues"},"dist":{"shasum":"70685d229552cb44350f1ddc1b815475fb32ddd8","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.1.0.tgz","fileCount":5,"integrity":"sha512-UoY1AnDYr+rgh4qYl009uq2Uz8bZlBiHLemMVROxOR2WyM8W+2AkxDfxYXta9SNlMDM1msaGA+JeC4Qv0InqlA==","signatures":[{"sig":"MEUCIQD65t47gxK1qJj1xCxd8Ou6p1kn5EbzBhK4N00XeNUygAIgBvZVAabzk/sPjiVlmB5RfVvw3tVBsib4CQGVp/qeZ1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14291},"main":"./dist/index.js","type":"module","_from":"file:booboo-brain-serve-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean"},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"_resolved":"C:\\Users\\jesse\\AppData\\Local\\Temp\\11868b9565a5369fa87470912d91e441\\booboo-brain-serve-0.1.0.tgz","_integrity":"sha512-UoY1AnDYr+rgh4qYl009uq2Uz8bZlBiHLemMVROxOR2WyM8W+2AkxDfxYXta9SNlMDM1msaGA+JeC4Qv0InqlA==","repository":{"url":"git+https://github.com/jessedu29260-netizen/booboo.git","type":"git","directory":"packages/serve"},"_npmVersion":"11.12.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.23.0","@booboo-brain/spec":"0.1.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/serve_0.1.0_1782983727849_0.5371836144845281","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@booboo-brain/serve","version":"0.2.0","license":"MIT","_id":"@booboo-brain/serve@0.2.0","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"homepage":"https://github.com/jessedu29260-netizen/booboo#readme","bugs":{"url":"https://github.com/jessedu29260-netizen/booboo/issues"},"dist":{"shasum":"fa8117ca876054f3b0d6f4ad908bbcdedc56c187","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.2.0.tgz","fileCount":5,"integrity":"sha512-MQ66/0meyEht3Z6yGkHG1rqIllnenEjAXkSSxcfFub3tZxqUTGBgseNmkOmjjKbkf0JmaKz6yELii7y7xgMa1Q==","signatures":[{"sig":"MEUCIQDFgduxIeT96cHzV2YM5IQpWnQdjMME+R/17UsR5cxsEQIgX0i2J0Tv8rGOYoKRIZ9K9KemPeUey76mfwn8GnMYeQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15587},"main":"./dist/index.js","type":"module","_from":"file:booboo-brain-serve-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean"},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"_resolved":"C:\\Users\\jesse\\AppData\\Local\\Temp\\2657a6ef8816e4b4280f6d956eb7116a\\booboo-brain-serve-0.2.0.tgz","_integrity":"sha512-MQ66/0meyEht3Z6yGkHG1rqIllnenEjAXkSSxcfFub3tZxqUTGBgseNmkOmjjKbkf0JmaKz6yELii7y7xgMa1Q==","repository":{"url":"git+https://github.com/jessedu29260-netizen/booboo.git","type":"git","directory":"packages/serve"},"_npmVersion":"11.12.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.23.0","@booboo-brain/spec":"0.2.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/serve_0.2.0_1783046305012_0.8552981959776675","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@booboo-brain/serve","version":"0.3.0","license":"MIT","_id":"@booboo-brain/serve@0.3.0","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"homepage":"https://github.com/jessedu29260-netizen/booboo#readme","bugs":{"url":"https://github.com/jessedu29260-netizen/booboo/issues"},"dist":{"shasum":"c73fc2c1aac1ed9675f7959a7b1669561dba8a4e","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.3.0.tgz","fileCount":5,"integrity":"sha512-2+qP29TKq9trgC2pvAyRm4730RPRTqxwvsKdF3Oh92Tgu3NCqbZRA5kc6Gkl+ouBNor2sVRIFppl7LypPUqBFw==","signatures":[{"sig":"MEUCIQDq8hUqo+HUEXD/zhfCSRrwt147/iS6kJUJIHGg/H33AAIgIl9CFiQL1hhVOFdx6c+gKaBopKpkCFTJYoWAbsARAPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16282},"main":"./dist/index.js","type":"module","_from":"file:booboo-brain-serve-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean"},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"_resolved":"C:\\Users\\jesse\\AppData\\Local\\Temp\\fe61ea273c0f552b4d6a9bb61b67c95a\\booboo-brain-serve-0.3.0.tgz","_integrity":"sha512-2+qP29TKq9trgC2pvAyRm4730RPRTqxwvsKdF3Oh92Tgu3NCqbZRA5kc6Gkl+ouBNor2sVRIFppl7LypPUqBFw==","repository":{"url":"git+https://github.com/jessedu29260-netizen/booboo.git","type":"git","directory":"packages/serve"},"_npmVersion":"11.12.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.23.0","@booboo-brain/spec":"0.2.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/serve_0.3.0_1783049424263_0.4404992158493317","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@booboo-brain/serve","version":"0.4.0","license":"MIT","_id":"@booboo-brain/serve@0.4.0","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"homepage":"https://github.com/jessedu29260-netizen/booboo#readme","bugs":{"url":"https://github.com/jessedu29260-netizen/booboo/issues"},"dist":{"shasum":"0aba2a51cd49a485e0666e06655408b40ee7ca07","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.4.0.tgz","fileCount":5,"integrity":"sha512-2+2iCRE82HA4u4CxmweYXctjuHnZ/ok5GzJMzRkzfFK9DNJ0McRClCE2bDejbwZVpHh/zHmt6OrI3n5JDz3cSA==","signatures":[{"sig":"MEYCIQCE7KyJnW88v8U+g+iPXHJ1F44hXEn1YouYbYqcmbWEVAIhAOJV0AgIz1Wo5apC32I+7albwZYzkBswDcyDunXHl097","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27531},"main":"./dist/index.js","type":"module","_from":"file:booboo-brain-serve-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean"},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"_resolved":"C:\\Users\\jesse\\AppData\\Local\\Temp\\69262628973f21d8906c874b30d853f6\\booboo-brain-serve-0.4.0.tgz","_integrity":"sha512-2+2iCRE82HA4u4CxmweYXctjuHnZ/ok5GzJMzRkzfFK9DNJ0McRClCE2bDejbwZVpHh/zHmt6OrI3n5JDz3cSA==","repository":{"url":"git+https://github.com/jessedu29260-netizen/booboo.git","type":"git","directory":"packages/serve"},"_npmVersion":"11.12.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.23.0","@booboo-brain/spec":"0.3.0","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/serve_0.4.0_1783969510178_0.36307068202804915","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@booboo-brain/serve","version":"0.4.1","license":"MIT","_id":"@booboo-brain/serve@0.4.1","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"homepage":"https://github.com/jessedu29260-netizen/booboo#readme","bugs":{"url":"https://github.com/jessedu29260-netizen/booboo/issues"},"dist":{"shasum":"6d325fbd461dccfd2c1d5c93ba73aafb54120853","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.4.1.tgz","fileCount":5,"integrity":"sha512-JTV+gEfF0qlj1hGthDfwgtPUdzpZgeGfLmhYOaCZc0PpdHGXT3lliAlz41MTDwsSLb6N87k0yRAz/fWCw4g4SQ==","signatures":[{"sig":"MEUCIQCyB2DBLgBdjnd/PwCZBeGuqrcolWmBF1d7F1zODSKrSgIgP9L4GA8K5vM8zBZFge3P79o2brIYrAoy9p/xcivKE0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31724},"main":"./dist/index.js","type":"module","_from":"file:booboo-brain-serve-0.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean"},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"_resolved":"C:\\Users\\jesse\\AppData\\Local\\Temp\\643ac36c23a1c569d78df50125dbba0e\\booboo-brain-serve-0.4.1.tgz","_integrity":"sha512-JTV+gEfF0qlj1hGthDfwgtPUdzpZgeGfLmhYOaCZc0PpdHGXT3lliAlz41MTDwsSLb6N87k0yRAz/fWCw4g4SQ==","repository":{"url":"git+https://github.com/jessedu29260-netizen/booboo.git","type":"git","directory":"packages/serve"},"_npmVersion":"11.12.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.23.0","@booboo-brain/spec":"0.3.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","vitest":"^2","typescript":"^5","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/serve_0.4.1_1784543182937_0.008439438610702288","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@booboo-brain/serve","version":"0.5.0","description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/jessymariau/booboo.git","directory":"packages/serve"},"bugs":{"url":"https://github.com/jessymariau/booboo/issues"},"homepage":"https://github.com/jessymariau/booboo#readme","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","zod":"^3.23.0","@booboo-brain/spec":"0.3.2"},"devDependencies":{"@types/node":"^22.0.0","tsup":"^8","typescript":"^5","vitest":"^2"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"scripts":{"build":"tsup src/index.ts --format esm --dts --clean","test":"vitest run"},"_id":"@booboo-brain/serve@0.5.0","_integrity":"sha512-gbekRqrlK4S9t2/4pIAvfCLEbfu9eL+OMgvif5Y/q73YJjQWsOODU7iGiPb7Ld+CyIuvSkcclmwt1dI/a8oaUg==","_resolved":"/tmp/7259fd22d770f09d3e4b94e59d87adbe/booboo-brain-serve-0.5.0.tgz","_from":"file:booboo-brain-serve-0.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-gbekRqrlK4S9t2/4pIAvfCLEbfu9eL+OMgvif5Y/q73YJjQWsOODU7iGiPb7Ld+CyIuvSkcclmwt1dI/a8oaUg==","shasum":"9dab52dffa4557293e6caf2614609308225d11d5","tarball":"https://registry.npmjs.org/@booboo-brain/serve/-/serve-0.5.0.tgz","fileCount":5,"unpackedSize":32127,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCeFjLrvC8dWzUOIQcyNbt6qXzAfAWONbGOtDyqJzo8rAIgJ/qBlTueZyn5nuBhuxc4OUVdG6QE2jY/uljSBIbZt/o="}]},"_npmUser":{"name":"jessedu29","email":"jessedu29260@outlook.com"},"directories":{},"maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/serve_0.5.0_1785436745821_0.8040391040051729"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-02T09:15:27.737Z","modified":"2026-07-30T18:39:06.180Z","0.1.0":"2026-07-02T09:15:27.996Z","0.2.0":"2026-07-03T02:38:25.167Z","0.3.0":"2026-07-03T03:30:24.404Z","0.4.0":"2026-07-13T19:05:10.306Z","0.4.1":"2026-07-20T10:26:23.073Z","0.5.0":"2026-07-30T18:39:05.983Z"},"bugs":{"url":"https://github.com/jessymariau/booboo/issues"},"license":"MIT","homepage":"https://github.com/jessymariau/booboo#readme","repository":{"type":"git","url":"git+https://github.com/jessymariau/booboo.git","directory":"packages/serve"},"description":"Query a Booboo snapshot over REST + MCP. In-memory index: search, neighbors, shortest-path, layer stats.","maintainers":[{"name":"jessedu29","email":"jessedu29260@outlook.com"}],"readme":"# @booboo-brain/serve\n\nQuery a [Booboo](../../README.md) snapshot over **REST** and **MCP**. One in-memory index\n(`BoobooIndex`) powers both: search, neighbours, shortest-path, layer stats. Read-only.\n\n## REST\n\n```bash\nbooboo serve --snapshot my.booboo.json --port 8787\n```\n\n| Route | Returns |\n|-------|---------|\n| `GET /graph` | meta + counts |\n| `GET /stats` | `{ nodes, links, byLayer }` |\n| `GET /search?q=&limit=` | ranked nodes (exact > prefix > substring) |\n| `GET /nodes?layer=&cluster=&type=&q=&limit=&offset=` | `{ total, nodes }` |\n| `GET /nodes/:id` | one node (404 if missing) |\n| `GET /neighbors/:id?depth=&limit=` | `{ center, nodes, links }` |\n| `GET /path/:from/:to` | `{ path }` (chain of nodes, or `null`) |\n\nCORS is open, so a browser viewer can fetch a live graph directly.\n\n## MCP\n\n```bash\nbooboo mcp --snapshot my.booboo.json\n```\n\nSpeaks MCP over stdio. Point any client at it (Claude Desktop / Claude Code):\n\n```json\n{ \"mcpServers\": { \"booboo\": { \"command\": \"booboo\", \"args\": [\"mcp\", \"--snapshot\", \"/abs/path/my.booboo.json\"] } } }\n```\n\nTools: `booboo_stats` · `booboo_search` · `booboo_node` · `booboo_neighbors` · `booboo_path`.\n\n## API\n\n```ts\nimport { BoobooIndex, loadSnapshot, createRestServer, runMcp } from \"@booboo-brain/serve\";\n\nconst ix = new BoobooIndex(loadSnapshot(\"my.booboo.json\"));\nix.search(\"invoice\");           // ranked nodes\nix.neighbors(\"dionisos\", 2);    // 2-hop neighbourhood\nix.path(\"a\", \"b\");              // shortest path or null\ncreateRestServer(ix).listen(8787);\n```\n\n`BoobooIndex` is pure (no Node/network deps), so it also runs in the browser.\n","readmeFilename":"README.md"}