mcpField
M
mcp-server-openmetadata

mcp-server-openmetadata

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

mcp-server-openmetadata について

mcp-server-openmetadata は、OpenMetadata の REST API をラップした MCP サーバーで、MCP クライアントから標準的な方法で OpenMetadata を操作できます。README にはエンティティごとに実装済みのエンドポイントを示す一覧があります。

主な機能

  1. 01OpenMetadata REST API のラップ
  2. 02テーブルとスキーマの作成、参照、更新、削除
  3. 03ダッシュボード、チャート、パイプライン、トピックの操作
  4. 04ユーザー、チーム、ロール、ポリシーの管理
  5. 05リネージ、利用状況、検索のエンドポイント
  6. 06データ品質のテストケースとテストスイートの操作

活用シーン

  1. 01MCP クライアントから OpenMetadata のテーブルやデータベースのメタデータを照会する
  2. 02MCP ツールでグロッサリー、タグ、分類を管理する
  3. 03データリネージとデータ品質テスト結果を取得する

MCP 対応

本プロジェクトは MCP サーバーであり、OpenMetadata の REST API 操作を MCP クライアントに ツールとして公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MseeP.ai Security Assessment Badge

mcp-server-openmetadata

smithery badge

OpenMetadata と MCP クライアントをシームレスに統合できる、Model Context Protocol(MCP)サーバーの実装です。このプロジェクトは、Model Context Protocol を通じて OpenMetadata を操作する標準的な方法を提供します。

OpenMetadata MCP サーバー用サーバー

概要

このプロジェクトは、OpenMetadata の REST API をラップする Model Context Protocol サーバーを実装し、MCP クライアントが標準的な方法で OpenMetadata を操作できるようにします。

機能の実装状況

