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
Visit Server

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 /

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured