返回市场
知识库服务器

知识库服务器

作者:mbcrawfo5 星标更新:2025-05-24

项目介绍

MCP知识库服务器

Docker镜像版本 构建状态

这是一个模型上下文协议(MCP)服务器,允许LLMs在对话过程中存储记忆,并在之后搜索这些记忆。记忆存储在一个SQLite数据库中,其全文搜索功能支持记忆搜索。

使用方法

两个环境变量控制数据库的位置和文件名。

DATABASE_NAME:使用默认位置,但可以自定义数据库文件名。例如,my_custom_db.sqlite

DATABASE_PATH:指定数据库文件的完整路径(忽略DATABASE_NAME)。例如,/Users/your_name/.db/my_db.sqlite

Docker

当使用Docker时,必须创建一个持久卷来存储数据库(高级用户可以选择挂载他们文件系统中的文件夹)。运行docker volume create knowledgebase进行设置,然后在您的claude_desktop_config.json中配置服务器如下。

如果您想使用Docker中的自定义数据库文件,您必须使用DATABASE_PATH并通过--env参数传递给Docker命令。例如(将这些字符串放在配置中的args数组中,在镜像名称之前),"--env", "DATABASE_PATH=/db/my_db.sqlite"

{
  "mcpServers": {
    "knowledgebase": {
      "command": "docker",
      "args": [
        "run",
        "--interactive",
        "--rm",
        "--volume", "knowledgebase:/db",
        "mbcrawfo/knowledge-base-server"
      ]
    }
  }
}

在本地使用dotnet CLI运行

  1. 您需要.Net 9 SDK
  2. 克隆此仓库。
  3. 导航到终端中的仓库目录并运行dotnet build
  4. 将以下配置添加到claude_desktop_config.json(如果遇到错误,请尝试指定dotnet CLI的完整路径)。

当在本地运行时,默认数据库位置在您的应用程序数据目录中。

{
  "mcpServers": {
    "knowledgebase": {
      "command": "dotnet",
      "args": [
        "run",
        "--project", "/full/path/to/repo/src/KnowledgeBaseServer/KnowledgeBaseServer.csproj",
        "--no-restore",
        "--no-build"
      ]
    }
  }
}

提示

该服务器包括一个“通用记忆使用”提示,以告知LLM如何使用记忆。然而,您可能希望使用自定义提示,以便更具体地适用于您的使用场景。

开发

您可以使用--init-db参数与应用一起使用,以创建或升级测试用的数据库。从KnowledgeBaseServer项目目录运行dotnet run -- --init-db /path/to/db.sqlite