DBT Nova MCP 服务器
使用说明(简明要点,便于开发者快速上手)
- 项目简介
- 该仓库实现了一个基于 MCP 的后端服务器,核心职责是向 LLM 客户端提供上下文信息与能力,包括资源(Resources)、工具(Tools)和 Prompts 的管理,以及通过 JSON-RPC 机制与客户端进行交互。
- 主要功能点
- 资源管理与数据访问:托管并提供对资源的读取、查询、元数据等能力,方便 LLM 客户端获取上下文信息。
- 工具注册与调用:暴露外部功能的工具接口,LLM 客户端可通过工具调用执行外部任务。
- Prompts 定义与渲染:提供可定制的 Prompt 模板渲染与渲染结果的获取,为 LLM 互动模式提供灵活的模板能力。
- JSON-RPC 通信:服务器端以 JSON-RPC 协议处理请求/响应,支持初始化、工具列表、资源查询等标准 MCP 操作。
- 会话与能力声明:服务器端维护会话状态、能力声明,支持多传输协议(如 Stdio、SSE、WebSocket)以便不同环境的客户端接入。
- 持续性与扩展性:对缓存、索引、嵌入、以及多任务并发等方面提供健壮实现,方便与现有 LLM 工作流集成。
- 安装步骤
- 先确保环境具备 Rust 工具链(Rust 1.93+)。
- 克隆仓库并在项目根目录执行构建命令,生成可执行二进制。
- 配置运行时所需的 manifest 文件路径、存储目录等环境变量,确保服务器能够正确加载资源与元数据。
- 启动服务器,将其作为 MCP 服务暴露给客户端,默认测试用例通过命令 dbt-nova server start 启动 MCP 服务。
- 服务器配置(MCP 客户端使用的连接信息,示例以 JSON 格式呈现,企业场景请按实际环境填入) { "mcpServers": { "dbt-nova": { "name": "dbt-nova", "command": "dbt-nova", "args": ["server", "start"], "env": { "DBT_MANIFEST_PATH": "/path/to/manifest.json", "DBT_NOVA_STORAGE_DIR": "/path/to/storage", "DBT_NOVA_STORAGE_INSTANCE_ID": "default", "DBT_NOVA_SEARCH_ENABLE_VECTOR": "false", "DBT_NOVA_SEARCH_ENABLE_SPARSE": "false", "DBT_NOVA_SEARCH_ENABLE_RERANKER": "false" } // 注释:该配置信息用于 MCP 客户端与服务器建立连接与通信,非客户端必需,便于理解连接参数含义。 } } }
- 基本使用方法
- 启动服务器后,MCP 客户端通过配置指向该服务器的命令与参数进行连接,随后可通过初始化、工具列表、资源读取、Prompts 获取等操作,获取标准化的 JSON-RPC 响应。
- 客户端可按需调用工具、读取资源、渲染 Prompts,以实现对话上下文的丰富化与任务驱动的外部能力集成。
- 如需扩展传输协议,请参考实现中对 Stdio、SSE、WebSocket 的支持点,按需配置传输通道。