コアデータエンティティ(table、database、databaseschema)
機能API パス状況
テーブル
テーブル一覧の取得/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/databases✅
データベースの取得/api/v1/databases/{id}✅
名前によるデータベースの取得/api/v1/databases/name/{fqn}✅
データベースの作成/api/v1/databases✅
データベースの更新/api/v1/databases/{id}✅
データベースの削除/api/v1/databases/{id}✅
データベーススキーマ
データベーススキーマ一覧の取得/api/v1/databaseSchemas✅
データベーススキーマの取得/api/v1/databaseSchemas/{id}✅
名前によるデータベーススキーマの取得/api/v1/databaseSchemas/name/{fqn}✅
データベーススキーマの作成/api/v1/databaseSchemas✅
データベーススキーマの更新/api/v1/databaseSchemas/{id}✅
データベーススキーマの削除/api/v1/databaseSchemas/{id}✅
データアセット(dashboard、chart、pipeline、topic、metric、container、report、mlmodel)
機能API パスステータス
ダッシュボード
ダッシュボード一覧/api/v1/dashboards✅
ダッシュボードを取得/api/v1/dashboards/{id}✅
名前でダッシュボードを取得/api/v1/dashboards/name/{fqn}✅
ダッシュボードを作成/api/v1/dashboards✅
ダッシュボードを更新/api/v1/dashboards/{id}✅
ダッシュボードを削除/api/v1/dashboards/{id}✅
チャート
チャート一覧/api/v1/charts✅
チャートを取得/api/v1/charts/{id}✅
名前でチャートを取得/api/v1/charts/name/{fqn}✅
チャートを作成/api/v1/charts✅
チャートを更新/api/v1/charts/{id}✅
チャートを削除/api/v1/charts/{id}✅
パイプライン
パイプライン一覧/api/v1/pipelines✅
パイプラインを取得/api/v1/pipelines/{id}✅
名前でパイプラインを取得/api/v1/pipelines/name/{fqn}✅
パイプラインを作成/api/v1/pipelines✅
パイプラインを更新/api/v1/pipelines/{id}✅
パイプラインを削除/api/v1/pipelines/{id}✅
トピック
トピック一覧/api/v1/topics✅
トピックを取得/api/v1/topics/{id}✅
名前でトピックを取得/api/v1/topics/name/{fqn}✅
トピックを作成/api/v1/topics✅
トピックを更新/api/v1/topics/{id}✅
トピックを削除/api/v1/topics/{id}✅
メトリクス
メトリクス一覧/api/v1/metrics✅
メトリクスを取得/api/v1/metrics/{id}✅
名前でメトリクスを取得/api/v1/metrics/name/{fqn}✅
メトリクスを作成/api/v1/metrics✅
メトリクスを更新/api/v1/metrics/{id}✅
メトリクスを削除/api/v1/metrics/{id}✅
コンテナ
コンテナ一覧/api/v1/containers✅
コンテナを取得/api/v1/containers/{id}✅
名前でコンテナを取得/api/v1/containers/name/{fqn}✅
コンテナを作成/api/v1/containers✅
コンテナを更新/api/v1/containers/{id}✅
コンテナを削除/api/v1/containers/{id}✅
レポート
レポート一覧/api/v1/reports✅
レポートを取得/api/v1/reports/{id}✅
名前でレポートを取得/api/v1/reports/name/{fqn}✅
レポートを作成/api/v1/reports✅
レポートを更新/api/v1/reports/{id}✅
レポートを削除/api/v1/reports/{id}✅
ML モデル
ML モデル一覧/api/v1/mlmodels✅
ML モデルを取得/api/v1/mlmodels/{id}✅
名前で ML モデルを取得/api/v1/mlmodels/name/{fqn}✅
ML モデルを作成/api/v1/mlmodels✅
ML モデルを更新/api/v1/mlmodels/{id}✅
ML モデルを削除/api/v1/mlmodels/{id}✅
ユーザーとチーム(user、team)
機能API パスステータス
チーム
チーム一覧/api/v1/teams✅
チームを取得/api/v1/teams/{id}✅
名前でチームを取得/api/v1/teams/name/{name}✅
チームを作成/api/v1/teams✅
チームを更新/api/v1/teams/{id}✅
チームを削除/api/v1/teams/{id}✅
ユーザー
ユーザー一覧/api/v1/users✅
ユーザーを取得/api/v1/users/{id}✅
名前でユーザーを取得/api/v1/users/name/{name}✅
ユーザーを作成/api/v1/users✅
ユーザーを更新/api/v1/users/{id}✅
ユーザーを削除/api/v1/users/{id}✅
ガバナンスと分類(classification、glossary、tag)
機能API パス状態
分類
分類の一覧取得/api/v1/classifications✅
分類の取得/api/v1/classifications/{id}✅
名前による分類の取得/api/v1/classifications/name/{name}✅
分類の作成/api/v1/classifications✅
分類の更新/api/v1/classifications/{id}✅
分類の削除/api/v1/classifications/{id}✅
用語集
用語集の一覧取得/api/v1/glossaries✅
用語集の取得/api/v1/glossaries/{id}✅
名前による用語集の取得/api/v1/glossaries/name/{name}✅
用語集の作成/api/v1/glossaries✅
用語集の更新/api/v1/glossaries/{id}✅
用語集の削除/api/v1/glossaries/{id}✅
用語集の用語一覧取得/api/v1/glossaryTerms✅
用語集の用語の取得/api/v1/glossaryTerms/{id}✅
タグ
タグの一覧取得/api/v1/tags✅
タグの取得/api/v1/tags/{id}✅
名前によるタグの取得/api/v1/tags/name/{name}✅
タグの作成/api/v1/tags✅
タグの更新/api/v1/tags/{id}✅
タグの削除/api/v1/tags/{id}✅
システムと運用(bot、services、event)
機能API パス状態
ボット
ボットの一覧取得/api/v1/bots✅
ボットの取得/api/v1/bots/{id}✅
名前によるボットの取得/api/v1/bots/name/{name}✅
ボットの作成/api/v1/bots✅
ボットの更新/api/v1/bots/{id}✅
ボットの削除/api/v1/bots/{id}✅
サービス
サービスの一覧取得/api/v1/services✅
データベースサービス/api/v1/services/databaseServices✅
ダッシュボードサービス/api/v1/services/dashboardServices✅
メッセージングサービス/api/v1/services/messagingServices✅
接続のテスト/api/v1/services/testConnection✅
イベント
イベントの一覧取得/api/v1/events✅
イベントサブスクリプションの一覧取得/api/v1/events/subscriptions✅
イベントサブスクリプションの取得/api/v1/events/subscriptions/{id}✅
イベントサブスクリプションの作成/api/v1/events/subscriptions✅
イベントサブスクリプションの更新/api/v1/events/subscriptions/{id}✅
イベントサブスクリプションの削除/api/v1/events/subscriptions/{id}✅
宛先のテスト/api/v1/events/subscriptions/testDestination✅
分析とモニタリング(lineage、usage、search)
機能API パス状態
リネージュ
エンティティ ID によるリネージュの取得/api/v1/lineage/{entity}/{id}✅
エンティティ名によるリネージュの取得/api/v1/lineage/{entity}/name/{fqn}✅
リネージュの追加/更新/api/v1/lineage✅
リネージュの削除/api/v1/lineage✅
使用状況
エンティティの使用状況の取得/api/v1/usage/{entity}/{id}✅
使用状況データの追加/api/v1/usage✅
使用状況の概要の取得/api/v1/usage/summary✅
検索と探索
検索クエリ/api/v1/search/query✅
検索候補/api/v1/search/suggest✅
検索集計/api/v1/search/aggregate✅
フィールド検索クエリ/api/v1/search/fieldQuery✅
データ品質(test_case、test_suite)
機能API パスステータス
テストケース
テストケースの一覧表示/api/v1/dataQuality/testCases✅
テストケースの取得/api/v1/dataQuality/testCases/{id}✅
名前でテストケースを取得/api/v1/dataQuality/testCases/name/{fqn}✅
テストケースの作成/api/v1/dataQuality/testCases✅
テストケースの更新/api/v1/dataQuality/testCases/{id}✅
テストケースの削除/api/v1/dataQuality/testCases/{id}✅
テストケース結果の一覧表示/api/v1/dataQuality/testCases/{fqn}/testCaseResult✅
テストケース結果の取得/api/v1/dataQuality/testCases/testCaseResults/{fqn}✅
テストスイート
テストスイートの一覧表示/api/v1/dataQuality/testSuites✅
テストスイートの取得/api/v1/dataQuality/testSuites/{id}✅
名前でテストスイートを取得/api/v1/dataQuality/testSuites/name/{name}✅
基本テストスイートの作成/api/v1/dataQuality/testSuites/basic✅
実行可能なテストスイートの作成/api/v1/dataQuality/testSuites/executable✅
テストスイートの更新/api/v1/dataQuality/testSuites/{id}✅
テストスイートの削除/api/v1/dataQuality/testSuites/{id}✅
実行サマリーの取得/api/v1/dataQuality/testSuites/executionSummary✅
データ品質レポートの取得/api/v1/dataQuality/testSuites/dataQualityReport✅
アクセス制御とセキュリティ(policy、role)
機能API パスステータス
ポリシー
ポリシーの一覧表示/api/v1/policies✅
ポリシーの取得/api/v1/policies/{id}✅
名前でポリシーを取得/api/v1/policies/name/{name}✅
ポリシーの作成/api/v1/policies✅
ポリシーの更新/api/v1/policies/{id}✅
ポリシーの削除/api/v1/policies/{id}✅
ポリシーの検証/api/v1/policies/validation/condition✅
ポリシーリソースの一覧表示/api/v1/policies/resources✅
ロール
ロールの一覧表示/api/v1/roles✅
ロールの取得/api/v1/roles/{id}✅
名前でロールを取得/api/v1/roles/name/{name}✅
ロールの作成/api/v1/roles✅
ロールの更新/api/v1/roles/{id}✅
ロールの削除/api/v1/roles/{id}✅
ドメイン管理(domain)
機能API パスステータス
ドメイン
ドメインの一覧表示/api/v1/domains✅
ドメインの取得/api/v1/domains/{id}✅
名前でドメインを取得/api/v1/domains/name/{name}✅
ドメインの作成/api/v1/domains✅
ドメインの更新/api/v1/domains/{id}✅
ドメインの削除/api/v1/domains/{id}✅
データプロダクト
データプロダクトの一覧表示/api/v1/dataProducts✅
データプロダクトの取得/api/v1/dataProducts/{id}✅
名前でデータプロダクトを取得/api/v1/dataProducts/name/{fqn}✅
データプロダクトの作成/api/v1/dataProducts✅
データプロダクトの更新/api/v1/dataProducts/{id}✅
データプロダクトの削除/api/v1/dataProducts/{id}✅
未実装
機能API パスステータス
API 管理
API コレクション/api/v1/apiCollections❌
API エンドポイント/api/v1/apiEndpoints❌
その他のアセット
アプリ/api/v1/apps❌
フィードとアクティビティ
フィード/api/v1/feed❌
高度な機能
ペルソナ/api/v1/personas❌
クエリ/api/v1/queries❌
検索インデックス/api/v1/searchIndexes❌
ストアドプロシージャ/api/v1/storedProcedures❌
候補/api/v1/suggestions❌
Webhook/api/v1/webhooks❌

