Metadata-Version: 2.3
Name: mcp_snowflake_server
Version: 0.0.2
Summary: A simple Snowflake MCP server
Requires-Python: >=3.10
Requires-Dist: mcp>=1.0.0
Requires-Dist: pandas
Requires-Dist: python-dotenv
Requires-Dist: snowflake-connector-python[pandas]
Requires-Dist: snowflake-snowpark-python
Description-Content-Type: text/markdown

# Snowflake MCP Server

## Overview
A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries with tools and intereacting with a memo of data insights presented as a resource.

## Components

### Resources
The server exposes a single dynamic resource:
- `memo://insights`: A continuously updated data insights memo that aggregates discovered insights during analysis
  - Auto-updates as new insights are discovered via the append-insight tool

### Tools
The server offers six core tools:

#### Query Tools
- `read_query`
   - Execute SELECT queries to read data from the database
   - Input:
     - `query` (string): The SELECT SQL query to execute
   - Returns: Query results as array of objects

- `write_query` (with `--allow-write` flag)
   - Execute INSERT, UPDATE, or DELETE queries
   - Input:
     - `query` (string): The SQL modification query
   - Returns: `{ affected_rows: number }`

- `create_table` (with `--allow-write` flag)
   - Create new tables in the database
   - Input:
     - `query` (string): CREATE TABLE SQL statement
   - Returns: Confirmation of table creation

#### Schema Tools
- `list_tables`
   - Get a list of all tables in the database
   - No input required
   - Returns: Array of table names

- `describe-table`
   - View column information for a specific table
   - Input:
     - `table_name` (string): Name of table to describe (can be fully qualified)
   - Returns: Array of column definitions with names and types

#### Analysis Tools
- `append_insight`
   - Add new data insights to the memo resource
   - Input:
     - `insight` (string): data insight discovered from analysis
   - Returns: Confirmation of insight addition
   - Triggers update of memo://insights resource


## Usage with Claude Desktop

```python
# Add the server to your claude_desktop_config.json
"mcpServers": {
  "snowflake": {
      "command": "uv",
      "args": [
          "--directory",
          "/absolute/path/to/mcp-snowflake-server",
          "run",
          "mcp_snowflake_snowflake"
          # Optionally: "--allow-write" (but not recommended)
      ],
      "env": {
          "SNOWFLAKE_WAREHOUSE": "your_warehouse",
          "SNOWFLAKE_DATABASE": "your_database",
          "SNOWFLAKE_ACCOUNT": "your_account_identifier",
          "SNOWFLAKE_USER": "your_username",
          "SNOWFLAKE_ROLE": "your_role",
          "SNOWFLAKE_SCHEMA": "your_schema",
          "SNOWFLAKE_PASSWORD": "your_password"
      }
  }
}
```