Bigeye MCP Server
Bigeye의 데이터 품질 모니터링 플랫폼과 Datawatch API를 통해 상호작용합니다. 동적 API 키 인증을 지원합니다.
문서
Bigeye MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with the Bigeye Data Observability platform.
Prerequisites
- Docker (Docker Desktop or Docker Engine)
Quick Start
-
Build the Docker image:
./build-docker.sh -
Create a
.envfile with your credentials (see.env.example):cp .env.example .env # Edit .env with your values -
Start the long-lived container:
./bigeye-mcp.sh start -
Add the wrapper to your Claude Desktop config (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):{ "mcpServers": { "bigeye": { "command": "/absolute/path/to/mcp-wrapper.sh" } } } -
Restart Claude Desktop.
Getting Your Credentials
- BIGEYE_API_KEY — Generate in Bigeye under Settings > API Keys
- BIGEYE_BASE_URL — Your Bigeye instance URL (e.g.
https://app.bigeye.com) - BIGEYE_WORKSPACE_ID — Found in your Bigeye URL after
/w/(e.g.https://app.bigeye.com/w/123/→123)
Optional Environment Variables
- BIGEYE_DEBUG — Set to
truefor verbose debug logging (default:false) - BIGEYE_TELEMETRY — Set to
falseto disable anonymous usage telemetry (default:true). See Telemetry.
Telemetry
To help us improve the server, anonymous usage analytics (tool name, duration,
success/error) are sent to Bigeye. No arguments, results, or data are ever
collected. Set BIGEYE_TELEMETRY=false to turn it off.
Container Modes
Long-Lived Container (Recommended)
Uses mcp-wrapper.sh + bigeye-mcp.sh with docker compose. The container stays running and Claude Desktop connects via docker exec.
Note:
mcp-wrapper.shrelies on Docker Compose automatically reading the.envfile from the project directory. Make sure your.envfile is in the same directory asdocker-compose.yml.
{
"mcpServers": {
"bigeye": {
"command": "/absolute/path/to/mcp-wrapper.sh"
}
}
}
Ephemeral Container
A fresh container spins up for each Claude Desktop session and is removed when done.
{
"mcpServers": {
"bigeye": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "BIGEYE_API_KEY=your_api_key_here",
"-e", "BIGEYE_BASE_URL=https://app.bigeye.com",
"-e", "BIGEYE_WORKSPACE_ID=your_workspace_id_here",
"-e", "BIGEYE_DEBUG=false",
"bigeye-mcp-server:latest"
]
}
}
}
Container Management
The bigeye-mcp.sh script manages the long-lived container:
./bigeye-mcp.sh start # Start the container
./bigeye-mcp.sh stop # Stop the container
./bigeye-mcp.sh restart # Restart the container
./bigeye-mcp.sh status # Show container status
./bigeye-mcp.sh logs # Follow container logs
./bigeye-mcp.sh rebuild # Rebuild image and recreate container
./bigeye-mcp.sh clean # Remove container and volumes
Multi-Environment Setup
To connect to multiple Bigeye instances (e.g. demo and production), create separate environment files and compose overrides:
-
Create environment files for each instance. Note that the compose overrides expect prefixed variable names (
BIGEYE_DEMO_*/BIGEYE_APP_*):.env.demo:BIGEYE_DEMO_API_KEY=your_demo_api_key BIGEYE_DEMO_WORKSPACE_ID=your_demo_workspace_id BIGEYE_DEBUG=false.env.app:BIGEYE_APP_API_KEY=your_app_api_key BIGEYE_APP_WORKSPACE_ID=your_app_workspace_id BIGEYE_DEBUG=false -
Use the environment-specific compose overrides:
# Demo docker compose -f docker-compose.yml -f docker-compose.demo.yml --env-file .env.demo up -d bigeye-mcp-demo # Production docker compose -f docker-compose.yml -f docker-compose.app.yml --env-file .env.app up -d bigeye-mcp-app -
Add both to your Claude Desktop config:
{ "mcpServers": { "bigeye-demo": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "BIGEYE_API_KEY=your_demo_key", "-e", "BIGEYE_BASE_URL=https://demo.bigeye.com", "-e", "BIGEYE_WORKSPACE_ID=your_demo_workspace_id", "bigeye-mcp-server:latest" ] }, "bigeye-app": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "BIGEYE_API_KEY=your_app_key", "-e", "BIGEYE_BASE_URL=https://app.bigeye.com", "-e", "BIGEYE_WORKSPACE_ID=your_app_workspace_id", "bigeye-mcp-server:latest" ] } } }
Available Tools
Issue Management
list_issues— List data quality issues across the workspace (filter by status, schema, orassignee_ids)get_current_user— Get the authenticated user (id, email, name, workspaces); pair withlist_issues(assignee_ids=[id])to find issues assigned to youget_issue— Get full details for a single issue by its internal IDsearch_issues— Find issues by their display name/number (e.g. "10921")list_related_issues— List issues related to a given issue via lineagelist_table_issues— List data quality issues for a specific table by nameupdate_issue— Update an issue's status, priority, or add a timeline messagecreate_incident— Create an incident by merging related issuesdelete_incident_members— Remove issues from an incidentget_resolution_steps— Get recommended resolution steps for an issue
Metrics & Quality
list_table_metrics— List all metrics (monitors) configured on a tablelist_table_level_metrics— List metric types that are table-level (vs column-level)create_metric— Create a new metric (monitor) on a table with validation, enum mapping, and column-type compatibility checksget_table_profile— Get data profile report including column statistics and distributioncreate_profile_job— Queue a new data profiling job for a tableget_profile_job_status— Check the status of a profiling job
Sensitive Data Scanning
list_data_classes— List data classification categories (e.g., "Email Address", "US SSN") with sensitivity levelsget_scan_findings— Get column-level classification scan results showing where sensitive data was detected
Data Catalog
search_schemas— Search the data catalog for schemas by name (returns ids + warehouse)search_tables— Search the data catalog for tables by name (returns ids, schema + warehouse)search_columns— Search the data catalog for columns by name (returns ids, type + parent table)
Data Lineage
get_lineage_graph— Get the full lineage graph (upstream/downstream/both) from a starting nodeget_lineage_node— Get details for a specific lineage nodelist_lineage_node_issues— List issues for a lineage node by its node IDsearch_lineage_nodes— Find lineage node IDs by path pattern (e.g. "WAREHOUSE/SCHEMA/TABLE")lineage_explore_catalog— Explore tables in Bigeye's cataloglineage_delete_node— Delete a custom lineage node
Root Cause & Impact Analysis
get_upstream_root_causes— Analyze upstream lineage to identify root causes of issuesget_downstream_impact— Analyze downstream impact of issues at a lineage nodeget_issue_lineage_trace— Trace a data quality issue end-to-end through lineagelist_report_upstream_issues— List upstream issues affecting a BI report or dashboard
Agent Lineage Tracking
lineage_track_data_access— Track data assets accessed by an AI agentlineage_commit_agent— Commit tracked data access to Bigeye's lineage graphlineage_get_tracking_status— Get the current status of lineage trackinglineage_clear_tracked_assets— Clear all tracked data assets without committinglineage_cleanup_agent_edges— Clean up old lineage edges for the AI agent
Data Dimensions
list_dimensions— List all data-quality dimensions with their metric type mappingsget_dimension— Get full details for a single dimension by IDcreate_dimension— Create a new Data Dimensionupdate_dimension— Update a dimension's name or descriptiondelete_dimension— Delete a Data Dimensionget_table_dimension_coverage— Analyze dimension coverage gaps for a table (recommended for "what monitoring is missing?")get_column_dimension_coverage— Analyze dimension coverage for specific columns in a table
Tags
list_tags— List or search workspace tagscreate_tag— Create a new tag with optional colorupdate_tag— Update a tag's name or colordelete_tag— Delete a tagtag_entity— Apply a tag to any entity (metric, table, column, etc.)untag_entity— Remove a tag from an entitylist_entity_tags— List all tags on a specific entity
System
get_health_status— Check the health and connectivity of the Bigeye APIlist_resources— List all available MCP resourceslist_data_sources— List all data sources/warehouses connected to Bigeye
Resources & Prompts
Resources:
bigeye://auth/status— Current authentication statusbigeye://health— API health statusbigeye://config— Current server configurationbigeye://issues— All issues from the configured workspacebigeye://issues/active— Active issues with filteringbigeye://issues/recent— Recently resolved or updated issues
Prompts:
authentication_flow— Guide for setting up authenticationcheck_connection_info— Guide for verifying API connectionmerge_issues_example— Examples for merging issueslineage_analysis_examples— Examples for lineage analysis
Agent Lineage Tracking
The server includes comprehensive lineage tracking for AI agents. Use the lineage_track_data_access tool to record data assets accessed during an agent session, then lineage_commit_agent to persist them to Bigeye's lineage graph. See the tool descriptions above for full details.
Development Setup
For local development without Docker:
- Install Python 3.12+
- Create a virtual environment:
python -m venv venv source venv/bin/activate - Install dependencies:
pip install -r requirements.txt - Set environment variables:
export BIGEYE_API_KEY="your_api_key" export BIGEYE_BASE_URL="https://app.bigeye.com" export BIGEYE_WORKSPACE_ID="your_workspace_id" - Run the server:
python server.py
Testing
# Run basic container tests
./scripts/test.sh
# Run basic tests + MCP protocol tests
./scripts/test.sh --mcp
# Run MCP protocol tests standalone (with optional --debug)
./scripts/test-mcp-protocol.sh
See tests/README.md for details on the test suite.
Troubleshooting
Missing Environment Variables
- Check your
.envfile or Claude Desktop config contains all required variables - Variable names are case-sensitive
- Restart Claude Desktop after config changes
Authentication Errors
- Verify your API key is valid with appropriate permissions
- Workspace ID must be a number
- Instance URL should have no trailing slash
Connection Issues
- Verify the Bigeye instance URL is accessible
- Check for firewall/proxy settings
- Enable debug mode:
BIGEYE_DEBUG=true
Container Not Starting
- Check Docker is running:
docker info - Verify image exists:
docker images | grep bigeye - Check logs:
./bigeye-mcp.sh logs
~/.bigeye-mcp Directory
The docker-compose.yml mounts ~/.bigeye-mcp into the container for persistent credential storage. Docker will create this directory automatically if it doesn't exist. You don't need to put anything in it manually — it's used internally by the server.