使用说明

项目简介

KnowledgeBase Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它允许大型语言模型 (LLM) 在对话过程中存储和检索记忆。记忆存储在 SQLite 数据库中,并利用其全文搜索功能实现高效的记忆检索。该服务器旨在为 LLM 应用提供结构化的长期记忆能力,提升对话的连贯性和智能化水平。

主要功能点

  • 记忆存储与管理: 支持创建、存储、更新和删除对话记忆,每个记忆可以关联主题和上下文信息。
  • 记忆检索: 提供基于关键词的记忆检索功能,LLM 可以搜索相关记忆以回顾对话历史或获取背景知识。
  • 记忆关联: 允许将不同的记忆节点连接起来,形成记忆网络,帮助 LLM 理解记忆之间的关系。
  • Prompt 模板: 内置 "General Memory Usage" Prompt 模板,指导 LLM 如何有效使用记忆工具。
  • 工具集成: 提供一系列工具 (Tools) 供 LLM 调用,例如创建记忆、搜索记忆、获取记忆详情、标记记忆为过期等。
  • Docker 部署: 支持 Docker 容器化部署,方便快速搭建和管理服务器。
  • 本地运行: 支持使用 .NET CLI 本地运行,方便开发和调试。

安装步骤

1. 环境准备

  • .NET 9 SDK (本地运行): 如果选择本地运行,请确保已安装 .Net 9 SDK
  • Docker (Docker 部署): 如果选择 Docker 部署,请确保已安装 Docker 环境。

2. 克隆仓库

git clone https://github.com/mbcrawfo/KnowledgeBaseServer
cd KnowledgeBaseServer

3. 构建项目 (本地运行)

如果您选择本地运行,请在仓库根目录下执行以下命令构建项目:

dotnet build

服务器配置

KnowledgeBase Server 可以通过以下两种方式配置并启动,您需要根据您的 MCP 客户端 (例如 Claude Desktop) 的配置要求,选择合适的启动方式,并将生成的配置信息填入客户端配置中。

方式一:Docker 部署配置

如果您使用 Docker 部署,请先创建一个 Docker volume 用于持久化存储数据库:

docker volume create knowledgebase

然后,在您的 MCP 客户端配置文件 'claude_desktop_config.json' 中添加以下服务器配置。请注意,您只需要复制 'mcpServers' 字段下的 'knowledgebase' 部分到您的客户端配置文件中。

{
  "mcpServers": {
    "knowledgebase": {
      "command": "docker",  // 启动命令为 docker
      "args": [             // 启动参数
        "run",              // docker run 命令
        "--interactive",    // 交互模式
        "--rm",             // 容器退出后自动删除
        "--volume", "knowledgebase:/db", // 挂载名为 knowledgebase 的 volume 到容器内的 /db 目录,用于持久化数据库
        "mbcrawfo/knowledge-base-server" // Docker 镜像名称
      ]
    }
  }
}

如果您需要自定义数据库文件名或路径,可以使用环境变量 'DATABASE_NAME' 或 'DATABASE_PATH'。例如,要使用自定义数据库文件 'my_db.sqlite',您可以修改 'args' 数组,添加 '--env' 参数:

{
  "mcpServers": {
    "knowledgebase": {
      "command": "docker",
      "args": [
        "run",
        "--interactive",
        "--rm",
        "--volume", "knowledgebase:/db",
        "--env", "DATABASE_PATH=/db/my_db.sqlite", // 设置 DATABASE_PATH 环境变量
        "mbcrawfo/knowledge-base-server"
      ]
    }
  }
}

方式二:本地 .NET CLI 运行配置

如果您选择本地 .NET CLI 运行,请在您的 MCP 客户端配置文件 'claude_desktop_config.json' 中添加以下服务器配置。请注意,您只需要复制 'mcpServers' 字段下的 'knowledgebase' 部分到您的客户端配置文件中。

{
  "mcpServers": {
    "knowledgebase": {
      "command": "dotnet", // 启动命令为 dotnet
      "args": [            // 启动参数
        "run",             // dotnet run 命令
        "--project", "/full/path/to/repo/src/KnowledgeBaseServer/KnowledgeBaseServer.csproj", //  指向 KnowledgeBaseServer.csproj 项目文件的完整路径,请替换为实际路径
        "--no-restore",    //  不执行 restore 操作,假设依赖已还原
        "--no-build"       //  不执行 build 操作,假设项目已构建
      ]
    }
  }
}

请务必将 '/full/path/to/repo/src/KnowledgeBaseServer/KnowledgeBaseServer.csproj' 替换为您克隆的仓库中 'KnowledgeBaseServer.csproj' 文件的实际完整路径。

本地运行时,默认数据库文件将存储在您操作系统的用户应用程序数据目录下。

基本使用方法

  1. 启动服务器: 根据您选择的部署方式(Docker 或本地 .NET CLI),启动 KnowledgeBase Server。
  2. 配置 MCP 客户端: 将上述生成的服务器配置信息添加到您的 MCP 客户端 (例如 Claude Desktop) 的配置文件中,确保客户端能够连接到 KnowledgeBase Server。
  3. 使用 LLM 进行对话: 启动 MCP 客户端,开始与 LLM 进行对话。LLM 将能够利用 KnowledgeBase Server 提供的记忆工具进行记忆的存储和检索,从而实现更智能、更连贯的对话体验。
  4. Prompt 模板: 您可以使用服务器内置的 "General Memory Usage" Prompt 模板,或者根据您的需求自定义 Prompt 模板,以指导 LLM 如何更好地使用记忆功能。

开发和测试:

如果您需要进行开发或测试,可以使用 '--init-db' 参数初始化或升级数据库。在 'KnowledgeBaseServer' 项目目录下,运行以下命令:

dotnet run -- --init-db /path/to/db.sqlite

这将在指定的路径创建或升级数据库文件。

信息

分类

数据库与文件