mcp-server-openmetadata について
mcp-server-openmetadataは、OpenMetadata REST APIをMCPサーバーとして利用できるようにします。実装済みの操作はテーブルの一覧、取得、作成、更新、削除で、その他のAPI領域は未実装です。
主な機能
- 01テーブル一覧の取得
- 02IDまたは名前でテーブルを取得
- 03テーブルの作成と更新
- 04テーブルの削除
- 05JWTトークンまたは基本認証
活用シーン
- 01OpenMetadataインスタンスのテーブルを確認
- 02MCPクライアントからテーブルメタデータを作成・変更
- 03OpenMetadataからテーブルレコードを削除
MCP 対応
実装済みのOpenMetadata REST API操作をMCPクライアントに公開します。現時点ではテーブルの一覧、取得、作成、更新、削除に対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-openmetadata
OpenMetadata 向けの Model Context Protocol(MCP)サーバー実装です。MCP クライアントとのシームレスな連携を可能にします。このプロジェクトでは、Model Context Protocol を通じて OpenMetadata とやり取りするための標準化された方法を提供します。
概要
このプロジェクトは、OpenMetadata の REST API をラップする Model Context Protocol サーバーを実装し、MCP クライアントが標準化された方法で OpenMetadata とやり取りできるようにします。
機能の実装状況
| 機能 | API パス | ステータス |
|---|---|---|
| データアセット | ||
| データベース一覧を取得 | /api/v1/databases | ❌ |
| データベースを取得 | /api/v1/databases/{id} | ❌ |
| 名前でデータベースを取得 | /api/v1/databases/name/{fqn} | ❌ |
| データベースをエクスポート | /api/v1/databases/name/{name}/export | ❌ |
| データベースをインポート | /api/v1/databases/name/{name}/import | ❌ |
| テーブル一覧を取得 | /api/v1/tables | ✅ |
| テーブルを取得 | /api/v1/tables/{id} | ✅ |
| 名前でテーブルを取得 | /api/v1/tables/name/{fqn} | ✅ |
| テーブルを作成 | /api/v1/tables | ✅ |
| テーブルを更新 | /api/v1/tables/{id} | ✅ |
| テーブルを削除 | /api/v1/tables/{id} | ✅ |
| テーブルをエクスポート | /api/v1/tables/name/{name}/export | ❌ |
| テーブルをインポート | /api/v1/tables/name/{name}/import | ❌ |
| メトリクス一覧を取得 | /api/v1/metrics | ❌ |
| メトリクスを取得 | /api/v1/metrics/{id} | ❌ |
| ダッシュボード一覧を取得 | /api/v1/dashboards | ❌ |
| ダッシュボードを取得 | /api/v1/dashboards/{id} | ❌ |
| 名前でダッシュボードを取得 | /api/v1/dashboards/name/{fqn} | ❌ |
| レポート一覧を取得 | /api/v1/reports | ❌ |
| レポートを取得 | /api/v1/reports/{id} | ❌ |
| パイプライン一覧を取得 | /api/v1/pipelines | ❌ |
| パイプラインを取得 | /api/v1/pipelines/{id} | ❌ |
| 名前でパイプラインを取得 | /api/v1/pipelines/name/{fqn} | ❌ |
| トピック一覧を取得 | /api/v1/topics | ❌ |
| トピックを取得 | /api/v1/topics/{id} | ❌ |
| サービス | ||
| データベースサービス一覧を取得 | /api/v1/services/databaseServices | ❌ |
| データベースサービスを取得 | /api/v1/services/databaseServices/{id} | ❌ |
| 名前でデータベースサービスを取得 | /api/v1/services/databaseServices/name/{fqn} | ❌ |
| データベースサービスをエクスポート | /api/v1/services/databaseServices/name/{name}/export | ❌ |
| データベースサービスをインポート | /api/v1/services/databaseServices/name/{name}/import | ❌ |
| ダッシュボードサービス一覧を取得 | /api/v1/services/dashboardServices | ❌ |
| ダッシュボードサービスを取得 | /api/v1/services/dashboardServices/{id} | ❌ |
| 名前でダッシュボードサービスを取得 | /api/v1/services/dashboardServices/name/{fqn} | ❌ |
| チームとユーザー | ||
| チーム一覧を取得 | /api/v1/teams | ❌ |
| チームを取得 | /api/v1/teams/{id} | ❌ |
| 名前でチームを取得 | /api/v1/teams/name/{fqn} | ❌ |
| チームをエクスポート | /api/v1/teams/name/{name}/export | ❌ |
| チームをインポート | /api/v1/teams/name/{name}/import | ❌ |
| ユーザー一覧を取得 | /api/v1/users | ❌ |
| ユーザーを取得 | /api/v1/users/{id} | ❌ |
| 名前でユーザーを取得 | /api/v1/users/name/{name} | ❌ |
| ユーザーログイン | /api/v1/users/login | ❌ |
| ユーザーログアウト | /api/v1/users/logout | ❌ |
| ユーザー登録 | /api/v1/users/signup | ❌ |
| パスワードを変更 | /api/v1/users/changePassword | ❌ |
| 検索 | ||
| 検索クエリ | /api/v1/search/query | ❌ |
| 検索候補 | /api/v1/search/suggest | ❌ |
| 検索集計 | /api/v1/search/aggregate | ❌ |
| フィールドクエリ | /api/v1/search/fieldQuery | ❌ |
| ドキュメントを取得 | /api/v1/search/get/{index}/doc/{id} | ❌ |
| タグと分類 | ||
| タグ一覧を取得 | /api/v1/tags | ❌ |
| タグを取得 | /api/v1/tags/{id} | ❌ |
| 名前でタグを取得 | /api/v1/tags/name/{fqn} | ❌ |
| リネージ | ||
| リネージを取得 | /api/v1/lineage/getLineage | ❌ |
| リネージをエクスポート | /api/v1/lineage/export | ❌ |
| 名前でエンティティのリネージを取得 | /api/v1/lineage/{entity}/name/{fqn} | ❌ |
| ID でエンティティのリネージを取得 | /api/v1/lineage/{entity}/{id} | ❌ |
| リネージエッジを取得 | /api/v1/lineage/getLineageEdge/{fromId}/{toId} | ❌ |
| リネージを追加/更新 | /api/v1/lineage | ❌ |
| FQN でリネージを追加/更新 | /api/v1/lineage/{fromEntity}/name/{fromFQN}/{toEntity}/name/{toFQN} | ❌ |
| ID でリネージを追加/更新 | /api/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId} | ❌ |
| 用語集 | ||
| 用語集一覧を取得 | /api/v1/glossaries | ❌ |
| 用語集を取得 | /api/v1/glossaries/{id} | ❌ |
| 名前で用語集を取得 | /api/v1/glossaries/name/{fqn} | ❌ |
| 用語集をエクスポート | /api/v1/glossaries/name/{name}/export | ❌ |
| 用語集をインポート | /api/v1/glossaries/name/{name}/import | ❌ |
| 用語集用語一覧を取得 | /api/v1/glossaryTerms | ❌ |
| 用語集用語を取得 | /api/v1/glossaryTerms/{id} | ❌ |
| 名前で用語集用語を取得 | /api/v1/glossaryTerms/name/{fqn} | ❌ |
| 用語にアセットを追加 | /api/v1/glossaryTerms/{id}/assets/add | ❌ |
| 用語からアセットを削除 | /api/v1/glossaryTerms/{id}/assets/remove | ❌ |
| 用語のタグを検証 | /api/v1/glossaryTerms/{id}/tags/validate | ❌ |
| 使用状況 | ||
| 名前でエンティティの使用状況を取得 | /api/v1/usage/{entity}/name/{fqn} | ❌ |
| ID でエンティティの使用状況を取得 | /api/v1/usage/{entity}/{id} | ❌ |
セットアップ
環境変数
以下のいずれかの認証方法を設定してください。
トークン認証(推奨)
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_JWT_TOKEN=<your-jwt-token>
ベーシック認証
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_USERNAME=<your-username>
OPENMETADATA_PASSWORD=<your-password>
Claude Desktop での使用方法
以下のいずれかの認証方法を使用して、claude_desktop_config.json に追加してください。
トークン認証(推奨)
{
"mcpServers": {
"mcp-server-openmetadata": {
"command": "uvx",
"args": ["mcp-server-openmetadata"],
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_JWT_TOKEN": "your-jwt-token"
}
}
}
}
ベーシック認証
{
"mcpServers": {
"mcp-server-openmetadata": {
"command": "uvx",
"args": ["mcp-server-openmetadata"],
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_USERNAME": "your-username",
"OPENMETADATA_PASSWORD": "your-password"
}
}
}
}
uv を使用した代替の設定方法:
トークン認証(推奨)
{
"mcpServers": {
"mcp-server-openmetadata": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-server-openmetadata",
"run",
"mcp-server-openmetadata"
],
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_JWT_TOKEN": "your-jwt-token"
}
}
}
}
ベーシック認証
{
"mcpServers": {
"mcp-server-openmetadata": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-server-openmetadata",
"run",
"mcp-server-openmetadata"
],
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_USERNAME": "your-username",
"OPENMETADATA_PASSWORD": "your-password"
}
}
}
}
/path/to/mcp-server-openmetadata を、リポジトリをクローンした実際のパスに置き換えてください。
手動実行
サーバーを手動で実行することもできます。
python src/server.py
オプション:
--port:SSE の待ち受けポート(デフォルト:8000)--transport:トランスポートの種類(stdio/sse、デフォルト:stdio)
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
MIT License
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。