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 サーバーで、ツールを通じて Apache Gravitino のメタデータ操作を提供します。カタログ、スキーマ、テーブル、モデル、ユーザー、タグ、ロールを扱い、AI アシスタントからメタデータの照会や管理を行いたい利用者を想定しています。

主な機能

  1. 01カタログ、スキーマ、テーブルのメタデータ照会
  2. 02テーブルと列へのタグ付け
  3. 03ユーザーロールの付与と取り消し
  4. 04モデルとモデルバージョンの照会
  5. 05トークンおよび基本認証への対応

活用シーン

  1. 01AI アシスタントからテーブル構造や列情報を照会する
  2. 02タグを基にデータオブジェクトを検索する
  3. 03ユーザーのロール割り当てを管理する

MCP 対応

本サーバーは MCP サーバーとして動作し、厳選された Gravitino メタデータツールを MCP クライアントに提供します。GRAVITINO_ACTIVE_TOOLS で有効化するツールを絞り込めます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 つのサーバーを複数のクライアントで再利用できます。