mcpField
M
MCP server for Apache Gravitino(incubating)

MCP server for Apache Gravitino(incubating)

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

MCP server for Apache Gravitino(incubating) について

MCP server for Apache Gravitino は、FastMCP で構築された MCP サーバーで、MCP クライアントから Apache Gravitino のメタデータにアクセスできます。カタログ、テーブル、タグ、モデル、ユーザーロールを LLM から照会したいデータチームを想定しており、Gravitino API 全体ではなく厳選されたツールを公開します。

主な機能

  1. 01カタログ、スキーマ、テーブルのメタデータ照会
  2. 02タグの関連付けとタグによる検索
  3. 03ユーザーとロールのアクセス管理
  4. 04モデルバージョンの照会
  5. 05環境変数による有効ツールの選択

活用シーン

  1. 01LLM に Gravitino 上のテーブルや列の情報を照会させる
  2. 02タグに関連するデータオブジェクトを探す
  3. 03ユーザーへのロールの付与や取り消しを行う

MCP 対応

このプロジェクトは MCP サーバーとして、Gravitino のカタログ、テーブル、タグ、ユーザー、ロール、モデルを操作するツールを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Apache Gravitino 用 MCP サーバー

Python Version

Gravitino API を提供する MCP サーバーです。Apache Gravitino サービス向けの FastMCP 統合機能です。

機能

  • Gravitino API と FastMCP をシームレスに統合
  • メタデータを操作するためのシンプルなインターフェース
  • カタログ、スキーマ、テーブル、モデル、ユーザー、タグ、ユーザーロール管理のメタデータ操作をサポート

インストール

このプロジェクトでは、依存関係と仮想環境の管理ツールとして uv を使用します。システムに uv がインストールされていることを確認してください。

  1. リポジトリをクローンします。

    git clone [email protected]:datastrato/mcp-server-gravitino.git
    
  2. プロジェクトディレクトリに移動します。

    cd mcp-server-gravitino
    
  3. 仮想環境を作成します。

    uv venv
    
  4. 仮想環境を有効化します。

    source .venv/bin/activate
    
  5. 依存関係をインストールします。

    uv install
    

設定

共通設定

認証方式にかかわらず、以下の環境変数を設定する必要があります。

GRAVITINO_METALAKE=<YOUR_METALAKE> # default: "metalake_demo"
GRAVITINO_URI=<YOUR_GRAVITINO_URI>
  • GRAVITINO_URI:Gravitino サーバーのベース URL です。
  • GRAVITINO_METALAKE:使用するメタキューブの名前です。
認証

mcp-server-gravitino は、トークンベース認証と基本認証の両方をサポートしています。これらの方式を利用すると、MCP ツールやプロンプトに安全にアクセスでき、外部システムとの統合にも適しています。

トークン認証

以下の環境変数を設定します。

GRAVITINO_JWT_TOKEN=<YOUR_GRAVITINO_JWT_TOKEN>

GRAVITINO_JWT_TOKEN:認証用の JWT トークンです。

基本認証

代わりに、基本認証を使用することもできます。

GRAVITINO_USERNAME=<YOUR_GRAVITINO_USERNAME>
GRAVITINO_PASSWORD=<YOUR_GRAVITINO_PASSWORD>
  • GRAVITINO_USERNAME:Gravitino 認証用のユーザー名です。
  • GRAVITINO_PASSWORD:対応するパスワードです。
ツールの有効化

現在、ツールの有効化はメソッド名(例:get_list_of_table)に基づいています。任意の環境変数 GRAVITINO_ACTIVE_TOOLS を設定することで、有効にするツールを指定できます。デフォルト値は * で、すべてのツールが有効になります。get_list_of_roles ツールのみを有効にする場合は、以下のように環境変数を設定します。

GRAVITINO_ACTIVE_TOOLS=get_list_of_roles

使用方法

Gravitino MCP サーバーを起動するには、以下のコマンドを実行します。

uv \
--directory /path/to/mcp-gravitino \
run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.server

各引数の意味は次のとおりです。

引数説明
uvUV CLI ツールを起動します
--directory /path/to/mcp-gravitinopyproject.toml があるプロジェクトの作業ディレクトリを指定します
run管理対象の環境でコマンドを実行することを示します
--with fastmcpプロジェクトの依存関係を変更せずに、実行環境へ fastmcp を追加します
--with httpx非同期 HTTP 機能用の依存関係 httpx を追加します
--with mcp-server-gravitinoローカルモジュールを実行時の依存関係として追加します
python -m mcp_server_gravitino.serverパッケージのエントリーモジュールを使用して MCP サーバーを起動します
Goose クライアントの例

Goose を使用してサーバーを実行するための設定例です。

{
  "mcpServers": {
    "Gravitino": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/user/workspace/mcp-server-gravitino",
        "run",
        "--with",
        "fastmcp",
        "--with",
        "httpx",
        "--with",
        "mcp-server-gravitino",
        "python",
        "-m",
        "mcp_server_gravitino.server"
      ],
      "env": {
        "GRAVITINO_URI": "http://localhost:8090",
        "GRAVITINO_USERNAME": "admin",
        "GRAVITINO_PASSWORD": "admin",
        "GRAVITINO_METALAKE": "metalake_demo"
      }
    }
  }
}

ツール一覧

mcp-server-gravitino は Gravitino API のすべてを公開するわけではありませんが、最適化されたツールを厳選して提供します。

テーブルツール
  • get_list_of_catalogs:カタログの一覧を取得します
  • get_list_of_schemas:スキーマの一覧を取得します
  • get_list_of_tables:ページ分割されたテーブルの一覧を取得します
  • get_table_by_fqn:特定のテーブルの詳細情報を取得します
  • get_table_columns_by_fqn:テーブルの列情報を取得します
タグツール
  • get_list_of_tags:すべてのタグを取得します
  • associate_tag_to_entity:テーブルまたはカラムにタグを付与します
  • list_objects_by_tag:特定のタグに関連付けられたオブジェクトを一覧表示します
ユーザーロールツール
  • get_list_of_roles:すべてのロールを取得します
  • get_list_of_users:すべてのユーザーを取得します
  • grant_role_to_user:ユーザーにロールを割り当てます
  • revoke_role_from_user:ユーザーのロールを取り消します
モデルツール
  • get_list_of_models:モデルの一覧を取得します
  • get_list_of_model_versions_by_fqn:完全修飾名でモデルのバージョンを取得します

各ツールは、LLM のトークン制限内に収めながら意味の整合性を維持できるよう、簡潔で関連性の高いメタデータを返すように設計されています。

ライセンス

このプロジェクトは、Apache License Version 2.0 の下でライセンスされています。

コメント

MCP は初めてですか?

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

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