mcpField
D
Dremio Python MCP

Dremio Python MCP

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

Dremio Python MCP について

Dremio Python MCP は、カタログの閲覧やデータ検索を行うユーザー向けに、Dremio データベースへの標準インターフェースを MCP クライアントへ提供します。読み取り専用 SQL に対応し、カタログ、スキーマ、テーブル、テーブル構造の情報を公開します。

主な機能

  1. 01カタログ、スキーマ、テーブルの一覧表示
  2. 02テーブルスキーマ情報の取得
  3. 03SQL 実行と構造化結果の返却
  4. 04読み取り専用クエリに制限
  5. 05TLS とパスワードまたはトークン認証に対応

活用シーン

  1. 01Dremio のデータカタログを閲覧
  2. 02テーブルのフィールドとスキーマを確認
  3. 03読み取り専用 SQL を実行して結果を確認

MCP 対応

MCP サーバーとして Dremio のデータリソースと、カタログ、スキーマ、テーブルの一覧取得および SQL 実行ツールを公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Dremio Model-Context Protocol (MCP)

このプロジェクトは、Dremio 用の Model-Context Protocol(MCP)サーバーを実装しています。MCP を通じて Dremio データベースとやり取りするための標準化された方法を提供します。

機能

リソース

リソースを通じて Dremio のデータを公開します。

  • dremio://catalogs - すべてのカタログを一覧表示します
  • dremio://schemas/{catalog} - カタログ内のすべてのスキーマを一覧表示します
  • dremio://tables/{catalog}/{schema} - スキーマ内のすべてのテーブルを一覧表示します
  • dremio://schema/{table_name} - テーブルのスキーマ情報を取得します
ツール
  • list_catalogs

    • Dremio で利用可能なすべてのカタログを一覧表示します
    • 使用方法:list_catalogs()
  • list_schemas

    • 特定のカタログ内のすべてのスキーマを一覧表示します
    • 使用方法:list_schemas("catalog_name")
  • list_tables

    • 特定のスキーマ内のすべてのテーブルを一覧表示します
    • 使用方法:list_tables("catalog_name", "schema_name")
  • execute_sql

    • Dremio に対して SQL クエリを実行します
    • メタデータを含む構造化形式で結果を返します
    • 使用方法:execute_sql("SELECT * FROM catalog.schema.table LIMIT 10")

要件

  • Python 3.10+
  • Dremio インスタンス(Cloud または Software)
  • Flight をサポートする PyArrow

インストール

pip を使用する場合
pip install -e .
uv を使用する場合(推奨)
# Install uv if you don't have it
curl -sSf https://astral.sh/uv/install.sh | bash

# Install the package
uv pip install -e .

設定

次の設定を含む config.yaml ファイルをルートディレクトリに作成します。

# Dremio connection settings
dremio:
  # Connection type: 'software' for Dremio Software or 'cloud' for Dremio Cloud
  type: software

  # Dremio Software connection details
  software:
    hostname: localhost
    port: 32010
    username: your_username
    password: your_password
    use_ssl: false

# Query settings
query:
  # Maximum number of rows to return in a query result
  max_rows: 10000
  # Maximum number of columns to return in schema request
  max_columns: 1000
  # Timeout in seconds for query execution
  timeout: 300
環境変数

環境変数を使用してサーバーを設定することもできます。

DREMIO_HOSTNAME=localhost
DREMIO_PORT=32010
DREMIO_USERNAME=your_username
DREMIO_PASSWORD=your_password
DREMIO_USE_SSL=false

Dremio Cloud の場合:

DREMIO_TYPE=cloud
DREMIO_ENDPOINT=data.dremio.cloud
DREMIO_PAT_TOKEN=your_personal_access_token

使用方法

サーバーの実行
# If installed from package
mcp-dremio-server

# Or run directly
python run_mcp_server.py
Claude またはその他の MCP クライアントとの連携

次の設定を MCP クライアントの設定に追加します。

MacOS
// ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dremio_service": {
      "command": "/Users/USERNAME/.local/bin/uv",
      "args": [
                "--directory",
                "/Users/USERNAME/PycharmProjects/dremio-python-mcp",
                "run",
                "run_mcp_server.py"
            ]
    }
  }
}
Windows
// %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dremio-mcp": {
      "command": "mcp-dremio-server",
      "args": []
    }
  }
}

使用例

カタログとスキーマの一覧表示
// List all catalogs
list_catalogs()

// List schemas in a catalog
list_schemas("my_catalog")

// List tables in a schema
list_tables("my_catalog", "my_schema")
SQL クエリの実行
// Execute a query
results = execute_sql("SELECT * FROM my_catalog.my_schema.my_table LIMIT 10")

セキュリティ機能

  • SQL 検証:読み取り専用ではないクエリの実行を防止します
  • 入力検証:テーブル名やスキーマ名を介した SQL インジェクションを防止します
  • TLS サポート:Dremio との安全な通信を実現します
  • 認証:ユーザー名とパスワードによる認証、およびトークン認証をサポートします

デバッグ

MCP サーバーは stdio 経由で実行されるため、デバッグが難しい場合があります。最適なデバッグ環境を利用するには、MCP Inspector を使用してください。

npx @modelcontextprotocol/inspector mcp-dremio-server

起動すると、Inspector に URL が表示されます。ブラウザーでその URL にアクセスしてデバッグを開始できます。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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