结构化知识管理服务

Memory Bank MCP 是一个基于模型上下文协议(MCP)的结构化项目知识管理服务,通过标准化协议为LLM提供项目文档的生成、管理和查询功能。

  • by tuncer-byte
  • TypeScript
  • 本地部署
  • 101 星标
  • 更新于
在 GitHub 查看 tuncer-byte/memory-bank-MCP

使用说明

存储库MCP

Memory Bank MCP

Structured project knowledge management for LLMs via Model Context Protocol (MCP)


注: 这不是一个传统的Node.js应用程序。存储库MCP是 MCP服务器--组件中 模型上下文协议 生态系统。它使用标准化协议将项目知识暴露给LLM驱动的代理和工具,实现与AI客户端的无缝集成(例如,Claude Desktop、IDE或自定义LLM代理)。


什么是模型上下文协议(MCP)?

MCP是一个开放协议,它规范了应用程序如何向LLM提供上下文。将MCP视为AI的USB-C端口:它提供了一种通用的方式,将AI模型连接到本地和远程的数据源和工具。MCP启用:

  • 即插即用集成 在LLM、数据和工具之间
  • LLM提供商之间的切换 摩擦最小
  • 安全的模块化架构 用于构建人工智能工作流程

了解更多: MCP简介

关于存储库MCP

存储库MCP是 MCP服务器 这有助于团队创建、管理和访问结构化的项目文档。它生成并维护相互关联的Markdown文档,捕获项目知识的各个方面,从高级目标到技术细节和日常进度。它被设计为由MCP兼容客户端和LLM代理访问。

特性

  • 人工智能生成的文档:使用Gemini API生成和更新项目文档
  • 结构化知识体系:在层次结构中维护六种核心文档类型
  • MCP服务器:实现与LLM代理和工具集成的模型上下文协议
  • 可定制的存储:选择创建内存库目录的位置
  • 文档模板:项目简介、产品背景、系统模式等的预定义模板。
  • 人工智能辅助更新:手动更新文档或使用AI重新生成文档
  • 高级查询:使用上下文感知相关性排名搜索所有文档

安装

# Clone the repository
git clone https://github.com/tuncer-byte/memory-bank-mcp.git
cd memory-bank-mcp

# Install dependencies
npm install

# (Optional) Create .env file with your Gemini API key
echo "GEMINI_API_KEY=your_api_key_here" > .env

用法

注: Memory Bank MCP旨在作为MCP服务器运行,而不是作为独立应用程序运行。您通常将其作为MCP工作流的一部分启动,并从MCP兼容的客户端(如Claude Desktop或您自己的LLM代理)连接到它。

开发模式

npm run dev

生产模式

npm run build
npm run start

MCP集成

要将内存库MCP连接到MCP客户端,请在您的MCP客户端中添加以下内容 mcp.json 配置:

{
  "memoryBank": {
    "command": "node",
    "args": ["/path/to/memory-bank-mcp/dist/index.js"],
    "env": {
      "GEMINI_API_KEY": "your_gemini_api_key_here"
    }
  }
}

替换 /path/to/memory-bank-mcp/dist/index.js 使用构建文件的绝对路径,并在需要时添加Gemini API密钥。


存储库暴露的MCP工具

存储体MCP通过模型上下文协议提供以下工具:

initialize_memory_bank

使用所有文档模板创建新的内存库结构。

参数:

  • goal (字符串):项目目标描述(最少10个字符)
  • geminiApiKey (字符串,可选):用于生成文档的Gemini API密钥
  • location (string,可选):创建内存库文件夹的绝对路径

例子:

await callTool({
  name: "initialize_memory_bank",
  arguments: {
    goal: "Building a self-documenting AI-powered software development assistant",
    location: "/Users/username/Documents/projects/ai-assistant"
  }
});

update_document

更新记忆库中的特定文档。

参数:

  • documentType (enum):以下之一: projectbrief, productContext, systemPatterns, techContext, activeContext, progress
  • content (字符串,可选):文档的新内容
  • regenerate (boolean,默认值:false):是否使用AI重新生成文档

例子:

await callTool({
  name: "update_document",
  arguments: {
    documentType: "projectbrief",
    content: "# Project Brief\n\n## Purpose\nTo develop an advanced and user-friendly AI..."
  }
});

query_memory_bank

使用上下文感知相关性排名在所有文档中搜索。

参数:

  • query (字符串):搜索查询(最少5个字符)

例子:

await callTool({
  name: "query_memory_bank",
  arguments: {
    query: "system architecture components"
  }
});

export_memory_bank

导出所有内存库文档。

参数:

  • format (枚举,默认值:“文件夹”):导出格式,可以是“json”或“文件夹”
  • outputPath (字符串,可选):导出的自定义输出路径

例子:

await callTool({
  name: "export_memory_bank",
  arguments: {
    format: "json",
    outputPath: "/Users/username/Documents/exports"
  }
});

文档类型

记忆库将项目知识组织成六种核心文档类型:

  1. 项目简介 (projectbrief.md):定义项目目标、范围和愿景的核心文件
  2. 产品背景 (productContext.md):从用户角度记录产品功能
  3. 系统模式 (systemPatterns.md):建立系统架构和组件关系
  4. 技术背景 (techContext.md):指定技术栈和实现细节
  5. 活动上下文 (activeContext.md):跟踪当前任务、未决问题和开发重点
  6. 进展 (progress.md):记录已完成的工作、里程碑和项目历史

许可证

麻省理工学院