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
.envfile 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a359a97e880f659c9decb8cf7690ddf32020570d6638c0d537e03bf0ec97e6a7
|
|
| MD5 |
45893a8e6ef28b58d10eb5a0515100bb
|
|
| BLAKE2b-256 |
b8442462a491365ebfd5a300bedbf57fecb598d87ffbde03f7d8010ac6b4540e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8d02d6740ce4611ece1e28d53760df14b643b0ca56d629d7d70ebb88899bc86
|
|
| MD5 |
0ef39c9f24065d0a691e57e86a534146
|
|
| BLAKE2b-256 |
dcce9f7cbd6a118b0a13a5080924ba0b83b5117c9e5835fd451e324088307b7e
|