使用说明
项目简介
mcp-elastic-memory 是一个基于 Model Context Protocol (MCP) 的知识图谱服务器实现,它使用 Elasticsearch 作为后端存储,旨在替代之前基于 JSON 文件的方案,提供更强大的扩展性和性能。该项目允许开发者构建可伸缩的知识库,并将其作为上下文服务提供给大型语言模型(LLM)客户端。
主要功能点
- 可扩展存储: 利用 Elasticsearch 的分布式特性,支持存储海量的知识图谱实体和关系。
- 高级搜索: 提供基于 Elasticsearch 的全文搜索、模糊匹配和相关性排序功能,支持复杂的查询需求。
- 类记忆行为: 跟踪实体访问模式,优先处理最近查看和重要的实体,模拟记忆机制。
- 多区域知识管理: 支持将知识划分为多个独立的“记忆区域 (Memory Zones)”,方便组织和隔离不同领域的知识。
- 跨区域关系: 允许实体之间建立跨越不同记忆区域的关系,增强知识图谱的连接性。
- 管理工具: 提供命令行界面 (Admin CLI) 用于知识图谱的维护和管理,包括数据导入导出、备份恢复、统计信息查看等。
- MCP 协议兼容: 完全遵循 Model Context Protocol 协议,可以与任何兼容 MCP 协议的 LLM 客户端进行交互。
安装步骤
-
克隆仓库:
git clone https://github.com/j3k0/mcp-elastic-memory.git cd mcp-elastic-memory -
安装依赖: 确保已安装 Node.js 18+ 和 npm。在项目根目录下运行:
npm install -
启动 Elasticsearch 集群: 确保已安装 Docker 和 Docker Compose。运行以下命令启动 Elasticsearch 集群:
npm run es:start -
构建项目:
npm run build
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是一个示例 'server_config.json' 配置,展示了如何配置 'mcp-elastic-memory' 服务器:
{ "serverName": "mcp-elastic-memory-server", "command": "npm", "args": ["start"], "transport": "stdio" }
参数注释:
- '"serverName"': 服务器名称,可以自定义。
- '"command"': 启动 MCP 服务器的命令,这里使用 'npm'。
- '"args"': 传递给启动命令的参数,'["start"]' 对应于 'package.json' 中定义的 'start' 脚本,该脚本会启动 'mcp-elastic-memory' 服务器。
- '"transport"': 指定 MCP 客户端与服务器通信的传输协议,这里使用 'stdio' (标准输入输出)。'mcp-elastic-memory' 还可能支持其他协议,请参考仓库文档进行配置。
更多配置:
'mcp-elastic-memory' 服务器还支持通过环境变量进行配置,例如 Elasticsearch 连接信息、默认记忆区域等。以下是一些常用的环境变量:
- 'ES_NODE': Elasticsearch 节点 URL (默认: 'http://localhost:9200')
- 'ES_USERNAME': Elasticsearch 用户名 (如果启用身份验证)
- 'ES_PASSWORD': Elasticsearch 密码 (如果启用身份验证)
- 'KG_DEFAULT_ZONE': 默认记忆区域名称 (默认: 'default')
基本使用方法
-
启动 MCP 服务器: 在项目根目录下运行:
npm start服务器成功启动后,会监听标准输入输出,等待 MCP 客户端的请求。
-
使用 Admin CLI (可选): 'mcp-elastic-memory' 提供了 'admin-cli.js' 命令行工具,用于管理知识图谱。例如,初始化 Elasticsearch 索引:
node dist/admin-cli.js init更多 Admin CLI 命令,请参考仓库 README 文档。
-
配置 MCP 客户端: 在您的 MCP 客户端应用中,配置连接到 'mcp-elastic-memory' 服务器,使用上面提供的 'server_config.json' 或类似配置。
-
通过 MCP 客户端与服务器交互: 使用 MCP 客户端发送请求到 'mcp-elastic-memory' 服务器,例如创建实体、创建关系、搜索知识等,服务器会根据请求执行相应的操作并返回响应。具体 API 使用方法请参考 MCP 协议文档以及 'mcp-elastic-memory' 仓库中 'MCP Server Tools' 章节的描述。
注意:
- 首次使用或重置知识图谱时,建议先运行 'node dist/admin-cli.js init' 初始化 Elasticsearch 索引。
- 可以使用 Admin CLI 工具导入已有的 JSON 格式知识图谱数据。
- 详细的配置选项和 Admin CLI 命令请参考仓库的 README.md 文件。
信息
分类
数据库与文件