Skip to main content
Glama
hindocharaj1997

Data Recon MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FASTAPI_URLNoURL of the centralized backend FastAPI server (optional, defaults to embedded backend)
DATASOURCE_MYSQL_PRODNoJSON string with MySQL datasource configuration (example for pre-configured datasource)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
add_datasourceA

Register a new database connection (MySQL or Snowflake). AFTER USING: Always call test_datasource to verify the connection works. MySQL config: {host, port, username, password, database}. Snowflake config: {account, username, password, warehouse, database, schema}.

list_datasourcesA

List all registered data sources. FIRST STEP: Always check what data sources are available before doing any work. If empty, guide user to add data sources with add_datasource.

test_datasourceA

Test connection to a data source. USE: After adding a new data source, when user reports issues, or before starting reconciliation.

remove_datasourceA

Remove a registered data source. CAUTION: This deletes the configuration permanently.

get_databasesA

List all databases in a data source. USE: To discover available databases before listing tables.

get_tablesA

List all tables in a database/schema. PREFER search_tables if user mentions a specific table name pattern.

get_table_schemaB

Get column definitions (name, type, nullable, primary key). USE: To understand table structure, find numeric columns for aggregates, or find primary keys for sample checks.

get_metadata_catalogA

Get FULL metadata catalog (all databases, schemas, tables). USE: When starting with a data source to understand what's available. WARNING: Can be slow for large databases - prefer search_tables for targeted queries.

search_tablesA

🔍 CRITICAL - USE FIRST when user mentions a table name. Search for tables by name pattern. NEVER assume table names exist - always search first. Example: User says 'orders table' → search pattern 'order' to find 'orders', 'order_items', etc. Then confirm with user which table they mean.

get_sample_dataA

Preview first N rows of a table. USE: To VERIFY you found the correct table before running expensive checks. Show user what data looks like.

validate_table_existsB

⚠️ REQUIRED BEFORE CHECKS - Verify a table exists before running any reconciliation. ALWAYS call this for BOTH source AND target tables before run_row_count_check, run_aggregate_check, run_schema_check, or run_sample_check. Prevents wasted time and cryptic errors.

validate_columns_existB

⚠️ REQUIRED FOR AGGREGATES - Verify columns exist before running aggregate checks. ALWAYS call this before run_aggregate_check to prevent errors from typos or missing columns.

get_table_statsB

Get quick statistics: row count, column count, size. USE: For sanity check before reconciliation, to estimate how long checks might take (large tables = longer).

compare_table_structuresA

📊 RECOMMENDED FIRST STEP - Side-by-side comparison of source and target schemas BEFORE running data checks. Shows column differences and type mismatches that may cause false positives in data comparison.

run_row_count_checkA

✅ FAST FIRST CHECK - Compare row counts. Run this FIRST - it's fast and catches major issues. PREREQUISITE: Call validate_table_exists for both tables first. For large tables, use partition_config to compare date ranges.

run_aggregate_checkA

Compare column-level aggregates: SUM, AVG, MIN, MAX, COUNT_DISTINCT. PREREQUISITES: 1) validate_table_exists 2) validate_columns_exist. USE: After row counts match, to verify numeric data integrity.

run_schema_checkC

Compare table schemas (column names, data types). USE: To identify structural differences that might cause data issues.

run_sample_checkA

🔬 DETAILED CHECK - Compare actual row values by primary key. USE: After row counts and aggregates pass, for detailed validation. Identifies specific mismatched rows. PREREQUISITE: validate_table_exists, know the primary key.

create_recon_jobA

Create comprehensive reconciliation job with multiple checks. Runs asynchronously - use get_job_status to monitor. PREREQUISITES: validate_table_exists, compare_table_structures.

get_job_statusA

Get job progress: status, percent complete, current check. Poll every few seconds while running. Report to user: 'Job is 50% complete, running aggregate check...'

get_job_resultsA

Get detailed results after job completes. USE: After get_job_status shows status=completed.

list_jobsB

List recent reconciliation jobs. USE: To see job history or find previous results.

cancel_jobB

Cancel a running job. USE: When user wants to stop long-running reconciliation.

Prompts

Interactive templates invoked by user choice

NameDescription
quick_validationQuick validation workflow for comparing two tables
full_reconciliationComprehensive reconciliation job with all check types
setup_datasourcesHelp setting up new data source connections

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hindocharaj1997/data-recon-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server