mcpField
S
Snowflake MCP Server

Snowflake MCP Server

ローカル
github.com/isaacwassermanデータベース18455 週間前に更新

Snowflake MCP Server について

Snowflake MCP Server は、Snowflake データベースを操作するMCPサーバーです。ツールで SQL クエリを実行し、データのインサイトとスキーマ情報をリソースとして提供します。書き込み操作は明示的に有効化しない限り無効です。

主な機能

  1. 01読み取り用ツールによる SELECT クエリの実行
  2. 02データベース・スキーマ・テーブルの一覧表示
  3. 03列の型やコメントを含むテーブル構造の確認
  4. 04append_insight によるインサイトメモの更新
  5. 05任意で有効化できる書き込み・テーブル作成ツール

活用シーン

  1. 01AI アシスタントによる Snowflake データの照会と分析
  2. 02データベース構造や列定義の把握
  3. 03分析中に見つけたデータインサイトの記録

MCP 対応

MCPサーバーとして動作し、SQL・スキーマ用のツールと memo://insights およびテーブルコンテキストのリソースを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"snowflake-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MseeP.ai セキュリティ評価バッジ

Snowflake MCP サーバー


概要

Snowflake とのデータベース連携を提供する Model Context Protocol(MCP)サーバーの実装です。このサーバーでは、ツールを使って SQL クエリを実行できるほか、データに関する洞察やスキーマのコンテキストをリソースとして公開します。


コンポーネント

リソース
  • memo://insights
    発見されたデータの洞察を集約した、継続的に更新されるメモです。
    append_insight ツールで新しい洞察が追加されると、自動的に更新されます。

  • context://table/{table_name}
    (プリフェッチが有効な場合)列やコメントを含むテーブルごとのスキーマ概要を、個別のリソースとして公開します。


ツール

サーバーでは、次のツールを公開します。

クエリツール
  • read_query
    データベースからデータを読み取るために、SELECT クエリを実行します。
    入力:

    • query(string):実行する SELECT SQL クエリ
      戻り値: オブジェクトの配列としてのクエリ結果
  • write_query(--allow-write を指定した場合のみ有効)
    INSERT、UPDATE、または DELETE クエリを実行します。
    入力:

    • query(string):SQL の変更クエリ
      戻り値: 影響を受けた行数または確認メッセージ
  • create_table(--allow-write を指定した場合のみ有効)
    データベースに新しいテーブルを作成します。
    入力:

    • query(string):CREATE TABLE SQL ステートメント
      戻り値: テーブル作成の確認メッセージ
スキーマツール
  • list_databases
    Snowflake インスタンス内のすべてのデータベースを一覧表示します。
    戻り値: データベース名の配列

  • list_schemas
    特定のデータベース内のすべてのスキーマを一覧表示します。
    入力:

    • database(string):データベース名
      戻り値: スキーマ名の配列
  • list_tables
    特定のデータベースとスキーマ内のすべてのテーブルを一覧表示します。
    入力:

    • database(string):データベース名
    • schema(string):スキーマ名
      戻り値: テーブルのメタデータの配列
  • describe_table
    特定のテーブルの列情報を表示します。
    入力:

    • table_name(string):完全修飾テーブル名(database.schema.table)
      戻り値: 名前、型、NULL 許容性、デフォルト値、コメントを含む列定義の配列
分析ツール
  • append_insight
    メモリソースに新しいデータの洞察を追加します。
    入力:
    • insight(string):分析で発見されたデータの洞察
      戻り値: 洞察の追加確認
      効果: memo://insights リソースの更新をトリガーします

Claude Desktop での使用

Smithery 経由でのインストール

Smithery 経由で Snowflake Server を Claude Desktop に自動的にインストールするには:

npx -y @smithery/cli install mcp_snowflake_server --client claude

UVX 経由でのインストール
従来の設定(個別のパラメーター)
"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: "--private_key_path", "your_private_key_absolute_path"
      // 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}"]
    ]
  }
}
TOML 設定(推奨)
"mcpServers": {
  "snowflake_production": {
    "command": "uvx",
    "args": [
      "--python=3.12",
      "mcp_snowflake_server",
      "--connections-file", "/path/to/snowflake_connections.toml",
      "--connection-name", "production"
      // 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}"]
    ]
  },
  "snowflake_staging": {
    "command": "uvx",
    "args": [
      "--python=3.12",
      "mcp_snowflake_server",
      "--connections-file", "/path/to/snowflake_connections.toml",
      "--connection-name", "staging"
    ]
  }
}

ローカルへのインストール
  1. Claude AI Desktop App をインストールします

  2. uv をインストールします:

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Snowflake の認証情報を記載した .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"
SNOWFLAKE_PASSWORD="xxx"
SNOWFLAKE_PRIVATE_KEY_PATH=/absolute/path/key.p8
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
  1. [任意] runtime_config.json を編集して、データベース、スキーマ、またはテーブルの除外パターンを設定します。

  2. ローカルでテストします:

uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
  1. サーバーを claude_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}"]
    ]
  }
}
TOML 設定(推奨)
"mcpServers": {
  "snowflake_local": {
    "command": "/absolute/path/to/uv",
    "args": [
      "--python=3.12",
      "--directory", "/absolute/path/to/mcp_snowflake_server",
      "run", "mcp_snowflake_server",
      "--connections-file", "/absolute/path/to/snowflake_connections.toml",
      "--connection-name", "development"
      // 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 リソースを動的に更新します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。