这是一个模型上下文协议(MCP)服务器,允许LLMs在对话过程中存储记忆,并在之后搜索这些记忆。记忆存储在一个SQLite数据库中,其全文搜索功能支持记忆搜索。
两个环境变量控制数据库的位置和文件名。
DATABASE_NAME:使用默认位置,但可以自定义数据库文件名。例如,my_custom_db.sqlite。
DATABASE_PATH:指定数据库文件的完整路径(忽略DATABASE_NAME)。例如,/Users/your_name/.db/my_db.sqlite。
当使用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 build。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。