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
    • 运行 MCP 服务器(当前实现提供 STDIO 传输入口,默认通过 qv-mcp 命令暴露)
      • 通过二进制直接运行并指定传输方式,例如 STDIO(若环境配置允许可使用现成二进制)
    • 运行后端所需的依赖服务(若使用外部数据源,如 PostgreSQL、BigQuery 等),请按仓库相应 crate 的文档进行配置与启动
  • 服务器配置(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、关系、指标、示例等)
      • 服务器将对多租户会话进行隔离管理,确保并发安全和资源隔离

服务器信息