数据平台工具集

为Grubhub数据平台操作提供的多工具集成服务,支持40+工具跨18个服务类别,兼容主流开发环境和MCP客户端。

  • by asuar16
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 asuar16/gdp-mcp-tools

使用说明

GDP MCP工具

用于Grubhub数据平台操作的MCP(模型上下文协议)服务器。18个服务类别的40多种工具。适用于Claude Code、VS Code、Cursor、JetBrains或任何兼容MCP的客户端。

快速入门(5分钟)

1.克隆并设置虚拟环境

# Ask your team lead for the repo URL, or use:
git clone https://github.com/asuar16/gdp-mcp-tools.git
cd gdp-mcp-tools

# macOS / Linux
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Windows (PowerShell)
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt

2.配置凭据

cp .env.example src/.env

编辑 src/.env 凭你的证件。看 凭证 在......下面

3.配置您的MCP客户端

添加 .mcp.json 在 任何回购 您需要这些工具的位置:

macOS/Linux:

{
  "mcpServers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}

窗户:

{
  "mcpServers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "C:\\path\\to\\gdp-mcp-tools\\venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\gdp-mcp-tools\\src\\server.py"]
    }
  }
}

4.连接VPN并开始使用

所有工具都需要VPN。先连接,然后使用任何MCP客户端。


从任何Repo使用

已经建立了gdp mcp工具?以下是如何在1分钟内将其添加到新的仓库中:

第一步:找到你的路

cd ~/path/to/gdp-mcp-tools
echo "Python: $(pwd)/venv/bin/python"
echo "Server: $(pwd)/src/server.py"

第二步:创建 .mcp.json 在您的新仓库中

cd ~/path/to/your-new-repo

cat > .mcp.json << 'EOF'
{
  "mcpServers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}
EOF

将路径替换为步骤1中的实际路径。

步骤3:开始你的AI编码会话

克劳德代码:

cd ~/path/to/your-new-repo
claude
# GDP tools will auto-connect. Try: "check vpn status"

VS代码/光标:

Open the repo folder -> MCP tools appear in Copilot/AI sidebar

Gemini CLI:

cd ~/path/to/your-new-repo
gemini
# Tools auto-load from .gemini/settings.json

反重力:

Open project -> Tools auto-load from mcp_config.json

就是这样 .mcp.json 告诉任何MCP客户端在哪里找到服务器。新仓库中不需要安装——一切都从 gdp-mcp-tools/.

示例:添加到事件集市、ods_data或任何仓库

{
  "mcpServers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "/Users/yourname/gdp-mcp-tools/venv/bin/python",
      "args": ["/Users/yourname/gdp-mcp-tools/src/server.py"]
    }
  }
}

适用于任何回购——事件集市、ods_data,甚至非GDP项目。


客户端设置

克劳德代码(命令行界面/桌面/网络)

添加 .mcp.json 到您的项目根目录:

