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 data-recon-mcp

Configuration

Add to your MCP client configuration:

For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "data-recon": {
      "command": "python3",
      "args": ["-m", "mcp_server"]
    }
  }
}

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

{
  "data-recon": {
    "command": "python3",
    "args": ["-m", "mcp_server"]
  }
}

For Perplexity (MCP Settings):

{
  "data-recon": {
    "command": "python3",
    "args": ["-m", "mcp_server"]
  }
}

That's it! Restart your LLM client and start using the tools.

โœจ 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:

1. Start the centralized backend:

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": "python3",
    "args": ["-m", "mcp_server"],
    "env": {
      "FASTAPI_URL": "http://your-server.company.com:8000"
    }
  }
}

Pre-configured Data Sources

Register data sources via environment variables:

{
  "data-recon": {
    "command": "python3",
    "args": ["-m", "mcp_server"],
    "env": {
      "DATASOURCE_MYSQL_PROD": "{\"type\":\"mysql\",\"host\":\"localhost\",\"port\":3306,\"username\":\"user\",\"password\":\"pass\",\"database\":\"mydb\"}"
    }
  }
}

๐Ÿ“Š 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                              โ”‚
โ”‚            (python3 -m mcp_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.2.0.tar.gz (33.9 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.2.0-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: data_recon_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 33.9 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.2.0.tar.gz
Algorithm Hash digest
SHA256 147a964ce8b666c89f31d48b9a19a1120338e25fe2720ed8520c027443e870cf
MD5 f4691faec300749e995c69a777808e53
BLAKE2b-256 db693a1c8af7db94d94aec3405add396d757a84535e76f57d3d5a43ec4bde946

See more details on using hashes here.

File details

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

File metadata

  • Download URL: data_recon_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.0 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6f9d3c9fba2bbb5c5ce3a5c687bd08a3741cdc93030aa590e3f2815c4751a25
MD5 9f0c9d8f5b8abc9daae551c4d6e0b3b1
BLAKE2b-256 f09c86c83f4dc5fc256234cec6dcc9bdc52ceb4d79f69733fc3f96331f32b59b

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