GDP MCP Tools

GDP MCP Tools

MCP server for Grubhub Data Platform operations, providing 40+ tools across 18 service categories for data platform management, observability, analytics, and collaboration.

Category
访问服务器

README

GDP MCP Tools

MCP (Model Context Protocol) server for Grubhub Data Platform operations. 40+ tools across 18 service categories. Works with Claude Code, VS Code, Cursor, JetBrains, or any MCP-compatible client.

Quick Start (5 minutes)

1. Clone and set up virtual environment

# 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. Configure credentials

cp .env.example src/.env

Edit src/.env with your credentials. See Credentials below.

3. Configure your MCP client

Add to .mcp.json in any repo where you want these tools:

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"]
    }
  }
}

Windows:

{
  "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. Connect VPN and start using

All tools require VPN. Connect first, then use any MCP client.


Using from Any Repo

Already have gdp-mcp-tools set up? Here's how to add it to a new repo in 1 minute:

Step 1: Get your paths

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

Step 2: Create .mcp.json in your new repo

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

Replace the paths with your actual paths from Step 1.

Step 3: Start your AI coding session

Claude Code:

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

VS Code / Cursor:

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

Antigravity:

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

That's it. The .mcp.json tells any MCP client where to find the server. No installation needed in the new repo -- everything runs from gdp-mcp-tools/.

Example: Adding to events-mart, ods_data, or any repo

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

Works from any repo -- events-mart, ods_data, or even non-GDP projects.


Client Setup

Claude Code (CLI / Desktop / Web)

Add .mcp.json to your project root:

{
  "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 Code / Cursor

Add to .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"]
    }
  }
}

Google Antigravity

Add to ~/.gemini/antigravity/mcp_config.json (or project-level .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"]
    }
  }
}

Windows:

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

To reload after config change: use Manage MCP Servers > View raw config in Antigravity UI, or restart.

Gemini CLI

Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project-level):

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"]
    }
  }
}

Windows:

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

To reload: run /mcp reload in Gemini CLI, or restart.

JetBrains (IntelliJ / PyCharm)

Settings > Tools > MCP Servers > Add:

  • Name: gdp-tools
  • Command: /absolute/path/to/gdp-mcp-tools/venv/bin/python
  • Args: /absolute/path/to/gdp-mcp-tools/src/server.py

Any MCP Client (stdio transport)

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

Reads JSON-RPC from stdin, writes responses to stdout, logs to stderr.


Credentials

Copy .env.example to src/.env and fill in:

Credential Required How to Get
USERNAME Yes Your LDAP username (auto-detected from $USER if not set)
JENKINS_TOKEN Yes Jenkins > Profile > Configure > API Token
OKTA_PASSWORD Yes Your Okta login password
PRESTO_PASSWORD Yes Trino cluster password (ask team lead)
JIRA_PERSONAL_TOKEN Yes Jira > Profile > Personal Access Tokens
JIRA_USERNAME Yes Your @grubhub.com email
GITHUB_TOKEN Optional GitHub > Settings > Developer Settings > PAT (repo + read:org, SSO for GrubhubProd)
REDASH_API_KEY Optional dev-redash.gdp.data.grubhub.com > Profile > API Key
SLACK_MCP_XOXC_TOKEN Optional Slack browser DevTools > Network > Copy from request
DD_API_KEY Optional DataDog > Org Settings > API Keys
PAGERDUTY_USER_API_KEY Optional PagerDuty > User Settings > API Token
DATAHUB_TOKEN Optional DataHub UI > Settings > Access Tokens

Tool Catalog

Data Platform (13 tools)

Tool Description
sync_table Sync prod table to dev
jenkins_deploy_branch Deploy Git branch to dev
jenkins_deploy Deploy version to prod
jenkins_integrate Integrate PR
jenkins_start_cluster / stop_cluster EMR cluster management
jenkins_validate_schedule Validate schedule.json
azkaban_run_flow Execute Azkaban flow
azkaban_monitor Monitor execution until complete
azkaban_status Check execution status
azkaban_cancel Cancel running execution
azkaban_flows List flows in project
azkaban_list_executions List recent executions
trino_query Execute SQL on dev/preprod/prod

Observability (7 tools)

Tool Description
list_emr_clusters / describe_emr_cluster EMR cluster info
spark_app_details / spark_stage_details Spark History Server
get_flow_logs Azkaban execution logs via SSH
vpn_connect / vpn_status / vpn_disconnect F5 VPN management
s3_list_partitions / s3_list_batch_ids S3 data inspection

Analytics (7 tools)

Tool Description
pv_failure_summary PV framework failure analysis
pv_analyze_metric Deep-dive metric investigation
pv_investigate_root_cause Root cause tracing
pv_generate_report HTML report generation
backfill_plan / backfill_fire / backfill_list_jobs Backfill management
calculate_sync_plan / check_sync_status Smart sync planning

Collaboration (10 tools)

Tool Description
jira_search / jira_get_issue / jira_create_issue Jira issues
jira_transition_issue / jira_add_comment Jira workflow
slack_post / slack_read_message / slack_read_thread / slack_search Slack
github_list_prs / github_read_pr / github_comment_pr / github_update_pr GitHub PRs
get_pr_discussions PR discussion threads

Data Catalog (7 tools)

Tool Description
datahub_search / datahub_get_dataset DataHub metadata
datahub_get_lineage / datahub_get_column_lineage DataHub lineage
datahub_whoami DataHub auth check
redash_run_query / redash_create_query / redash_update_query Redash queries
redash_create_visualization / redash_clone_query Redash viz
create_branded_google_doc / convert_md_to_branded_html Google Docs

File Structure

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

Troubleshooting

Problem Fix
ModuleNotFoundError: No module named 'mcp' pip install mcp[cli] in the venv
PRESTO_HOST must be set Check src/.env exists with correct values
Connection timed out Connect VPN first (vpn_connect tool or manual)
Azkaban login failed Check OKTA_PASSWORD is current
Jenkins 401 Regenerate JENKINS_TOKEN
Jira 401 Regenerate JIRA_PERSONAL_TOKEN
DNS resolution failed VPN dropped, reconnect
Tools not showing in client Restart MCP client. Check .mcp.json paths are absolute.
Windows path issues Use \\ in JSON paths, or forward slashes /

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选