Quiver MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了基于 MCP 的服务器端组件,允许 LLM 客户端通过 JSON-RPC 与后端通信,获取数据资源、注册并执行工具、以及渲染和获取 Prompt/上下文信息等能力。
-
主要功能点
- 提供与 MCP 客户端的交互入口,支持初始化、工具(如 run_query、get_context)调用等请求的处理
- 统一的会话管理与多租户支持
- 数据源整合:内置会话池、缓存、以及对不同数据源(内存表、BigQuery、PostgreSQL 等)的访问
- 提供上下文渲染能力(DDL、关系、指标、示例等)以供 LLM 进行上下文理解
- 支持多传输协议的扩展框架(README/架构中提及,实际实现覆盖 STDIO 场景)
- 内置测试用例,覆盖服务信息、工具列出、查询执行、上下文获取等
-
安装步骤
- 使用 Cargo 构建 MCP 服务所在的 crate(quiver-mcp):
- 在项目根目录执行构建命令,或仅构建该 crate:
- cargo build -p quiver-mcp
- 在项目根目录执行构建命令,或仅构建该 crate:
- 运行 MCP 服务器(当前实现提供 STDIO 传输入口,默认通过 qv-mcp 命令暴露)
- 通过二进制直接运行并指定传输方式,例如 STDIO(若环境配置允许可使用现成二进制)
- 运行后端所需的依赖服务(若使用外部数据源,如 PostgreSQL、BigQuery 等),请按仓库相应 crate 的文档进行配置与启动
- 使用 Cargo 构建 MCP 服务所在的 crate(quiver-mcp):
-
服务器配置(MCP 客户端需要的最小配置信息) 说明:MCP 客户端需要知道用于连接服务器的启动命令及参数。以下 JSON 示例仅作配置示意,描述服务器名称、启动命令及传输参数等信息,方便 MCP 客户端在集成阶段了解如何启动服务器。 { "server_name": "quiver-mcp", "command": "qv-mcp", "args": [ "stdio" ], "transport": "stdio", "notes": "如需多租户隔离,请在配置或环境变量中提供租户 ID(通过 --tenant 参数或 QUIVER_TENANT 环境变量)。当前实现的 STDIO 传输适用于单连接场景,后续可扩展为 HTTP 等传输方式。" }
-
基本使用方法
- 启动服务器
- 直接通过编译后的二进制运行,使用 STDIO 传输(用于与 LLM 工具链直接对接)
- 与 MCP 客户端对接
- 使用上面的 JSON 配置向 MCP 客户端提供服务器启动信息,客户端按该信息启动并通过 STDIO 与服务器通信
- 常用操作
- 通过 run_query 调用执行 SQL(仅支持只读查询),通过 get_context 获取完整的上下文信息(DDL、关系、指标、示例等)
- 服务器将对多租户会话进行隔离管理,确保并发安全和资源隔离
- 启动服务器