
MCP KnowledgeBase Server

2025.04.15
2
C#记忆存储对话系统开发工具开发效率
KnowledgeBaseServer 是一个基于 Model Context Protocol (MCP) 的服务,允许大型语言模型(LLM)在对话过程中存储记忆并在之后进行搜索。记忆存储在 SQLite 数据库中,利用其全文搜索功能来检索记忆。
View on GitHub
Overview
基本能力
产品定位
KnowledgeBaseServer 是一个用于存储和检索 LLM 对话记忆的服务,旨在提升对话系统的上下文管理能力。
核心功能
- 记忆存储:允许 LLM 在对话过程中存储记忆。
- 记忆搜索:利用 SQLite 的全文搜索功能检索存储的记忆。
- 环境变量配置:通过
DATABASE_NAME
和DATABASE_PATH
环境变量自定义数据库位置和文件名。 - Docker 支持:支持通过 Docker 容器运行服务,并可配置持久化存储卷。
- 本地运行:支持通过 .Net CLI 本地运行。
- 自定义提示:支持自定义提示以指导 LLM 如何使用记忆。
适用场景
- 对话系统:用于存储和检索对话上下文,提升对话连贯性。
- 开发测试:开发者可以通过
--init-db
参数创建或升级测试数据库。 - 个性化记忆管理:通过自定义数据库路径和提示,满足个性化需求。
工具列表
- Docker:用于容器化部署服务,支持持久化存储卷。
- .Net CLI:用于本地运行和开发测试。
- SQLite:作为底层数据库,提供全文搜索功能。
常见问题解答
- 服务挂起问题:由于 .Net MCP 库的 bug,服务可能在关闭时挂起,需手动终止 Docker 容器或本地进程。
- 数据库配置:通过
DATABASE_NAME
和DATABASE_PATH
环境变量配置数据库位置和文件名。
使用教程
使用依赖
- Docker:需安装 Docker 以运行容器化服务。
- .Net 9 SDK:本地运行需安装 .Net 9 SDK。
安装教程
Docker 安装
- 创建持久化存储卷:
bash docker volume create knowledgebase
- 配置
claude_desktop_config.json
文件,添加以下内容:json { "mcpServers": { "knowledgebase": { "command": "docker", "args": [ "run", "--interactive", "--rm", "--volume", "knowledgebase:/db", "mbcrawfo/knowledge-base-server" ] } } }
本地安装
- 克隆仓库:
bash git clone <repository_url>
- 构建项目:
bash dotnet build
- 配置
claude_desktop_config.json
文件,添加以下内容:json { "mcpServers": { "knowledgebase": { "command": "dotnet", "args": [ "run", "--project", "/full/path/to/repo/src/KnowledgeBaseServer/KnowledgeBaseServer.csproj", "--no-restore", "--no-build" ] } } }
调试方式
- 初始化数据库:
bash dotnet run -- --init-db /path/to/db.sqlite
- 检查日志:查看服务运行日志以排查问题。