项目简介

MemoDB MCP服务器是一个实现了模型上下文协议(MCP)的服务端应用,旨在为AI客户端(如LLM应用)提供结构化的上下文数据和功能调用能力。它作为AI应用的后端,负责管理用户数据、对话历史和知识库,并允许LLM客户端通过标准化的JSON-RPC接口安全、高效地访问和操作这些资源。

主要功能点

  • 用户管理:支持用户的创建、读取、更新和删除,方便管理多用户场景下的数据隔离。
  • 对话数据管理:提供对话数据的插入、获取和删除功能,用于存储和检索用户的对话历史记录,支持上下文记忆。
  • 知识库管理
    • 知识查询:支持关键词查询知识库,并可按类型、标签、来源等多种条件进行过滤,满足复杂的知识检索需求。
    • 知识添加:允许添加新的知识条目,并支持设置知识的来源、类型和标签等元数据,方便知识的组织和管理。
    • 知识更新:支持更新已有的知识内容和元数据,保持知识库的实时性和准确性。
    • 知识关联:可以创建知识条目之间的关联关系,并设置关联类型和权重,构建知识网络,提升知识检索和推理能力。

安装步骤

  1. 安装Node.js和npm:确保你的环境中已安装Node.js和npm(Node包管理器)。
  2. 下载仓库代码:从GitHub仓库 https://github.com/wuyunmei/momedb-mcp 克隆或下载代码到本地。
  3. 安装依赖:在项目根目录下打开终端,运行以下命令安装项目依赖:
    npm install
  4. 构建项目:运行以下命令编译TypeScript代码:
    npm run build
  5. 配置环境变量
    • 在项目根目录下创建 '.env' 文件。
    • 在 '.env' 文件中配置以下环境变量:
      MEMOBASE_API_URL=your_api_url    # 后端API服务器地址,例如:https://api.example.com
      MEMOBASE_API_KEY=your_api_key    # 访问后端API服务器的密钥
    • 请替换 'your_api_url' 和 'your_api_key' 为你实际的后端API服务器地址和密钥。这两个配置项指向服务器实际存储和管理数据的后端服务。请注意,'momedb-mcp' 本身是一个MCP服务器的 接口 实现,它需要依赖于后端的API服务 (如MemoBase API) 来完成数据的持久化和管理。你需要先部署并配置好后端的API服务。

服务器配置 (MCP客户端配置)

对于需要连接 MemoDB MCP 服务器的 MCP 客户端,你需要提供以下配置信息。客户端会使用这些信息启动和连接服务器:

{
  "serverName": "memodb-mcp",  // MCP服务器的名称,可以自定义
  "command": "node",         // 启动服务器的命令,这里使用 node 运行 JavaScript 文件
  "args": [                  // 启动命令的参数
    "dist/index.js"          // 指定服务器入口文件路径,假设构建后的 index.js 文件在 dist 目录下
  ]
}

配置参数说明:

  • 'serverName': 为你的MCP服务器指定一个易于识别的名称,例如 "memodb-mcp-server"。这个名称仅用于客户端内部标识,可以根据需要自定义。
  • 'command': 运行服务器程序的可执行命令。由于该项目是 Node.js 应用,所以这里使用 'node' 命令来运行 JavaScript 文件。
  • 'args': 传递给 'command' 的参数列表。
    • '"dist/index.js"': 指定了服务器的入口文件路径。'dist/index.js' 是项目构建后生成的 JavaScript 文件,'index.js' 是服务器的主程序入口点。请确保路径与实际构建输出目录和入口文件名一致。

注意:

  • 确保客户端能够找到 'node' 命令(即 Node.js 已正确安装并添加到系统环境变量中)。
  • 'dist/index.js' 路径是基于项目构建后的输出目录结构的假设,请根据实际情况调整。如果你的构建配置不同,请修改为正确的入口文件路径。
  • MCP客户端需要根据自身的设计来读取和使用这个 JSON 配置。通常,客户端会提供界面或配置文件来让用户输入或选择 MCP 服务器配置。

基本使用方法

  1. 启动服务器:在项目根目录下打开终端,根据运行环境选择以下命令启动服务器:

    • 生产环境
      npm start
    • 开发环境
      npm run dev

    启动成功后,服务器将在标准输入/输出 (stdio) 上监听 MCP 客户端的请求。

  2. 使用MCP客户端连接服务器

    • 配置你的MCP客户端,使其使用上述 服务器配置 (MCP客户端配置) 中的 JSON 信息来连接到 MemoDB MCP 服务器。
    • 客户端通过标准输入发送符合 MCP 协议的 JSON-RPC 请求给服务器。
    • 服务器接收请求,处理后通过标准输出返回 JSON-RPC 响应。
  3. 调用工具 (Tools) 示例: 以下是一些通过 MCP 客户端调用服务器工具的示例 (以 'callTool' 函数为例,实际客户端调用方式可能有所不同):

    • 添加知识

      const result = await callTool('add_knowledge', {
        uid: 'user123',
        content: '人工智能是计算机科学的一个分支...',
        metadata: {
          source: 'wiki',
          type: 'article',
          tags: ['AI', '计算机科学', '技术']
        }
      });
      console.log(result);
    • 查询知识

      const result = await callTool('query_knowledge', {
        uid: 'user123',
        query: '人工智能',
        filters: {
          types: ['article'],
          tags: ['AI'],
          sources: ['wiki']
        },
        limit: 10
      });
      console.log(result);
    • 关联知识

      const result = await callTool('relate_knowledge', {
        uid: 'user123',
        source_kid: 'knowledge1',
        target_kid: 'knowledge2',
        relation_type: 'related_to',
        weight: 0.8
      });
      console.log(result);

    请参考仓库的 'README.md' 文件和代码中的 'src/index.ts' 以及 'src/tools' 目录,了解更多可用的工具和详细的参数说明。

信息

分类

数据库与文件