{"_id":"@borntorecycle/mcp-the-brain","_rev":"14-7a75b9cfe7d0d171ee5f3c5084cd33cf","name":"@borntorecycle/mcp-the-brain","dist-tags":{"latest":"0.9.2"},"versions":{"0.1.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.1.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.1.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js"},"dist":{"shasum":"a1e93b116b7f172a076fcb73eb29e9e83463a69e","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.1.0.tgz","fileCount":54,"integrity":"sha512-EatrU+65Jk+Kncj2Enp3HcNb6pjud19qqpFjapo+9IYboNh7mmCZ1wy67sSoqKOoQW3sezvSjXJGzePFPBcxDA==","signatures":[{"sig":"MEYCIQD0eybYOB/Jeq9bABb8lcEFGeH481Tns7eiSMe9lAXRSAIhAJLesGjIzXJPs5sZ+lWcbT+4VPUq4GnjDUAjMDELDr1x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100082},"type":"module","engines":{"node":">=18"},"gitHead":"44570d9d3e71b5e7fc7a79c54a204cd138601cde","scripts":{"build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search over outcomes, patterns, and module knowledge","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.1.0_1775966054989_0.07181663220401746","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@borntorecycle/mcp-the-brain","version":"0.1.1","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.1.1","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js"},"dist":{"shasum":"391e77f14e0d2c05dfcef2bed722f946847f701d","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.1.1.tgz","fileCount":54,"integrity":"sha512-ehfWC01u5XAqkI4kOVXSYMxOFzOlT4bUc6N8B3rHQTlwB9asOynrk/KO5c89ib4Xu8kuqpMMP4PvZfC6yRBjYA==","signatures":[{"sig":"MEQCICb85mQfTCmQuDUOAujZvn/F2o68brLb6WLGODO7mpsJAiBZ8d3uNTcIzDfoW5oOUFaMyDYawDP0Ce1vpgIqRLuM4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100080},"type":"module","engines":{"node":">=18"},"gitHead":"0e422ccc28804fa25e71f4a7c7b60479589c935c","scripts":{"build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search over outcomes, patterns, and module knowledge","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.1.1_1775966384708_0.7231191598275617","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@borntorecycle/mcp-the-brain","version":"0.1.2","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.1.2","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js"},"dist":{"shasum":"4bdfedaea6d327c9c9a1b52ed5c2f5fb8c1ab701","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.1.2.tgz","fileCount":54,"integrity":"sha512-3XYQOmXTB0mzKjt/mijmmigBlbHpUiepi1xWhQDfjB41nej4sK4nBnpt9o/hrx6P2k7jBtApzWFWcRpODhJD2A==","signatures":[{"sig":"MEQCIGJ0Vf4wjXAWZNvFNvpMn33yZ0JWf0GXSAo4n1zJLiLgAiBRW7R20fFaxvc8h6RxpY9zfRW6bXhPQ9ib4qFaxLUp+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100777},"type":"module","engines":{"node":">=18"},"gitHead":"8db347347de89d1891a7872699ca653d687dbdb8","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs","build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search over outcomes, patterns, and module knowledge","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.1.2_1775969377266_0.009785383000770365","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.2.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.2.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js"},"dist":{"shasum":"76538a5b2aef6dfd9b98644d59f21bc80c5200e5","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.2.0.tgz","fileCount":54,"integrity":"sha512-2OXpeq0ruSlbK/nmC5RLNxiSxDktucIEDTL2i3ZFgG8GMUCk1LfPp45tQFSNYKc4G7yjIiqvZD3FBgFL5gCozg==","signatures":[{"sig":"MEQCIGnyCtmaAD13aFDVCnHSzFWTVPyRtix7QomQ/FSAC7pGAiBd5JsACFYAxDcZtENLgEFvXC9rJHFfLdqJZlpQetdGkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105509},"type":"module","engines":{"node":">=18"},"gitHead":"8db347347de89d1891a7872699ca653d687dbdb8","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs","build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search over outcomes, patterns, bugs, agent workflows, and quality metrics","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.2.0_1776005644791_0.9344678732293565","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@borntorecycle/mcp-the-brain","version":"0.3.1","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.3.1","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"d2e72d700c6635f08e016277b003c2b8858e12b3","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.3.1.tgz","fileCount":86,"integrity":"sha512-RPTmHDVcUYZYm1Awqn8XVB5w+W6jgEQtHk+iqTyzCl2uwKEHeiykVBXHyQCMC2TKejThcYvP1Ewj2opUhLOVYw==","signatures":[{"sig":"MEUCIBhziZWnAuQ+p0sN6wclr9NramyrGMXHjSakoXI8ZTUKAiEAxKfpJ83PYWhgqnbFEK1mjdju6QjBDD8EGq8wOJdn+BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176415},"type":"module","engines":{"node":">=18"},"gitHead":"e9cbb8a0f73ae3c8949a5752eaf55f820ad0ac4b","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs","build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.3.1_1776019917631_0.5205121184840822","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@borntorecycle/mcp-the-brain","version":"0.3.2","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.3.2","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"9738a76fc0fc90c3ecb2d957b83a437ecc733ac6","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.3.2.tgz","fileCount":90,"integrity":"sha512-nIyjv/sxd5/m1UyO5TVX1eaDAxtyYQVKd6oYIGlLpZzbEFU+yysM/W7cODvLJGlXvqkFsIzSvF387ykgJs9PVw==","signatures":[{"sig":"MEQCIAUl2Vvjrts2+OLioqi8zt2QG5a9fYTF+mebROy9WAuOAiBfEuMcI13UX7jF0dE3dIeV0aVrBu85i0oEbJhRsQGRlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198087},"type":"module","engines":{"node":">=18"},"gitHead":"5461a271a6623ec89584820406e8c8b698ad6c32","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs","build":"tsc","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.3.2_1776724424626_0.6733572054351538","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@borntorecycle/mcp-the-brain","version":"0.4.1","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.4.1","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"e132730970b82d34862471f5a1a06d08e8464180","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.4.1.tgz","fileCount":105,"integrity":"sha512-XbTEE9WlSRdMhhueDLhRT8ho0B+3PruCvJMnJzuFM/QMy827hokZja0+9IWtbToT/HDQ4vXUfWoLWjU3N1xQ5g==","signatures":[{"sig":"MEQCIEaDhFgkxqD3JVFuzBKGHFHERAbaY+sIKjp5odXSK/0iAiA7i2IMZiwH62TtAwOc5rGXu55zI2btowT9X8GH5I5UPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308145},"type":"module","engines":{"node":">=18"},"gitHead":"9ce52543a92f9d54af576cbc4d9927604ca101e9","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.4.1_1776807291282_0.6850127737221194","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.5.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.5.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"fac14b97bdb3cf5b07fcc51ff68c70d806d7af2a","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.5.0.tgz","fileCount":118,"integrity":"sha512-x/lS9oClSHxTLReFCGzLvUxiCvoSX9NqJ9ESBxFy3nxx+sa0Rbuz5Iz9eYTaALu73KO8g0jCqeN32Q7E5HlLmA==","signatures":[{"sig":"MEUCIQDO1WLoHXVG+rxjImSQzlEwnLy0IXUR18sYl4qrwHujIgIgTDjSCBkUfY0NmSoDqS34L21JiboUFlZdvUlfhilaPDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423097},"type":"module","engines":{"node":">=18"},"gitHead":"a5439d4b04290e3556db74a418ed30eea708c115","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.5.0_1778188228262_0.6026572470176979","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.6.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.6.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"d646696c4d22fa0b85b891b9e77926251e819bdf","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.6.0.tgz","fileCount":132,"integrity":"sha512-YQvQT3FMvhBPtItwXHRJapSfbEqn1vSnB77wmT4Ct4MFKa+NPDLdJzNBppQ4BZPSkhm2Pa1HTC+2FoVVD5zhDg==","signatures":[{"sig":"MEUCIQCQTJ5FKVUQUOAlRTbvJA/K1vN1HBYqY8oUT9vNSo8R8AIgYj4vflB5OTrBPCIleFifKX+g5keY3/m3VjsSIDprLWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490984},"type":"module","engines":{"node":">=18"},"gitHead":"efcc1aae1c4df19de2779b5f9915ab8a901100e6","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.6.0_1779026888016_0.0950811986493354","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.7.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.7.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"7c089c5605a5f29aefb40017e2650f98b566346a","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.7.0.tgz","fileCount":132,"integrity":"sha512-vkD0TUXOjsEu/JMKwGbqpTaG36z5zssRPpNq6GA+v0WtC8hdBK0beLOSYiT6V9jIuyGFzlQBLxN/O4m11Xx8OA==","signatures":[{"sig":"MEUCIHxqn39J7rHWbIFFxf6vX63P2JabCQPuguOfdVYwfCieAiEA61jfoB0ZL+b8485vpLjfQ7WdOXVO6nxwWBk4Tev8Bao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496454},"type":"module","engines":{"node":">=18"},"gitHead":"1507caa3e385c3726fc662f92d6565c81df36680","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs && node tests/durableRelations.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.7.0_1779035288335_0.503803819560019","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.8.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.8.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"df916490fabb84ba64340ab369a0d398c9f4db7a","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.8.0.tgz","fileCount":132,"integrity":"sha512-9d3Vx2aTeNAkreBzg6UgveXbIhDJVt4LoO5i2hTJdICGsPJGCyMWv2pLr3DFCdx/4Pm4MqjRUZF092soQ23YXA==","signatures":[{"sig":"MEUCIQDkCndDMOBK6am47AAhYP8joNKDxDlt8fTuHNVMmBd6swIgebJA/Uv1i2hFgMXe2HanNaaodHnK2tghu1bNAluk964=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":497797},"type":"module","engines":{"node":">=18"},"gitHead":"beb5069fb80dfdfa828567fa0976cade6ae3bffd","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs && node tests/durableRelations.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.8.0_1779038721823_0.06616265551653155","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@borntorecycle/mcp-the-brain","version":"0.9.0","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.9.0","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"c2f238ffabd23239bf2de58446c31ca3068180fc","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.9.0.tgz","fileCount":147,"integrity":"sha512-OIF3inMV6FZM6ZiJNwEh0F2BbEbC7I85YFoCmL4ldiGOHYsb0+/JLq15FjscQEVl5w90cbT19Lmv9ojCSFcu2Q==","signatures":[{"sig":"MEUCIF+Qb4WEa0J+EIpRYogWpyXcPa7PiJUuL47ZFS0JKVBkAiEAhWyqoChjlqw0N9+0N+TBf6KAAxjdjWY2tGH2z8rjbEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530796},"type":"module","engines":{"node":">=18"},"gitHead":"4366961c2d2ee081fce9b4c9f484cea464350090","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/manualSearch.endpoint.test.mjs && node tests/reservedSlots.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs && node tests/durableRelations.test.mjs && node tests/hookHealth.test.mjs && node tests/semanticHealth.test.mjs && node tests/exportImportRoundtrip.test.mjs && node tests/importSecurity.test.mjs && node tests/importConflictModes.test.mjs && node tests/presetSeed.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.9.0_1780190230712_0.6109216228606191","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@borntorecycle/mcp-the-brain","version":"0.9.1","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"url":"HITM4N84","name":"Pierre"},"license":"MIT","_id":"@borntorecycle/mcp-the-brain@0.9.1","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js"},"dist":{"shasum":"0269569b90789fa420239bd5241323cc0f1206d4","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.9.1.tgz","fileCount":147,"integrity":"sha512-KA5EK3m3mTZmTVtNgs8SR5zFowctBTtLVHKkyW7/DB9EK4qhcIPoJEKs3e94NbKNcQ/Co7y9pXWW6ZNv5F4znw==","signatures":[{"sig":"MEQCIH13MslWAQTnRh3MmGdADY9Keyk6qTde2oHnUYMQce4VAiBPpZ7/Wx5fWK40rD8YCvEwAQ2IJV6X819sY0yLdEPpEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":531091},"type":"module","engines":{"node":">=18"},"gitHead":"8e772161156900ac6e9977ffdf95dc70fb577990","scripts":{"test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/manualSearch.endpoint.test.mjs && node tests/reservedSlots.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs && node tests/durableRelations.test.mjs && node tests/hookHealth.test.mjs && node tests/semanticHealth.test.mjs && node tests/exportImportRoundtrip.test.mjs && node tests/importSecurity.test.mjs && node tests/importConflictModes.test.mjs && node tests/presetSeed.test.mjs","build":"tsc && node scripts/copy-web.mjs","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"_npmVersion":"11.12.1","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"optionalDependencies":{"apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-the-brain_0.9.1_1780191412295_0.9326012653857365","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@borntorecycle/mcp-the-brain","version":"0.9.2","description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","type":"module","bin":{"mcp-the-brain":"dist/bin/mcp-the-brain.js","mcp-the-brain-dashboard":"dist/bin/dashboard.js","mcp-the-brain-graph":"dist/bin/mcp-the-brain-graph.js"},"scripts":{"build":"tsc && node scripts/copy-web.mjs","test":"npm run build && node tests/config.test.mjs && node tests/markdownRoundtrip.test.mjs && node tests/indexStore.test.mjs && node tests/recordAndRecall.test.mjs && node tests/searchTrace.test.mjs && node tests/manualSearch.endpoint.test.mjs && node tests/reservedSlots.test.mjs && node tests/updateEntry.test.mjs && node tests/rebuildIndex.test.mjs && node tests/newTypes.test.mjs && node tests/graphAndTools.test.mjs && node tests/durableRelations.test.mjs && node tests/hookHealth.test.mjs && node tests/semanticHealth.test.mjs && node tests/exportImportRoundtrip.test.mjs && node tests/importSecurity.test.mjs && node tests/importConflictModes.test.mjs && node tests/presetSeed.test.mjs","prepublishOnly":"npm run build","clean":"node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true})\""},"keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"author":{"name":"Pierre","url":"HITM4N84"},"license":"MIT","engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","gray-matter":"^4.0.3","zod":"^3.25.0"},"optionalDependencies":{"@lancedb/lancedb":"^0.15.0","apache-arrow":"^18.0.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.0"},"gitHead":"8e772161156900ac6e9977ffdf95dc70fb577990","_id":"@borntorecycle/mcp-the-brain@0.9.2","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-a0tmz2AxOlVLbyAJSb84kgwjQk0Z0ZeZ1KnDmF75kr1iNNNmdEmUWgjZj9GqQunc1NGwtffxuusdq/ANQtdGuw==","shasum":"1fbe756456842969352f4bc947a1013b70c2a32d","tarball":"https://registry.npmjs.org/@borntorecycle/mcp-the-brain/-/mcp-the-brain-0.9.2.tgz","fileCount":147,"unpackedSize":531091,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDmFnWbHxIHn5xmegcssmr6ZFuEGAO+Ocj05/giCZbJbAIgbhBXQF9amYpgH9hDHFSWb2l8jewKqNC1dE7y3aMH608="}]},"_npmUser":{"name":"hitm4n","email":"pierresigmann@gmail.com"},"directories":{},"maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-the-brain_0.9.2_1780191665308_0.19137856351862714"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T03:54:14.867Z","modified":"2026-05-31T01:41:05.586Z","0.1.0":"2026-04-12T03:54:15.110Z","0.1.1":"2026-04-12T03:59:44.870Z","0.1.2":"2026-04-12T04:49:37.410Z","0.2.0":"2026-04-12T14:54:04.942Z","0.3.1":"2026-04-12T18:51:57.775Z","0.3.2":"2026-04-20T22:33:44.789Z","0.4.1":"2026-04-21T21:34:51.461Z","0.5.0":"2026-05-07T21:10:28.429Z","0.6.0":"2026-05-17T14:08:08.186Z","0.7.0":"2026-05-17T16:28:08.492Z","0.8.0":"2026-05-17T17:25:22.008Z","0.9.0":"2026-05-31T01:17:10.853Z","0.9.1":"2026-05-31T01:36:52.457Z","0.9.2":"2026-05-31T01:41:05.471Z"},"author":{"name":"Pierre","url":"HITM4N84"},"license":"MIT","keywords":["mcp","model-context-protocol","memory","knowledge-base","semantic-search","lancedb","ollama"],"description":"MCP server for structured project memory — semantic search, knowledge graph, auto-ingest, analytics dashboard","maintainers":[{"name":"hitm4n","email":"pierresigmann@gmail.com"}],"readme":"# MCP The Brain\r\n\r\nSelf-hosted, structured project memory for your coding agent — exposed over the\r\nModel Context Protocol (MCP). The Brain gives your assistant (Copilot, Claude, Cursor, …)\r\na durable, searchable memory of your project's decisions, outcomes, and gotchas, stored as\r\nplain Markdown in your own repo. Everything runs locally on your machine.\r\n\r\n## What It Does\r\n\r\nThe Brain records structured knowledge your coding agent can search and build on:\r\n- **Outcomes** — \"X worked/failed because Y\"\r\n- **Patterns** — \"When doing A, prefer approach B\"\r\n- **Module Knowledge** — \"Module M is sensitive to N\"\r\n- **Bugs** — \"Non-obvious bug X was caused by Y\"\r\n- **Agent Workflows** — \"An agent run produced insight B\"\r\n- **Quality Metrics** — \"Metric X measured at Y, target is Z\"\r\n\r\nMemory entries are stored as `.md` files in your repo (Git-versioned, diffable), with optional\r\nsemantic search via Ollama embeddings + LanceDB.\r\n\r\n## Why The Brain — Three Pillars\r\n\r\n### 1. Observable retrieval, not a black box\r\n\r\nMost memory tools hand your agent a list of results with no explanation. The Brain records a\r\n**search trace** for semantic searches — what was queried, which entries matched, and how they\r\nranked — so retrieval is inspectable instead of magic. Traces are written locally under\r\n`~/.brain/logs/search-traces/` (rolling, recent-N retention).\r\n\r\nThe 3D web UI ships a **Manual Semantic Search** panel: type a query, see the ranked entries and\r\nthe trace behind them. It's memory you can audit, not a black box.\r\n\r\n### 2. Self-hosted, with a 3D knowledge graph\r\n\r\nThe Brain runs **entirely on your machine** — a local Node process, local Markdown files, and\r\n(optionally) local Ollama + LanceDB. There is **no cloud service**, no account, and no data leaves\r\nyour computer.\r\n\r\nIt also ships a **3D web view of your knowledge graph** (`mcp-the-brain-graph` binary). Entries and\r\ntheir relations are rendered as an explorable graph, with multi-project support and an optional\r\nshared-memory overlay. Your knowledge stays local — and you can actually *see* it.\r\n\r\n### 3. Honest about cold-start — and now portable\r\n\r\nBe aware of the tradeoff: **a fresh brain starts empty.** There is real value in accumulated\r\nmemory, which means there is a real cold-start cost — early sessions have little to recall until\r\nyou (and your agent) record entries.\r\n\r\nv0.9.0 softens this with an **export / import mechanism**. The `export_knowledge` and\r\n`import_knowledge` tools read and write portable, single-file `.brain-pack.json` bundles\r\n(schema `brain-pack/1`), so knowledge can be moved or shared across projects. The `brain-init`\r\nbootstrap can optionally **seed** a new project from such a bundle if you point it at one. No\r\ncurated starter pack is bundled with this release — seeding is a mechanism, not a shortcut, and\r\nthe cold-start cost is yours to fill honestly.\r\n\r\n## Installation\r\n\r\n### Option A: VS Code Copilot Agent Plugin (Recommended)\r\n\r\nThe Brain ships as a host-neutral plugin bundle (`.claude-plugin/plugin.json` +\r\n`hooks/` + `skills/` + `agents/`) that VS Code Copilot Chat consumes through two\r\nexperimental settings. Both Claude Desktop and VS Code read the same files.\r\n\r\n**1. Install the package:**\r\n```bash\r\nnpm install -D @borntorecycle/mcp-the-brain\r\n```\r\nThis places the full plugin bundle (`.claude-plugin/`, `hooks/`, `skills/`,\r\n`agents/`) under `node_modules/@borntorecycle/mcp-the-brain`.\r\n\r\n**2. Register the plugin in your VS Code settings (user or workspace):**\r\n```jsonc\r\n// settings.json — BOTH entries are required\r\n{\r\n  \"chat.useCustomAgentHooks\": true,\r\n  \"chat.pluginLocations\": {\r\n    \"node_modules/@borntorecycle/mcp-the-brain\": true\r\n  }\r\n}\r\n```\r\n\r\n> The path is resolved relative to your workspace root, so the same setting is\r\n> team-portable and committable — no absolute machine paths.\r\n\r\nWithout `chat.useCustomAgentHooks: true`, hooks will not fire even with a valid\r\n`chat.pluginLocations`. Both settings are currently marked experimental but are\r\nworking in VS Code Copilot Chat 0.44.2+.\r\n\r\n**3. Reload VS Code.** The plugin auto-activates and provides:\r\n- **MCP Server** — brain tools available in chat\r\n- **Lifecycle Hooks** — `SessionStart` and `UserPromptSubmit` fire in VS Code; `SubagentStart` fires in Claude Desktop only (see Hook Support Matrix below)\r\n- **Skills** — `brain-init`, `memory-extraction`, `brain-review`\r\n- **Agent** — `brain-reviewer` for hygiene audits\r\n\r\n**4. Initialize your project:**\r\nAsk Copilot: *\"Use the brain-init skill to set up brain in this project\"*\r\n\r\nThis creates `.brain.json` and the memory directory structure.\r\n\r\n**5. Verify the plugin is live:**\r\nAsk Copilot: *\"Call `brain_status`\"*. A healthy response shows `totalFires > 0`\r\nand `lastFire.hook: \"SessionStart\"` after a fresh session. Raw log lives at\r\n`~/.brain/logs/hooks.log` (JSONL, one line per hook fire).\r\n\r\n#### Hook Support Matrix\r\n\r\n| Hook | Claude Desktop | VS Code Copilot 0.44.2+ |\r\n|------|----------------|-------------------------|\r\n| `SessionStart`     | ✅ fires | ✅ fires |\r\n| `UserPromptSubmit` | ✅ fires | ✅ fires |\r\n| `SubagentStart`    | ✅ fires | ❌ not fired |\r\n\r\nIn VS Code, per-subagent context injection is the host agent's responsibility —\r\nyour coding agent should embed `recall_knowledge` results into subagent prompts.\r\nThe `SubagentStart` script still executes in tests and in Claude Desktop.\r\n\r\n### Option B: MCP Server Only (without plugin)\r\n\r\nIf you only want the MCP tools (no hooks, skills, or agents):\r\n\r\n**1. Add to `.vscode/mcp.json`:**\r\n```json\r\n{\r\n  \"servers\": {\r\n    \"the-brain\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@borntorecycle/mcp-the-brain\"],\r\n      \"cwd\": \"${workspaceFolder}\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**2. Create `.brain.json` in your project root:**\r\n```json\r\n{\r\n  \"schema\": 2,\r\n  \"projectName\": \"Your-Project\",\r\n  \"memoryRoot\": \"memories/project\",\r\n  \"sharedMemoryRoot\": \"~/.brain/shared\",\r\n  \"embedding\": {\r\n    \"provider\": \"ollama\",\r\n    \"model\": \"nomic-embed-text\"\r\n  }\r\n}\r\n```\r\n\r\n**3. Create memory directories:**\r\n```bash\r\nmkdir -p memories/project ~/.brain/shared\r\n```\r\nOn Windows PowerShell:\r\n```powershell\r\nNew-Item -ItemType Directory -Force memories/project, \"$HOME/.brain/shared\"\r\n```\r\n\r\n### Optional: Semantic Search\r\n\r\nInstall Ollama for embedding-powered semantic search:\r\n```\r\nollama pull nomic-embed-text\r\n```\r\nWithout Ollama, The Brain works in text-only mode (keyword matching).\r\n\r\n---\r\n\r\n## Plugin Features\r\n\r\n### Lifecycle Hooks\r\n\r\nThe plugin automatically injects brain context at key moments:\r\n\r\n| Hook | Event | What it does |\r\n|------|-------|--------------|\r\n| **Session Briefing** | `SessionStart` | Injects top 3 most recent validated entries |\r\n| **Prompt Advisor** | `UserPromptSubmit` | Keyword-matches your prompt against entry titles/tags, injects relevant entries |\r\n| **Subagent Context** | `SubagentStart` | Filters entries by agent→subsystem mapping from `.brain.json` |\r\n\r\nAll hooks are sub-second (local file reads only, no MCP calls, no network).\r\n\r\n### Skills\r\n\r\n| Skill | Purpose |\r\n|-------|---------|\r\n| `brain-init` | Bootstrap a new project for brain usage (creates `.brain.json` + directories) |\r\n| `memory-extraction` | Extract structured knowledge from ADRs and design sessions |\r\n| `brain-review` | Audit brain health: staleness, contradictions, orphans, broken chains |\r\n\r\n### Agent\r\n\r\n| Agent | Purpose |\r\n|-------|---------|\r\n| `brain-reviewer` | Run brain hygiene checks and produce actionable recommendations (read-only) |\r\n\r\n---\r\n\r\n## Multi-Project Support\r\n\r\nThe Brain graph server supports multiple VS Code workspaces simultaneously with strict memory isolation:\r\n\r\n- **One server, many projects:** A single graph server instance can serve multiple workspaces\r\n- **Project-specific status bar:** Each VS Code workspace shows only its own memory counts\r\n- **Project selector in web UI:** Switch between registered projects in the 3D graph view\r\n- **Shared memory overlay:** Optionally overlay shared entries from all projects (toggled per view)\r\n- **Automatic registration:** Each workspace registers itself when the extension activates\r\n\r\n### How It Works\r\n\r\n1. Open multiple Brain-enabled workspaces in VS Code\r\n2. Each workspace automatically registers with the running graph server\r\n3. Status bars show workspace-local counts\r\n4. Web UI (3D) includes a project selector dropdown\r\n5. Shared memory entries (promoted via `promote_to_shared`) are visible to all projects via the \"Overlay shared\" toggle\r\n\r\n**See [docs/architecture/project-memory-isolation.md](docs/architecture/project-memory-isolation.md) for detailed architecture and user guide.**\r\n\r\n---\r\n\r\n## .brain.json Configuration\r\n\r\n```jsonc\r\n{\r\n  \"schema\": 2,\r\n  \"projectName\": \"My-Project\",\r\n  \"memoryRoot\": \"memories/project\",\r\n  \"sharedMemoryRoot\": \"~/.brain/shared\",\r\n  \"adrPaths\": [\"Design_Sessions/\"],   // Optional: for scan_uningested_adrs\r\n  \"embedding\": {\r\n    \"provider\": \"ollama\",\r\n    \"model\": \"nomic-embed-text\"\r\n  },\r\n  \"agentSubsystemMap\": {               // Optional: for SubagentStart hook\r\n    \"backend-agent\": [\"api\", \"database\"],\r\n    \"debug-agent\": [\"runtime\", \"bugs\"],\r\n    \"ui-agent\": [\"ui\", \"components\"]\r\n  }\r\n}\r\n```\r\n\r\n### agentSubsystemMap\r\n\r\nMaps agent names to subsystem tags. The SubagentStart hook uses this to filter entries — each agent only sees brain entries relevant to its domain.\r\n\r\nIf an agent is not in the map (or the field is absent), the hook falls back to showing the 3 most recent entries.\r\n\r\n---\r\n\r\n## MCP Tools\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `recall_knowledge` | Search memories by query, subsystem, tags, type |\r\n| `record_entry` | Create a new memory entry |\r\n| `update_entry` | Update or supersede an existing entry |\r\n| `list_by_subsystem` | List entries for a specific module/subsystem |\r\n| `promote_to_shared` | Copy entry to cross-project shared memory |\r\n| `export_knowledge` | Serialize entries to a portable `.brain-pack.json` bundle |\r\n| `import_knowledge` | Merge a portable `.brain-pack.json` bundle into the store |\r\n| `rebuild_index` | Regenerate index + embeddings from .md files |\r\n| `add_relation` | Create a graph edge between two entries |\r\n| `query_graph` | Query the knowledge graph |\r\n| `memory_stats` | Get brain health statistics |\r\n| `scan_uningested_adrs` | Find ADRs not yet extracted into brain |\r\n| `suggest_from_adr` | Generate brain entry suggestions from an ADR |\r\n\r\n---\r\n\r\n## Architecture\r\n\r\n```\r\n.brain.json                    # Per-project config (in your repo root)\r\nmemories/project/              # Project-scoped memory entries (.md + index.json)\r\n~/.brain/shared/               # Cross-project shared memory\r\n```\r\n\r\n**Plugin layout** (in this repo):\r\n```\r\n.claude-plugin/plugin.json     # Plugin manifest (VS Code Agent Plugin)\r\n.mcp.json                      # Plugin MCP server definition\r\nhooks/\r\n  hooks.json                   # Hook event → script mapping\r\n  scripts/                     # Hook scripts (local reads, sub-second)\r\nskills/                        # Plugin skills\r\nagents/                        # Plugin agents\r\nsrc/                           # MCP server source (TypeScript)\r\ndist/                          # Built MCP server (published to npm)\r\n```\r\n\r\n---\r\n\r\n## Cross-Tool Compatibility\r\n\r\nThe plugin uses Claude format (`.claude-plugin/plugin.json`) which VS Code auto-detects. It works with:\r\n- **GitHub Copilot** in VS Code\r\n- **Claude Code** (native Claude plugin format)\r\n- **GitHub Copilot CLI**\r\n\r\nThe `${CLAUDE_PLUGIN_ROOT}` token is expanded by VS Code at runtime regardless of which AI backend you use.\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}