{"_id":"@delorenj/memory-bank-mcp","_rev":"4-f5cb32ae5343b9bb9928069753239c8e","name":"@delorenj/memory-bank-mcp","dist-tags":{"latest":"2.1.0"},"versions":{"2.0.0":{"name":"@delorenj/memory-bank-mcp","version":"2.0.0","keywords":["mcp","memory-bank","gemini","ai"],"author":{"name":"Jarad DeLorenzo"},"license":"MIT","_id":"@delorenj/memory-bank-mcp@2.0.0","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"dist":{"shasum":"02131b3189fe982cb231b7114ca36f61bdb59097","tarball":"https://registry.npmjs.org/@delorenj/memory-bank-mcp/-/memory-bank-mcp-2.0.0.tgz","fileCount":25,"integrity":"sha512-0MOZpRylfsOssuZTrY0LLQRrB3nKtM8I6gc93h1wi0cfdj464UYeok3//O9Keqs/zL7kE8NrPd5LwDUSDBCvTA==","signatures":[{"sig":"MEYCIQDJG73f9j734bg/yw3uLo62Anpc9glYtE+gW1axBr+v8QIhAJbNXCZZrRY+La0xAloTFnb+LrGuKWOg/QjjIh1bmUKf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128441},"main":"dist/index.ts","type":"module","types":"./dist/index.d.ts","gitHead":"2d2215d34d6ec24c9a34b72acd8aecccdfbb771b","private":false,"scripts":{"dev":"NODE_OPTIONS=\"--loader ts-node/esm --experimental-specifier-resolution=node\" ts-node src/index.ts","build":"tsc","start":"node dist/index.ts"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.3.0","description":"Implements a file based memory bank and provides a set of tools for interacting with it.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"zod":"^3.22.4","dotenv":"^16.3.1","fs-extra":"^11.2.0","@google/generative-ai":"^0.2.0","@modelcontextprotocol/sdk":"^1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/node":"^20.10.5","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/memory-bank-mcp_2.0.0_1747628531257_0.7182996031994693","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@delorenj/memory-bank-mcp","version":"2.0.2","keywords":["mcp","memory-bank","gemini","ai"],"author":{"name":"Jarad DeLorenzo"},"license":"MIT","_id":"@delorenj/memory-bank-mcp@2.0.2","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"memory-bank-mcp":"dist/index.js"},"dist":{"shasum":"a2c66c3a4fa9a07b1a806fca80b70f7ba4da8824","tarball":"https://registry.npmjs.org/@delorenj/memory-bank-mcp/-/memory-bank-mcp-2.0.2.tgz","fileCount":25,"integrity":"sha512-7FmWWIMJZj4V6DKWqUhpSfeM3sYwBga3ob7u1lB3b2TvDt15IzBfEo7VH76Q6ELu+gIiF52jTaix3zm94u2kgw==","signatures":[{"sig":"MEQCIE5GkXQKx4HSpjjMStqcp1tGS1HEZyYFlGWlEQesCwm0AiB+J8Y/vrozECpSCGPplUbM0e/Llgr3n6Cj8p6j64HjoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128571},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c61c41c4d99fbd5abcb9f63102e2c1698443b875","private":false,"scripts":{"dev":"NODE_OPTIONS=\"--loader ts-node/esm --experimental-specifier-resolution=node\" ts-node src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.3.0","description":"Implements a file based memory bank and provides a set of tools for interacting with it.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"zod":"^3.22.4","dotenv":"^16.3.1","fs-extra":"^11.2.0","@google/generative-ai":"^0.2.0","@modelcontextprotocol/sdk":"^1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/node":"^20.10.5","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/memory-bank-mcp_2.0.2_1747629324643_0.6855081347232794","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@delorenj/memory-bank-mcp","version":"2.0.3","keywords":["mcp","memory-bank","gemini","ai"],"author":{"name":"Jarad DeLorenzo"},"license":"MIT","_id":"@delorenj/memory-bank-mcp@2.0.3","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"memory-bank-mcp":"dist/index.js"},"dist":{"shasum":"1f6f313978efb108c35c0427b74cf6482e458450","tarball":"https://registry.npmjs.org/@delorenj/memory-bank-mcp/-/memory-bank-mcp-2.0.3.tgz","fileCount":13,"integrity":"sha512-lrSwyQmgSU5p5ymB7iB5S8BrkD+Psg+uMCFxgP9eb7ORy+hNI0FnpmqGwopH8EU6SBSxAoIg35TQdXjq1Du/sQ==","signatures":[{"sig":"MEQCICk0FrowBBBreuF2L5mxbkMkms9kAcW5L+8/xHdkxxUGAiAXtR2OP8OXbwsNtSZjJkk0yQsmjGKmBK9YBjGMYVDymw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65828},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"58b8fa7d12fd23024b23893f58b9cbe75ba9d3db","private":false,"scripts":{"dev":"NODE_OPTIONS=\"--loader ts-node/esm --experimental-specifier-resolution=node\" ts-node src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.3.0","description":"Implements a file based memory bank and provides a set of tools for interacting with it.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"zod":"^3.22.4","dotenv":"^16.3.1","fs-extra":"^11.2.0","@google/generative-ai":"^0.2.0","@modelcontextprotocol/sdk":"^1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.3.3","@types/node":"^20.10.5","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/memory-bank-mcp_2.0.3_1747629704314_0.3955087607802439","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@delorenj/memory-bank-mcp","version":"2.1.0","description":"Implements a file based memory bank and provides a set of tools for interacting with it.","main":"dist/index.js","type":"module","private":false,"bin":{"memory-bank-mcp":"dist/index.js"},"publishConfig":{"access":"public"},"dependencies":{"@google/generative-ai":"^0.2.0","@modelcontextprotocol/sdk":"^1.8.0","dotenv":"^16.3.1","zod":"^3.22.4","fs-extra":"^11.2.0"},"devDependencies":{"@types/fs-extra":"^11.0.4","@types/node":"^20.10.5","ts-node":"^10.9.2","typescript":"^5.3.3"},"keywords":["mcp","memory-bank","gemini","ai"],"author":{"name":"Jarad DeLorenzo"},"license":"MIT","scripts":{"build":"tsc","start":"node dist/index.js","dev":"NODE_OPTIONS=\"--loader ts-node/esm --experimental-specifier-resolution=node\" ts-node src/index.ts"},"_id":"@delorenj/memory-bank-mcp@2.1.0","types":"./dist/index.d.ts","_integrity":"sha512-7JOCRWgGSjJstYCu29X1iGZuCiYg8RUwNKSBnNTrGilEvjhkKBHFVzJjaVU+QTKht2k1yoHLrewDI1ifVJjOUw==","_resolved":"/tmp/c68d86f48c4fb170dd3fe86e8565999f/delorenj-memory-bank-mcp-2.1.0.tgz","_from":"file:delorenj-memory-bank-mcp-2.1.0.tgz","_nodeVersion":"24.0.2","_npmVersion":"11.3.0","dist":{"integrity":"sha512-7JOCRWgGSjJstYCu29X1iGZuCiYg8RUwNKSBnNTrGilEvjhkKBHFVzJjaVU+QTKht2k1yoHLrewDI1ifVJjOUw==","shasum":"3801a831e048f3eacc71a5d960ba5ed91dd79631","tarball":"https://registry.npmjs.org/@delorenj/memory-bank-mcp/-/memory-bank-mcp-2.1.0.tgz","fileCount":13,"unpackedSize":65877,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGrN5tVwKDWB7k8JZUNxXwq95Z9pUDOs6vQhCW8+aEZ9AiBLkazxkMyiS+CyfegvG3dvpRZcUrwnI9q9EMxHHTQFpA=="}]},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"directories":{},"maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory-bank-mcp_2.1.0_1748328981461_0.36729798198079"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-19T04:22:11.181Z","modified":"2025-05-27T06:56:21.803Z","2.0.0":"2025-05-19T04:22:11.448Z","2.0.2":"2025-05-19T04:35:24.820Z","2.0.3":"2025-05-19T04:41:44.499Z","2.1.0":"2025-05-27T06:56:21.641Z"},"author":{"name":"Jarad DeLorenzo"},"license":"MIT","keywords":["mcp","memory-bank","gemini","ai"],"description":"Implements a file based memory bank and provides a set of tools for interacting with it.","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"readme":"# Memory Bank MCP\n\n<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/modelcontextprotocol/mcp/main/icon.png\" height=\"128\">\n  <h1>Memory Bank MCP</h1>\n  <p>\n    <b>A structured documentation system for project knowledge management via Model Context Protocol (MCP)</b>\n  </p>\n</div>\n\nMemory Bank is an MCP server that helps teams create, manage, and access structured project documentation. It generates and maintains a set of interconnected Markdown documents that capture different aspects of project knowledge, from high-level goals to technical details and day-to-day progress.\n\n## Features\n\n- **AI-Generated Documentation**: Leverages Gemini API to automatically generate comprehensive project documentation\n- **Structured Knowledge System**: Maintains six core document types in a hierarchical structure\n- **MCP Integration**: Implements the Model Context Protocol for seamless integration with AI assistants\n- **Customizable Location**: Specify where you want your Memory Bank directory created\n- **Document Templates**: Pre-defined templates for project brief, product context, system patterns, etc.\n- **AI-Assisted Updates**: Update documents manually or regenerate them with AI assistance\n- **Advanced Querying**: Search across all documents with context-aware relevance ranking\n\n## Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/delorenj/memory-bank-mcp.git\ncd memory-bank-mcp\n\n# Install dependencies\npnpm install\n\n# Create .env file with your Gemini API key (optional)\necho \"GEMINI_API_KEY=your_api_key_here\" > .env\n```\n\n## Usage\n\n### Development Mode\n\n```bash\n# Start in development mode\npnpm run dev\n```\n\n### Production Mode\n\n```bash\n# Build the project\npnpm run build\n\n# Start in production mode\npnpm run start\n```\n\n### MCP Configuration\n\nTo integrate Memory Bank with the Model Context Protocol (MCP), add the following configuration to your `mcp.json` file:\n\n```json\n{\n  \"memoryBank\": {\n    \"command\": \"npx\",\n    \"args\": [\"@delorenj/memory-bank-mcp\"],\n    \"env\": {\n      \"GEMINI_API_KEY\": \"your_gemini_api_key_here\"\n    }\n  }\n}\n```\n\n## MCP Tools\n\nMemory Bank MCP provides the following tools via the Model Context Protocol:\n\n### `initialize_memory_bank`\n\nCreates a new Memory Bank structure with all document templates.\n\n**Parameters:**\n- `goal` (string): Project goal description (min 10 characters)\n- `geminiApiKey` (string, optional): Gemini API key for document generation\n- `location` (string, optional): Absolute path where memory-bank folder will be created\n\n**Example:**\n```javascript\nawait callTool({\n  name: \"initialize_memory_bank\",\n  arguments: {\n    goal: \"Building a self-documenting AI-powered software development assistant\",\n    location: \"/Users/username/Documents/projects/ai-assistant\"\n  }\n});\n```\n\n### Configuration\n\nMemory Bank can be configured using a `.memorybankconfig` file in JSON format:\n\n```json\n{\n  \"bankName\": \"memory-bank\",\n  \"bankPath\": \"./docs\"\n}\n```\n\n- `bankName`: The name of the memory bank folder (default: \"memory-bank\")\n- `bankPath`: The path where the memory bank folder will be created (default: \"./docs\")\n\nThe configuration file is optional. If not present, default values will be used.\nCommand-line parameters (like `location`) take precedence over config file values.\n\n### `update_document`\n\nUpdates a specific document in the Memory Bank.\n\n**Parameters:**\n- `documentType` (enum): One of: `projectbrief`, `productContext`, `systemPatterns`, `techContext`, `activeContext`, `progress`\n- `content` (string, optional): New content for the document\n- `regenerate` (boolean, default: false): Whether to regenerate the document using AI\n\n**Example:**\n```javascript\nawait callTool({\n  name: \"update_document\",\n  arguments: {\n    documentType: \"projectbrief\",\n    content: \"# Project Brief\\n\\n## Purpose\\nTo develop an advanced and user-friendly AI...\"\n  }\n});\n```\n\n### `query_memory_bank`\n\nSearches across all documents with context-aware relevance ranking.\n\n**Parameters:**\n- `query` (string): Search query (min 5 characters)\n\n**Example:**\n```javascript\nawait callTool({\n  name: \"query_memory_bank\",\n  arguments: {\n    query: \"system architecture components\"\n  }\n});\n```\n\n### `export_memory_bank`\n\nExports all Memory Bank documents.\n\n**Parameters:**\n- `format` (enum, default: \"folder\"): Export format, either \"json\" or \"folder\"\n- `outputPath` (string, optional): Custom output path for the export\n\n**Example:**\n```javascript\nawait callTool({\n  name: \"export_memory_bank\",\n  arguments: {\n    format: \"json\",\n    outputPath: \"/Users/username/Documents/exports\"\n  }\n});\n```\n\n## Document Types\n\nMemory Bank organizes project knowledge into six core document types:\n\n1. **Project Brief** (`projectbrief.md`): Core document defining project objectives, scope, and vision\n2. **Product Context** (`productContext.md`): Documents product functionality from a user perspective\n3. **System Patterns** (`systemPatterns.md`): Establishes system architecture and component relationships\n4. **Tech Context** (`techContext.md`): Specifies technology stack and implementation details\n5. **Active Context** (`activeContext.md`): Tracks current tasks, open issues, and development focus\n6. **Progress** (`progress.md`): Documents completed work, milestones, and project history\n\n## License\n\nMIT \n","readmeFilename":"README.md"}