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 以控制日志等级
  • 服务器配置(给 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 服务器,以便建立通信。配置示例会在客户端配置文档中提供,但客户端本身不需要了解内部实现细节。
  • 基本使用方法
    • 启动 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 的详细参数、返回值与错误码。

服务器信息