项目简介

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 服务器提供的工具和访问资源。

信息

分类

AI与计算