Skip to main content

MCP Server for Data Reconciliation between MySQL and Snowflake

Project description

Data Recon MCP Server

An MCP (Model Context Protocol) server for data reconciliation between MySQL and Snowflake databases. Enables LLM agents like Claude, Antigravity, and Perplexity to validate data integrity during migrations, ETL processes, and ongoing monitoring.

๐Ÿš€ Quick Start

Installation

pip install git+https://github.com/hindocharaj1997/data-recon-mcp.git

Configuration

Add to your MCP client configuration:

For Claude Desktop (~/.config/claude/mcp.json):

{
  "mcpServers": {
    "data-recon": {
      "command": "data-recon-server"
    }
  }
}

For Antigravity (~/.gemini/antigravity/mcp_config.json):

{
  "data-recon": {
    "command": "data-recon-server"
  }
}

That's it! The server automatically starts an embedded backend - no separate processes needed.

โœจ Features

  • All-in-One - Single command starts everything (MCP server + FastAPI backend)
  • 23 MCP Tools for comprehensive data reconciliation
  • MySQL and Snowflake support
  • Async job execution with progress tracking
  • SQLite metadata storage - datasource configs persist locally

๐Ÿ”ง Advanced Configuration

Using a Centralized Backend

For team environments where you want everyone to share the same datasources and configuration, you can run a separate FastAPI backend server:

1. Start the centralized backend:

# On your server
git clone https://github.com/hindocharaj1997/data-recon-mcp.git
cd data-recon-mcp
pip install -e .
uvicorn data_recon.main:app --host 0.0.0.0 --port 8000

2. Configure clients to use it:

{
  "data-recon": {
    "command": "data-recon-server",
    "env": {
      "FASTAPI_URL": "http://your-server.company.com:8000"
    }
  }
}

When FASTAPI_URL is set, the MCP server skips starting an embedded backend and uses your centralized server instead.

Pre-configured Data Sources

You can pre-register data sources via environment variables:

{
  "data-recon": {
    "command": "data-recon-server",
    "env": {
      "DATASOURCE_MYSQL_PROD": "{\"type\":\"mysql\",\"host\":\"localhost\",\"port\":3306,\"username\":\"user\",\"password\":\"pass\",\"database\":\"mydb\"}",
      "DATASOURCE_SNOWFLAKE_DW": "{\"type\":\"snowflake\",\"account\":\"xxx-yyy\",\"username\":\"user\",\"password\":\"pass\",\"warehouse\":\"COMPUTE_WH\"}"
    }
  }
}

๐Ÿ“Š MCP Tools

Category Tools Description
Data Source Management 7 Add, list, test, remove datasources
Discovery & Validation 7 Search tables, validate existence, preview data
Individual Checks 4 Row count, aggregates, schema, sample rows
Job Management 5 Create/monitor reconciliation jobs

Key Tools

  • add_datasource - Register a MySQL or Snowflake connection
  • search_tables - Find tables by pattern
  • run_row_count_check - Compare row counts between source and target
  • run_aggregate_check - Compare SUM, AVG, MIN, MAX values
  • create_recon_job - Run comprehensive reconciliation with all checks

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    LLM Client                           โ”‚
โ”‚              (Claude, Antigravity, etc.)                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                      โ”‚ MCP Protocol (stdio)
                      โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 MCP Server                              โ”‚
โ”‚            (data-recon-server)                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Embedded FastAPI Backend (or external via FASTAPI_URL) โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   SQLite    โ”‚  โ”‚   MySQL     โ”‚  โ”‚   Snowflake     โ”‚ โ”‚
โ”‚  โ”‚  (metadata) โ”‚  โ”‚  Connector  โ”‚  โ”‚   Connector     โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงช Development

# Clone and setup
git clone https://github.com/hindocharaj1997/data-recon-mcp.git
cd data-recon-mcp
pip install -e ".[dev]"

# Run tests
pytest

# Start local MySQL for testing
docker compose -f tests/docker-compose.yml up -d

๐Ÿ“ License

MIT

๐Ÿค Contributing

Contributions welcome! Please open an issue first to discuss proposed changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

data_recon_mcp-0.1.0.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

data_recon_mcp-0.1.0-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file data_recon_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: data_recon_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for data_recon_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2ea8d35eebc41827c7e44ccaf3e191021c74d86609b3766e12ef3da3cfb2be49
MD5 fe54fc663bfe2567c465ead5d0e5f078
BLAKE2b-256 97fdafc075fa6d7f7334a1794308273650a1fcd326a5db269cb1dfe4904221f6

See more details on using hashes here.

File details

Details for the file data_recon_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: data_recon_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for data_recon_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c4b7b293218b2599b1cacfbf178906741cf315bce232fbedfe63a7f0e9073fb
MD5 5d2bb02a37df8045216e85a79bc5a8b6
BLAKE2b-256 162047d8b1dc9f6b3eaed6d14299a23b47c882092b43c5304198988b7d1030d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page