davidf9999/gx-mcp-server
If you are the rightful owner of gx-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Great Expectations MCP Server exposes data-quality checks as MCP tools for LLM agents, enabling seamless integration of data validation into automated workflows.
Great Expectations MCP Server
Expose Great Expectations data-quality checks as MCP tools for LLM agents.
Motivation
Large Language Model (LLM) agents often need to interact with and validate data. Great Expectations is a powerful open-source tool for data quality, but it's not natively accessible to LLM agents. This server bridges that gap by exposing core Great Expectations functionality through the Model Context Protocol (MCP), allowing agents to:
- Programmatically load datasets from various sources.
- Define data quality rules (Expectations) on the fly.
- Run validation checks and interpret the results.
- Integrate robust data quality checks into their automated workflows.
TL;DR
- Install:
uv sync && uv pip install -e .[dev]
- Run server:
uv run python -m gx_mcp_server --http
- Try examples:
uv run python scripts/run_examples.py
- Test:
uv run pytest
- Default CSV limit: 50 MB (
MCP_CSV_SIZE_LIMIT_MB
to change)
Features
- Load CSV data from file, URL, or inline
- Define and modify ExpectationSuites
- Validate data and fetch detailed results
- Multiple transport modes: STDIO, HTTP, Inspector (GUI)
Quickstart
uv sync
uv pip install -e ".[dev]"
cp .env.example .env # (optional: add your OpenAI API key)
uv run python scripts/run_examples.py
Usage
-
STDIO mode: For desktop AI agents (default)
uv run python -m gx_mcp_server
-
HTTP mode: For browser and API clients
uv run python -m gx_mcp_server --http
-
Inspector GUI:
npx @modelcontextprotocol/inspector # Connect to: http://localhost:8000/mcp/
Configuring Maximum CSV File Size
The server limits CSV files to 50 MB by default. Override with:
export MCP_CSV_SIZE_LIMIT_MB=200 # Allow up to 200 MB
uv run python -m gx_mcp_server --http
Allowed values: 1–1024 MB.
Docker
To build and run with Docker (Python and uv included):
docker build -t gx-mcp-server .
docker run --rm -p 8000:8000 gx-mcp-server
Run the test suite inside the container:
docker run --rm gx-mcp-server uv run pytest
Examples
- : minimal workflow demo
- : LLM-assisted suite creation demo
Continuous Integration
All PRs and pushes are tested automatically via GitHub Actions:
- Lint:
ruff
- Type check:
mypy
- Test:
pytest
To check locally:
uv run pre-commit run --all-files
uv run ruff check .
uv run mypy gx_mcp_server/
uv run pytest
Telemetry
Great Expectations sends anonymous usage data to posthog.greatexpectations.io
by default.
Set GX_ANALYTICS_ENABLED=false
to disable telemetry.
Future Work & Known Limitations
- No persistent storage: Data is in-memory; lost on restart.
- No authentication: Do NOT expose HTTP to untrusted networks.
- No URL restrictions: Use only in trusted environments.
- No resource cleanup: Large/long sessions may use significant RAM.
- Concurrency: Blocking/serial; no job queue or async.
- API may change: Expect early-breaking changes.
License & Contributing
MIT License. See for how to help!