MCP server for Apache Gravitino(incubating) について
MCP server for Apache Gravitino は、FastMCP で構築された MCP サーバーで、ツールを通じて Apache Gravitino のメタデータ操作を提供します。カタログ、スキーマ、テーブル、モデル、ユーザー、タグ、ロールを扱い、AI アシスタントからメタデータの照会や管理を行いたい利用者を想定しています。
主な機能
- 01カタログ、スキーマ、テーブルのメタデータ照会
- 02テーブルと列へのタグ付け
- 03ユーザーロールの付与と取り消し
- 04モデルとモデルバージョンの照会
- 05トークンおよび基本認証への対応
活用シーン
- 01AI アシスタントからテーブル構造や列情報を照会する
- 02タグを基にデータオブジェクトを検索する
- 03ユーザーのロール割り当てを管理する
MCP 対応
本サーバーは MCP サーバーとして動作し、厳選された Gravitino メタデータツールを MCP クライアントに提供します。GRAVITINO_ACTIVE_TOOLS で有効化するツールを絞り込めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Apache Gravitino 用 MCP サーバー
Gravitino API を提供する MCP サーバーです。Apache Gravitino サービス向けの FastMCP 統合機能です。
機能
- Gravitino API と FastMCP をシームレスに統合
- メタデータを操作するためのシンプルなインターフェース
- カタログ、スキーマ、テーブル、モデル、ユーザー、タグ、ユーザーロール管理のメタデータ操作をサポート
インストール
このプロジェクトでは、依存関係と仮想環境の管理ツールとして uv を使用します。システムに uv がインストールされていることを確認してください。
-
リポジトリをクローンします。
git clone [email protected]:datastrato/mcp-server-gravitino.git -
プロジェクトディレクトリに移動します。
cd mcp-server-gravitino -
仮想環境を作成します。
uv venv -
仮想環境を有効化します。
source .venv/bin/activate -
依存関係をインストールします。
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
各引数の意味は次のとおりです。
| 引数 | 説明 |
|---|---|
uv | UV CLI ツールを起動します |
--directory /path/to/mcp-gravitino | pyproject.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 の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。