Context Vault MCP 服务器
- 项目简介
- context-vault 是一个完整的 MCP 服务器实现,依托本地文件系统作为知识库、SQLite 作为数据库、以及可选的嵌入式向量模型进行语义检索,向 LLM 客户端提供统一的上下文服务。服务器通过 MCP 协议与客户端进行 JSON-RPC 风格的请求/响应,注册并暴露多种“工具”的执行能力,以及基于知识库的 Prompt 渲染能力。
- 主要功能点
- 资源与工具管理:托管知识条目(Insight/Decision/Pattern 等)、注册并执行工具(如 get_context、save_context、删除、列举等)。
- Prompt 与渲染:提供统一的上下文渲染输出(如 Session Start、Snapshot、Consolidation 等),可供 LLM 嵌入到交互中。
- 数据访问与向量检索:本地 Markdown 条目存储、前端/文本检索、可选嵌入向量检索(向量模型为外部包提供的能力,工作与否取决于环境)。
- 会话与安全:支持会话相关能力、数据隔离、并发访问管理,以及 对客户端请求的错误处理与日志记录。
- 传输协议支持:当前实现通过标准输入/输出等通道与 MCP 客户端对接,亦可未来扩展为 WebSocket/SSE 等传输。
- 安装步骤
- 获取代码并安装依赖。
- 在本地环境准备 Vault 目录与数据目录(默认 Vault 路径为 ~/vault,MCP 数据/配置在 ~/.context-mcp)。
- 启动 MCP 服务器(具体方式见下方“服务器配置”说明)。
- 服务器配置(MCP 客户端需要的配置信息)
- 服务器名称:context-vault
- 启动命令及参数(MCP 客户端需要的最小信息,用于构建客户端连接配置):
- 名称(server name):context-vault
- 命令(command):context-vault
- 参数(args):serve --vault-dir <你的 Vault 路径>
- 服务器配置信息示意(JSON 结构,供 MCP 客户端在本地环境或 hosted 环境中做连接配置用;客户端不需要额外的服务器端实现代码,仅需要知道如何连接):
- mcpServers: { "context-vault": { "name": "context-vault", "command": "context-vault", "args": ["serve", "--vault-dir", "<你的 Vault 路径>"] } }
- 配置要点说明:
- 服务器名称用于在 MCP 客户端侧识别同义服务或跨服务调用。
- command 指定启动服务器的可执行程序(在本实现中通常是 context-vault CLI)。
- args 指定服务器启动参数,至少应包含 serve 以及 Vault 目录路径。
- 以上配置信息仅用于 MCP 客户端的连接,不涉及服务端逻辑实现细节,服务器端实现已在代码中完成。
- 基本使用方法
- 启动与连接
- 以本地环境为例,启动 MCP 服务器后,客户端通过 JSON-RPC 调用向服务器请求资源、调用工具、获取 Prompt 模板等。
- 常用操作
- 保存/更新知识条目(save_context);
- 读取/搜索知识(get_context);
- 列出、筛选与管理条目(list_context、context-status 等工具);
- 执行与调用工具,获取上下文输出以供 LLM 使用;
- 使用 get_context 获取带有上下文的 Prompt 输出,并可通过 follow_links 查询相关条目。
- 最低配置示例
- MCP 客户端在连接context-vault 时应引用上文描述的 server name 与启动命令参数,确保 MCP 客户端能通过 JSON-RPC 与服务器进行通信。
- 启动与连接