Skip to main content

MCP server for the SnowSyncMD Snowflake Native App — exposes schema docs as Claude tools

Project description

SnowSyncMD MCP Server

Connects Claude Code directly to your SnowSyncMD app so Claude can read Snowflake schema documentation automatically — no copy-pasting, no manual downloads.

How it works

You ask Claude: "Write a query joining ORDERS to CUSTOMERS"
       ↓
Claude calls MCP tool: snowflake_get_schema("MY_DB", "SALES", "ORDERS")
Claude calls MCP tool: snowflake_get_schema("MY_DB", "SALES", "CUSTOMERS")
       ↓
Claude gets the column list from SnowSyncMD
       ↓
Claude writes the correct query with real column names

No live Snowflake queries. No manual schema exports. Claude reads the pre-built Markdown files that SnowSyncMD keeps up to date every 10 minutes.


Installation

pip install mcp snowflake-connector-python python-dotenv

Configuration

Add to your Claude Code settings (~/.claude/settings.json):

{
  "mcpServers": {
    "snowsyncmd": {
      "command": "python3",
      "args": ["/path/to/snowsyncmd_mcp.py"],
      "env": {
        "SNOWFLAKE_ACCOUNT":  "your-account-identifier",
        "SNOWFLAKE_USER":     "your_username",
        "SNOWFLAKE_PASSWORD": "your_password",
        "SNOWFLAKE_ROLE":     "ACCOUNTADMIN",
        "SNOWFLAKE_WAREHOUSE": "COMPUTE_WH",
        "SNOWSYNCMD_APP":     "snowsyncmd"
      }
    }
  }
}

Tip: Set credentials via a .env file in the same directory instead of hardcoding them in settings.json.


Available tools

Claude sees these tools and calls them automatically:

Tool What it does
snowflake_get_schema Returns the full MD doc for one object (table, view, function…)
snowflake_search_schema Searches by keyword across all schema docs
snowflake_list_objects Lists every tracked object with DB/schema/type
snowflake_get_status Shows sync health, registered databases, last sync time
snowflake_sync Triggers an immediate sync (all DBs or one)

Example conversations

You:    "What columns does the FACT_ORDERS table have?"
Claude: [calls snowflake_get_schema] → returns column list with types
Claude: "FACT_ORDERS has 14 columns: ORDER_SK (NUMBER), ORDER_ID (NUMBER), ..."

You:    "Write a query to show monthly revenue by channel"
Claude: [calls snowflake_search_schema "revenue"] → finds FACT_ORDERS, V_DAILY_SALES
Claude: [calls snowflake_get_schema for V_DAILY_SALES]
Claude: "Here's a query using V_DAILY_SALES which already aggregates by channel: ..."

You:    "Is the schema documentation up to date?"
Claude: [calls snowflake_get_status]
Claude: "Last synced 3 minutes ago. 180 objects tracked across 2 databases."

You:    "I just added a new table — refresh the docs"
Claude: [calls snowflake_sync]
Claude: "Sync complete. 1 new object found and documented."

Using with Claude Code hooks (optional)

Add a UserPromptSubmit hook to auto-check sync status before each session:

~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "echo 'Snowflake schema docs available via snowsyncmd MCP tools'"
      }]
    }]
  }
}

Requirements

  • SnowSyncMD installed from Snowflake Marketplace
  • ACCOUNTADMIN or app_admin role on the SnowSyncMD app
  • Python 3.11+
  • mcp, snowflake-connector-python, python-dotenv

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

snowsyncmd_mcp-1.0.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

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

snowsyncmd_mcp-1.0.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file snowsyncmd_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: snowsyncmd_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for snowsyncmd_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a359a97e880f659c9decb8cf7690ddf32020570d6638c0d537e03bf0ec97e6a7
MD5 45893a8e6ef28b58d10eb5a0515100bb
BLAKE2b-256 b8442462a491365ebfd5a300bedbf57fecb598d87ffbde03f7d8010ac6b4540e

See more details on using hashes here.

File details

Details for the file snowsyncmd_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: snowsyncmd_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for snowsyncmd_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8d02d6740ce4611ece1e28d53760df14b643b0ca56d629d7d70ebb88899bc86
MD5 0ef39c9f24065d0a691e57e86a534146
BLAKE2b-256 dcce9f7cbd6a118b0a13a5080924ba0b83b5117c9e5835fd451e324088307b7e

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