项目简介
Sodateru是一个基于Model Context Protocol (MCP) 构建的服务器,其核心功能是托管和管理一个自更新的Agentic GraphRAG(智能体知识图谱)。它旨在解决LLM在处理大型、复杂任务时遇到的上下文丢失、信息埋没等问题,通过Agentic GraphRAG按需检索和存储必要的知识,为LLM提供精准的上下文信息和强大的知识管理能力。
主要功能点
- MCP服务器实现: 作为标准的MCP服务器运行,支持与MCP客户端(如LLM应用)通过标准协议进行通信。
- Agentic GraphRAG: 内置智能体驱动的知识图谱,能够自动处理输入的文本信息(分块、提取元数据、生成嵌入),构建和维护知识关联。
- 知识存储与检索工具: 提供核心工具供LLM或其他客户端调用,包括:
- 'upsertKnowledge':用于将文本数据添加到知识图谱中,自动进行处理和关联。
- 'queryKnowledge':用于根据查询从知识图谱中检索最相关的知识块。
- 持久化存储: 使用PostgreSQL数据库作为后端,持久化存储知识图谱的节点(知识块、嵌入、元数据)和边(关联关系)。
- 集成其他MCP服务: 内部实现MCP客户端功能,能够发现并调用其他MCP服务器提供的工具,增强自身能力(例如,未来可能通过其他MCP服务导入Obsidian或Notion数据)。
安装步骤
Sodateru需要PostgreSQL数据库来存储数据。推荐使用Docker启动数据库。
- 安装Docker和Node.js: 确保您的系统已安装Docker和Node.js环境。
- 启动PostgreSQL容器:
使用以下命令启动PostgreSQL数据库容器:
注意:如果已存在同名容器,请先使用 'docker rm -f sodateru-postgres' 删除。docker run -d --name sodateru-postgres \ -p 8989:5432 \ -v postgres_data:/var/lib/postgresql/data \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=password \ -e TZ=Asia/Tokyo \ 201610615/sodateru-postgres:v0.0.0 - 安装Sodateru: Sodateru通常作为npm包发布,可以通过'npx'直接运行。
服务器配置
MCP客户端(例如一个LLM编排器或IDE插件)需要通过配置文件来发现和启动Sodateru服务器。典型的MCP客户端配置(例如'mcp.json'文件的一部分)如下:
{ "mcpServers": { "sodateru": { "command": "npx", // 启动服务器的命令 "args": ["-y", "sodateru"], // 启动命令的参数,指示使用npx运行sodateru包 "env": { // 服务器进程所需的环境变量 "GOOGLE_GENERATIVE_AI_API_KEY": "{YOUR_API_TOKEN}", // **必填:** 用于Agent和嵌入模型访问Google API的密钥 "DATABASE_TYPE": "postgresql", // **必填:** 数据库类型,当前支持postgresql "DATABASE_USER": "user", // **必填:** 连接数据库的用户名(需与Docker命令一致) "DATABASE_PASSWORD": "password", // **必填:** 连接数据库的密码(需与Docker命令一致) "DATABASE_NAME": "sodateru", // **必填:** 数据库名称(需与Docker命令一致) "DATABASE_HOST": "localhost", // **必填:** 数据库主机地址(需与Docker命令中的端口映射和连接方式一致) "DATABASE_PORT": "8989" // **必填:** 数据库端口(需与Docker命令中的端口映射一致) // "MCP_CONFIG_FILE": "/path/to/your/mcp-config.json" // **可选:** 如果Sodateru需要加载其他MCP服务器配置,指定该JSON文件的路径 } } // 可以配置其他MCP服务器... } }
MCP客户端会根据这个配置来启动Sodateru进程,并通过Stdio等协议与之通信。
基本使用方法
作为MCP服务器,Sodateru的服务能力主要通过其提供的工具暴露给LLM客户端。LLM客户端通过MCP协议调用这些工具:
- 连接服务器: MCP客户端根据配置(如上所示)启动Sodateru进程并建立连接。
- 发现能力: 客户端可以查询服务器提供的工具列表(例如'upsertKnowledge'和'queryKnowledge')。
- 调用工具: LLM客户端根据需要调用相应的工具,例如:
- 当用户提供新的项目文档或背景信息时,LLM客户端可以调用 'upsertKnowledge' 工具将文本发送给Sodateru进行处理和存储。
- 当LLM需要回答一个需要背景知识的问题时,LLM客户端可以调用 'queryKnowledge' 工具,向Sodateru发送查询,获取相关的知识片段作为上下文。
Sodateru在接收到工具调用请求后,会在内部触发Agentic GraphRAG的逻辑,执行相应的知识处理和检索操作,并将结果通过MCP协议返回给客户端。
信息
分类
AI与计算