Dataproc MCP Server

项目简介

Dataproc MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于提供与 Google Cloud Dataproc 服务的集成能力。它通过标准化的 MCP 接口向 LLM 客户端(如 VS Code 扩展 Roo、Claude Desktop 等)暴露 Dataproc 的管理和操作功能,允许用户通过自然语言或结构化请求与 Dataproc 资源和任务进行交互。

项目设计考虑了生产环境的需求,包括身份认证(支持服务账号模拟)、精细的参数控制(通过配置文件和参数注入)、输入校验和速率限制等安全特性,以及通过跟踪和缓存提升性能和用户体验。

主要功能点

  • 全面的 Dataproc 工具集: 提供创建、列出、获取、删除 Dataproc 集群,提交各类作业(Hive、Spark 等),获取作业状态和结果等超过15种工具。
  • 灵活的集群配置: 支持通过 YAML 文件定义复杂的集群配置,或使用预定义的配置文件(Profile)简化创建过程。
  • 智能参数注入: 通过配置文件管理默认参数,减少每次工具调用时所需的参数量。
  • 资源暴露: 以 MCP Resource 形式暴露 Dataproc 集群、作业、配置 Profile 等信息,方便 LLM 客户端发现和访问。
  • 安全特性: 包括输入校验、速率限制、身份认证管理(支持服务账号模拟、ADC 等)及审计日志,确保操作安全。
  • 作业跟踪与监控: 跟踪通过服务器提交的作业,支持异步作业的自动状态更新和结果缓存。
  • 多种认证方式: 支持服务账号密钥文件、Application Default Credentials (ADC) 以及服务账号模拟,适应不同环境。

安装步骤

本服务器使用 Node.js 和 npm/npx 进行分发和运行。

  1. 安装 Node.js: 确保您的系统安装了 Node.js (推荐 v18.0.0 或更高版本) 和 npm。您可以从 Node.js 官方网站 下载安装包。

  2. 全局安装服务器: 打开终端或命令行界面,运行以下命令全局安装 Dataproc MCP Server:

    npm install -g @dipseth/dataproc-mcp-server
  3. 运行设置向导: 初次安装后,建议运行设置向导以创建必要的配置文件和目录:

    dataproc-mcp --setup

    按照向导提示输入您的 GCP 项目 ID、区域和环境等信息。这将生成 'config/default-params.json' 和 'config/server.json' 文件。

  4. 配置认证: 根据您运行服务器的环境和服务账号设置,编辑生成的 'config/server.json' 文件,配置 Google Cloud 的认证方式(服务账号密钥路径、服务账号模拟等)。

  5. 构建项目: 如果您从源代码构建或运行非打包版本,需要编译 TypeScript 代码:

    npm run build

    (如果通过 'npm install -g' 安装,这一步通常是自动完成的)

服务器配置 (MCP 客户端配置)

Dataproc MCP 服务器设计为由 MCP 客户端按需启动和管理(例如,通过 Stdio 协议)。您需要在您的 MCP 客户端(如 VS Code 扩展 Roo、Claude Desktop 等)的设置中添加服务器配置。配置通常是一个 JSON 对象数组或映射,包含服务器的启动命令及其参数。

以下是一个典型的 MCP 客户端配置示例(JSON 格式),用于配置 Dataproc MCP 服务器:

{
  // ... 其他 MCP 服务器配置
  "mcpServers": {
    "dataproc": {
      // 用于启动服务器进程的命令
      "command": "npx", 
      
      // 传递给 command 的参数。npx 用于执行 npm 包中的可执行文件。
      // "@dipseth/dataproc-mcp-server" 是安装的 npm 包名,它包含一个可执行的服务器入口点。
      "args": ["@dipseth/dataproc-mcp-server"], 
      
      // 可选的环境变量
      "env": {
        "LOG_LEVEL": "info" // 控制服务器日志级别
      },
      
      // 可选:如果需要指定配置文件路径,可以在 env 中添加 DATAPROC_CONFIG_PATH
      // "env": {
      //   "LOG_LEVEL": "info",
      //   "DATAPROC_CONFIG_PATH": "/path/to/your/config.json" 
      // }
      
      // ... 其他 MCP 客户端配置选项,如 timeout, disabled, alwaysAllow 等
    }
    // ... 其他 MCP 服务器配置
  }
}

将此配置添加到您的 MCP 客户端设置后,客户端将知道如何启动并与 Dataproc MCP 服务器建立连接。

基本使用方法

一旦服务器在 MCP 客户端中配置并成功连接,您就可以通过客户端与 Dataproc 进行交互。具体的使用方式取决于您的 MCP 客户端界面,但通常涉及:

  1. 浏览资源: 客户端会显示由服务器提供的 Dataproc 资源(如集群、作业、配置文件)。您可以查看这些资源的详细信息。
  2. 调用工具: 您可以通过客户端界面或自然语言向 LLM 客户端发送请求,LLM 客户端会根据您的意图调用 Dataproc MCP 服务器提供的工具。例如:
    • 询问“列出我所有的 Dataproc 集群”,客户端可能调用 'list_clusters' 工具。
    • 询问“在 us-central1 区域创建一个名为 my-test-cluster 的小型集群”,客户端可能调用 'start_dataproc_cluster' 或 'create_cluster_from_profile' 工具,并提供相应的参数。
    • 询问“提交一个 Hive 查询到 analytics-cluster”,客户端可能调用 'submit_hive_query' 或 'submit_dataproc_job' 工具。
  3. 查看结果: 工具调用的结果(例如集群列表、作业状态、查询结果)将由服务器返回给客户端并显示给您。

请参考您的 MCP 客户端的文档,了解具体如何通过其界面调用外部 MCP 服务器提供的工具和访问资源。

服务器信息