API グループ

このサーバーは、コマンドライン引数を使ったモジュール式の API グループ選択に対応しています。利用可能な API グループは次のとおりです。

コアデータエンティティ
  • table - テーブルエンティティの管理
  • database - データベースエンティティの管理
  • databaseschema - データベーススキーマの管理
データアセット
  • dashboard - ダッシュボードエンティティの管理
  • chart - チャートエンティティの管理
  • pipeline - パイプラインエンティティの管理
  • topic - トピックエンティティの管理
  • metrics - メトリクスエンティティの管理
  • container - コンテナーエンティティの管理
  • report - レポートエンティティの管理
  • mlmodel - ML モデルエンティティの管理
ユーザーとチーム
  • user - ユーザーエンティティの管理
  • team - チームエンティティの管理
ガバナンスと分類
  • classification - 分類エンティティの管理
  • glossary - 用語集と用語の管理
  • tag - タグとタグカテゴリの管理
システムと運用
  • bot - ボットエンティティの管理
  • services - サービス設定と接続テスト
  • event - イベントのサブスクリプションと通知
分析とモニタリング
  • lineage - データリネージの管理
  • usage - 使用状況分析の管理
  • search - 検索と探索の操作
データ品質
  • test_case - データ品質テストケースの管理
  • test_suite - データ品質テストスイートの管理
アクセス制御とセキュリティ
  • policy - アクセスポリシーとセキュリティの管理
  • role - ロールベースのアクセス制御の管理
ドメイン管理
  • domain - ドメインとデータプロダクトの管理

サーバーの実行時に、有効にする API グループを指定できます。

# Enable only core entities
python -m src.main --apis table,database,databaseschema

# Enable comprehensive data quality and governance
python -m src.main --apis test_case,test_suite,policy,role,tag,domain

# Enable all available APIs
python -m src.main --apis table,database,databaseschema,dashboard,chart,pipeline,topic,metrics,container,report,mlmodel,user,team,classification,glossary,tag,bot,services,event,lineage,usage,search,test_case,test_suite,policy,role,domain

# Use default selection (all implemented APIs)
python -m src.main

セットアップ

Smithery 経由でのインストール

Smithery 経由で、Claude Desktop 用の OpenMetadata MCP Server を自動的にインストールするには、次の手順を実行してください。

npx -y @smithery/cli install @yangkyeongmo/mcp-server-openmetadata --client claude
環境変数

次の認証方法のいずれかを設定します。

トークン認証(推奨)
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 ライセンス

コメント

MCP は初めてですか?

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

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