{
  "mcpServers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}

VS代码/光标

添加 .vscode/settings.json:

{
  "mcp.servers": {
    "gdp-tools": {
      "type": "stdio",
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}

谷歌反重力

添加 ~/.gemini/antigravity/mcp_config.json (或项目级别 .gemini/settings.json):

macOS/Linux:

{
  "mcpServers": {
    "gdp-tools": {
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}

窗户:

{
  "mcpServers": {
    "gdp-tools": {
      "command": "C:\\path\\to\\gdp-mcp-tools\\venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\gdp-mcp-tools\\src\\server.py"]
    }
  }
}

要在配置更改后重新加载:使用 管理MCP服务器>查看原始配置 在Antigravity UI中,或重新启动。

Gemini CLI

添加 ~/.gemini/settings.json (全球)或 .gemini/settings.json (项目层面):

macOS/Linux:

{
  "mcpServers": {
    "gdp-tools": {
      "command": "/absolute/path/to/gdp-mcp-tools/venv/bin/python",
      "args": ["/absolute/path/to/gdp-mcp-tools/src/server.py"]
    }
  }
}

窗户:

{
  "mcpServers": {
    "gdp-tools": {
      "command": "C:\\path\\to\\gdp-mcp-tools\\venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\gdp-mcp-tools\\src\\server.py"]
    }
  }
}

要重新加载:运行 /mcp reload 在Gemini CLI中,或重新启动。

JetBrains(IntelliJ/PyCharm)

设置>工具>MCP服务器>添加:

  • 姓名: gdp-tools
  • 命令: /absolute/path/to/gdp-mcp-tools/venv/bin/python
  • Args: /absolute/path/to/gdp-mcp-tools/src/server.py

任何MCP客户端(stdio传输)

/path/to/gdp-mcp-tools/venv/bin/python /path/to/gdp-mcp-tools/src/server.py

从stdin读取JSON-RPC,将响应写入stdout,记录到stderr。


凭证

复制 .env.example 到 src/.env 并填写:

凭证 必填 如何获取
USERNAME 是 您的LDAP用户名(如果未设置,则从$USER自动检测到)
JENKINS_TOKEN 是 Jenkins>配置文件>配置>API令牌
OKTA_PASSWORD 是 您的Okta登录密码
PRESTO_PASSWORD 是 Trino集群密码(询问团队负责人)
JIRA_PERSONAL_TOKEN 是 Jira>个人资料>个人访问令牌
JIRA_USERNAME 是 您的@grubhub.com电子邮件
GITHUB_TOKEN 可选 GitHub>设置>开发者设置>PAT(repo+read:org,GrubhubProd的SSO)
REDASH_API_KEY 可选 dev-redash.gdp.data.grubhub.com>配置文件>API密钥
SLACK_MCP_XOXC_TOKEN 可选 Slack浏览器DevTools>网络>从请求复制
DD_API_KEY 可选 DataDog>组织设置>API密钥
PAGERDUTY_USER_API_KEY 可选 PagerDuty>用户设置>API令牌
DATAHUB_TOKEN 可选 DataHub用户界面>设置>访问令牌

工具目录

数据平台(13个工具)

工具 说明
sync_table 将prod表同步到dev
jenkins_deploy_branch 将Git分支部署到dev
jenkins_deploy 部署版本以进行生产
jenkins_integrate 整合公关
jenkins_start_cluster / stop_cluster EMR集群管理
jenkins_validate_schedule 验证schedule.json
azkaban_run_flow 执行阿兹卡班流程
azkaban_monitor 监控执行直至完成
azkaban_status 检查执行状态
azkaban_cancel 取消运行执行
azkaban_flows 列出项目中的流程
azkaban_list_executions 列出最近执行的死刑
trino_query 在dev/preprod/prod上执行SQL

可观察性(7个工具)

工具 说明
list_emr_clusters / describe_emr_cluster EMR集群信息
spark_app_details / spark_stage_details Spark历史服务器
get_flow_logs 通过SSH记录Azkaban的执行日志
vpn_connect / vpn_status / vpn_disconnect F5 VPN管理
s3_list_partitions / s3_list_batch_ids S3数据检查

分析(7个工具)

工具 说明
pv_failure_summary 光伏框架失效分析
pv_analyze_metric 深潜指标调查
pv_investigate_root_cause 根本原因追踪
pv_generate_report HTML报告生成
backfill_plan / backfill_fire / backfill_list_jobs 回填管理
calculate_sync_plan / check_sync_status 智能同步规划

协作(10个工具)

工具 说明
jira_search / jira_get_issue / jira_create_issue Jira问题
jira_transition_issue / jira_add_comment Jira工作流程
slack_post / slack_read_message / slack_read_thread / slack_search 松弛
github_list_prs / github_read_pr / github_comment_pr / github_update_pr GitHub PR
get_pr_discussions 公关讨论话题

数据目录(7个工具)

工具 说明
datahub_search / datahub_get_dataset DataHub元数据
datahub_get_lineage / datahub_get_column_lineage DataHub沿袭
datahub_whoami DataHub 验证
redash_run_query / redash_create_query / redash_update_query Redash查询
redash_create_visualization / redash_clone_query 红灰
create_branded_google_doc / convert_md_to_branded_html 谷歌文档

文件结构

gdp-mcp-tools/
  README.md                 # This file
  TOOLS.md                  # Detailed tool reference
  requirements.txt          # Python dependencies
  .env.example              # Credential template (copy to src/.env)
  .mcp.json.example         # MCP client config template
  .gitignore

  src/
    server.py               # FastMCP entry point (stdio transport)
    auth.py                 # Shared auth (Jenkins, Azkaban, Trino, Jira)
    .env                    # Your credentials (gitignored, never committed)
    tools/
      jenkins_tools.py      # Deploy, sync, integrate, cluster ops
      scheduler_tools.py    # Azkaban flows, monitor, cancel
      trino_tools.py        # SQL queries (dev/preprod/prod)
      emr_tools.py          # EMR cluster list/describe
      s3_tools.py           # S3 partition listing
      backfill_tools.py     # Backfill planning + execution
      sync_plan_tools.py    # Smart sync planning
      spark_tools.py        # Spark History Server
      flowlogs_tools.py     # Azkaban log retrieval via SSH
      pv_tools.py           # PV failure analysis
      vpn_tools.py          # VPN connect/disconnect/status
      jira_tools.py         # Jira issue management
      slack_tools.py        # Slack messaging
      github_tools.py       # GitHub PR operations
      pr_tools.py           # PR discussion threads
      google_doc_tools.py   # Branded Google Doc creation
      datahub_tools.py      # DataHub lineage/search
      redash_tools.py       # Redash query/viz management

  scripts/                  # Utility scripts (not MCP tools)
    datadog_wrapper.sh      # DataDog MCP wrapper
    pagerduty_wrapper.sh    # PagerDuty MCP wrapper
    google_workspace_wrapper.sh
    create_redash_queries.py

  config/
    config.json             # Tool configuration

故障排除

问题 修复
ModuleNotFoundError: No module named 'mcp' pip install mcp[cli] 在venv
PRESTO_HOST must be set 检查 src/.env 存在正确的值
Connection timed out 先连接VPN(vpn_connect 工具或手册)
Azkaban login failed 检查OKTA_PASSWORD是否为最新
Jenkins 401 重新生成JENKINS_TOKEN
Jira 401 重新生成JIRA_PERSONAL_TOKEN
DNS resolution failed VPN已断开,请重新连接
客户端中未显示工具 重新启动MCP客户端。检查 .mcp.json 路径是绝对的。
Windows路径问题 使用 \\ JSON路径中,或正斜杠 /