Deephaven MCP 后端服务器
使用说明
- 项目简介
- Deephaven MCP 是一个完整的 MCP 服务器实现,包含 Systems Server、Docs Server 等组件,旨在以标准化方式向 LLM 客户端提供资源访问、工具调用和提示模板等能力。核心特性包括会话管理、动态会话创建、企业系统集成、PQ/表格操作、文档知识库接入等,并通过 JSON-RPC 与客户端进行通信。
- 主要功能点
- 资源与数据访问:托管 Deephaven 的会话资源、表格与数据集的查询、检索与格式化输出。
- 工具注册与执行:提供对外部功能的调用接口,支持在 LLM 代理中直接触发数据查询、脚本执行等操作。
- Prompt 与模板:定义与渲染用于 LLM 交互的提示模板,便于定制化对话模式。
- MCP 客户端通信:基于 JSON-RPC 规范的请求/响应处理,以及可扩展的传输层支持(如 stdio、SSE、WebSocket、以及代理转发)。
- 会话与能力声明:支持多会话并对外暴露当前能力、连接状态与执行结果。
- 多环境与 Enterprise 集成:支持 Community Core 会话、Enterprise (Core+) 系统,以及动态会话创建、数据库/表格发现、脚本执行等。
- 安装步骤
- 通过 Python 包管理器安装 deephaven-mcp,选择所需的 Extras:
- community:启用 Python 基于社区核心会话的创建与管理
- enterprise:启用 Deephaven Enterprise(Core+)系统的集成
- test / lint / dev:安装测试、代码质量和开发工具
- 配置环境
- 将 MCP 系统服务器的配置文件 deephaven_mcp.json 放置在可访问的位置(示例中建议将其放在任意路径),并设置环境变量 DH_MCP_CONFIG_FILE 指向该文件
- 设置 PYTHONLOGLEVEL 以控制日志等级
- 通过 Python 包管理器安装 deephaven-mcp,选择所需的 Extras:
- 服务器配置(给 MCP 客户端的配置信息说明,便于理解如何启动与连接)
- 服务器1:deephaven-systems
- 启动命令 (command): 启动 Deephaven MCP 系统服务器的后台进程,用于管理 Community Core 会话及 Enterprise 系统
- 参数 (args): 连接到 Deephaven 系统的参数集合,通常为空,具体由部署时的环境决定
- 环境变量(env):
- DH_MCP_CONFIG_FILE:指向 deephaven_mcp.json 的完整路径,服务器读取该配置来建立会话与能力
- PYTHONLOGLEVEL:日志等级,通常为 INFO 或 DEBUG
- 服务器2:deephaven-docs
- 启动命令 (command): mcp-proxy,用于将 Docs 服务器的输出通过代理转发给不直接支持 streamable-http 的客户端
- 参数(args):包含传输协议选择(例如 --transport=streamablehttp)以及 Docs 文档源的 URL
- 注意:MCP 客户端需要在配置中引用启动命令及参数来启动相应的 MCP 服务器,以便建立通信。配置示例会在客户端配置文档中提供,但客户端本身不需要了解内部实现细节。
- 服务器1:deephaven-systems
- 基本使用方法
- 启动 MCP 服务端:在具备网络权限的环境中,使用上述配置启动 deephaven-systems 与 deephaven-docs 服务器,确保它们能够访问到 Deephaven 的 Community Core 与 Enterprise 服务。
- 与 AI 客户端连接:在 Claude Desktop、Windsurf、Cursor 等工具中,按照工具特定的配置方式,将 MCP 服务器的启动命令、参数与环境变量填入到相应的配置区域(以便工具可以自动启动并连接到 MCP 服务器)。
- 使用示例(开发者视角):
- 通过 MCP 的系统服务器可以查询并列出可用的 Deephaven 会话、执行脚本、查询表格、管理企业 PQ 等,AI 客户端可通过 JSON-RPC 请求调用对应工具或读取资源。
- Docs 服务器提供对 Deephaven 文档知识库的访问,帮助 AI 进行特征化查询与代码示例输出。
- 运行与调试要点
- 确保 JSON 配置中所有路径为绝对路径,权限适当(如包含敏感信息的文件应受限访问)。
- 如遇到网络或权限问题,开启 PYTHONLOGLEVEL=DEBUG 获取详细日志。
- 参考开发者指南(docs/DEVELOPER_GUIDE.md)了解各 API 的详细参数、返回值与错误码。