スノーフレークMCPサーバー
概要
Snowflakeとのデータベース連携を可能にするモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーは、ツール経由でSQLクエリを実行し、データの洞察とスキーマコンテキストをリソースとして公開することを可能にします。
Related MCP server: Datadog MCP Server
コンポーネント
リソース
memo://insights
発見されたデータの洞察を集約した継続的に更新されるメモ。append_insightツールを使用して新しいインサイトが追加されると、自動的に更新されます。context://table/{table_name}
(プリフェッチが有効な場合) 列やコメントを含むテーブルごとのスキーマの概要が個別のリソースとして公開されます。
ツール
サーバーは次のツールを公開します。
クエリツール
read_querySELECTクエリを実行してデータベースからデータを読み取ります。
入力:query(文字列): 実行するSELECTSQLクエリ
**戻り値:**クエリ結果をオブジェクトの配列として返します
write_query(--allow-writeでのみ有効)INSERT、UPDATE、またはDELETEクエリを実行します。
入力:query(文字列): SQL変更クエリ
**戻り値:**影響を受けた行数または確認
create_table(--allow-writeでのみ有効)
データベースに新しいテーブルを作成します。
入力:query(文字列):CREATE TABLESQL文
**戻り値:**テーブル作成の確認
スキーマツール
list_databases
Snowflake インスタンス内のすべてのデータベースを一覧表示します。
**戻り値:**データベース名の配列list_schemas
特定のデータベース内のすべてのスキーマを一覧表示します。
入力:database(文字列): データベースの名前
**戻り値:**スキーマ名の配列
list_tables
特定のデータベースとスキーマ内のすべてのテーブルを一覧表示します。
入力:database(文字列): データベースの名前schema(文字列): スキーマの名前
**戻り値:**テーブルメタデータの配列
describe_table
特定のテーブルの列情報を表示します。
入力:table_name(文字列): 完全修飾テーブル名 (database.schema.table)
**戻り値:**名前、型、NULL 値、デフォルト、コメントを含む列定義の配列
分析ツール
append_insight
メモ リソースに新しいデータ インサイトを追加します。
入力:insight(文字列):分析から発見されたデータの洞察
**戻り値:**洞察力追加の確認
効果:memo://insightsリソースの更新をトリガーします
Claude Desktopでの使用
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Snowflake Server を自動的にインストールするには:
npx -y @smithery/cli install mcp_snowflake_server --client claudeUVX経由でインストール
"mcpServers": {
"snowflake_pip": {
"command": "uvx",
"args": [
"--python=3.12", // Optional: specify Python version <=3.12
"mcp_snowflake_server",
"--account", "your_account",
"--warehouse", "your_warehouse",
"--user", "your_user",
"--password", "your_password",
"--role", "your_role",
"--database", "your_database",
"--schema", "your_schema"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}ローカルにインストールする
Claude AIデスクトップアプリをインストールする
uvをインストールします:
curl -LsSf https://astral.sh/uv/install.sh | shSnowflake の認証情報を使用して
.envファイルを作成します。
SNOWFLAKE_USER="xxx@your_email.com"
SNOWFLAKE_ACCOUNT="xxx"
SNOWFLAKE_ROLE="xxx"
SNOWFLAKE_DATABASE="xxx"
SNOWFLAKE_SCHEMA="xxx"
SNOWFLAKE_WAREHOUSE="xxx"
SNOWFLAKE_PASSWORD="xxx"
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"[オプション] データベース、スキーマ、またはテーブルの除外パターンを設定するには、
runtime_config.json変更します。ローカルでテストする:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_serverclaude_desktop_config.jsonにサーバーを追加します。
"mcpServers": {
"snowflake_local": {
"command": "/absolute/path/to/uv",
"args": [
"--python=3.12", // Optional
"--directory", "/absolute/path/to/mcp_snowflake_server",
"run", "mcp_snowflake_server"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}注記
デフォルトでは書き込み操作は無効になっています。--
--allow-writeで明示的に有効にしてください。サーバーは、除外パターンを使用して特定のデータベース、スキーマ、またはテーブルをフィルター処理することをサポートしています。
プリフェッチが有効になっている場合、サーバーはテーブルごとの追加のコンテキスト リソースを公開します。
append_insightツールはmemo://insightsリソースを動的に更新します。
ライセンス
マサチューセッツ工科大学