Personal KB MCP Server
使用说明(简要概览)
- 项目简介 该仓库实现了一个 MCP 服务器端,提供统一接口向大型语言模型客户端暴露知识库中的资源(Entries、Edges 等)、可执行的工具(如 kb_store、kb_search、kb_ask、kb_ingest 等)以及可渲染的 Prompt 模板,支持会话管理、能力声明与多传输协议接入。
- 主要功能点
- 资源管理:持久化知识条目、版本历史、嵌入向量与图关系,支持检索、查看、更新等操作。
- 工具注册与执行:暴露 kb_store、kb_search、kb_get、kb_ask、kb_summarize、kb_ingest 等工具,支持前缀命名以便多实例并行使用。
- Prompt 与 Syntheses:提供用于图谱 enrich、查询规划、结果合成等任务的系统提示与模板,支持多 LLM 提供商(Anthropic、Bedrock、Ollama)以及本地推理引擎。
- MCP 协议实现:通过 JSON-RPC 形式接收来自客户端的请求,返回结果或流式通知。
- 会话与身份:支持多用户署名、审计、指派贡献者和团队等元数据,并提供图谱可视化与探索支持。
- 部署与可移植性:可在本地或云端通过 stdio、WebSocket、Server-Sent Events 等传输方式对接客户端。
- 安装与运行
- 克隆仓库并安装依赖。
- 通过 uvx(uvx 是一个将 MCP 客户端和服务端整合运行的工具)启动服务器,或直接运行源码中的启动入口。
- 配置 MCP 客户端,让其指向该 MCP 服务器(示例配置见下方 JSON 配置段)。
- 服务器配置(给 MCP 客户端使用)
MCP 客户端需要独立配置以连接到服务器。下面提供一份准确的 JSON 配置示例(请按实际环境替换占位符):
{
"mcpServers": {
"personal-kb": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/jason-weddington/personal-kb-mcp.git", "personal-kb"],
"env": {
"KB_DATABASE_URL": "postgresql://user:pass@host:5432/kb", // 若使用 PostgreSQL,请设置;若使用 SQLite,则可不设置该项
"KB_CONTRIBUTOR": "your-name", // 可选:给当前实例标注贡献者
"KB_TEAM": "your-team", // 可选:团队标注
"ANTHROPIC_API_KEY": "your-anthropic-key", // 若使用 Anthropic 提供商
"KB_EXTRACTION_PROVIDER": "anthropic", // 提取阶段 LLM 提供者
"KB_QUERY_PROVIDER": "anthropic", // 查询阶段 LLM 提供者
"KB_BEDROCK_REGION": "us-east-1", // Bedrock(如使用)区域
"KB_BEDROCK_MODEL": "us.anthropic.claude-haiku-4-5-20251001-v1:0" // Bedrock 模型 ID
}
}
}
}
注释说明
- server name 对应 MCP 客户端中的服务器标识
- command 与 args 用于启动 MCP 服务端进程的命令及参数(如 uvx + 制定仓库入口)
- env 中的变量用于配置数据库连接、参与者、以及 LLM 提供者等
- 基本使用方法
- 启动 MCP 服务器:使用 uvx 运行本仓库的入口,或直接运行 src/personal_kb/main.py 所在的启动入口(视具体部署方式而定)。
- 客户端交互:客户端通过 JSON-RPC 调用服务器暴露的工具与资源接口,如 kb_store、kb_search、kb_get、kb_ask、kb_summarize 等。
- 会话与扩展:通过环境变量可开启多用户署名、审计、以及图谱探索 UI,支持 Ollama、Anthropic、Bedrock 等后端。
- 运行时注意事项
- 根据需求选择嵌入向量服务(如 Ollama)与 LLM 提供商组合,服务器设计为对可选组件“容错”,核心存储、检索功能在无外部依赖时仍可使用。
- 如需生产级别并发,请结合 Postgres 数据库并调整连接池设置与向量存储实现。
- 安全性与合规:多用户环境下的 attribution、审计日志仅作可见性提升,并非强制性访问控制。