MCP KnowledgeBase Server
这是一个基于 Model Context Protocol (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"
。本地运行(使用 dotnet CLI)
- 需要安装 .Net 9 SDK。
- 克隆此仓库。
- 在终端中导航到仓库目录,运行
dotnet build
。
- 将以下配置添加到
claude_desktop_config.json
中(如果遇到错误,请尝试指定 dotnet CLI 的完整路径)。
本地运行时,默认数据库位置位于您的应用程序数据目录中。
提示(Prompts)
服务器包含一个“General Memory Usage”提示,用于告知 LLM 如何使用记忆。不过,您可以根据自己的需求使用自定义提示。
开发
您可以使用
--init-db
参数来创建或升级测试数据库。在 KnowledgeBaseServer 项目目录中运行:dotnet run -- --init-db /path/to/db.sqlite
。- Author:waytomcp
- URL:https://www.waytomcp.com/article/mbcrawfo/KnowledgeBaseServer
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!