openmetadata について
OpenMetadata MCPは、メタデータ、リネージ、データ品質、1.12以降のData Contractsを含むOpenMetadataエンティティの検索・CRUDツールを提供します。メタデータの一括操作、品質調査、影響分析を行うチーム向けで、集約ツール、プロンプト、リソースも備えています。
主な機能
- 01多様なメタデータエンティティの検索・管理
- 02Data Contractsの検証と結果取得
- 03キーワード検索とセマンティック検索
- 04リネージ影響とデータ品質の集約
- 05MCPプロンプトとURIリソースの提供
活用シーン
- 01テーブル変更の影響評価と担当者の特定
- 02最近のデータ品質失敗の調査
- 03用語集の一括作成と用語の関連付け
- 04ユーザー所有エンティティの検索と再割り当て
MCP 対応
stdioまたは任意のStreamable HTTP経由で、MCPクライアントにツール、プロンプト、読み取り専用URIリソースを提供します。書き込み操作はデフォルトで無効で、設定により有効化できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @us-all/openmetadata-mcpOPENMETADATA_HOSTOpenMetadata server URL (e.g. https://om.example.com).OPENMETADATA_TOKENシークレットOpenMetadata bot/JWT token.OPENMETADATA_ALLOW_WRITESet to 'true' to enable write/destructive tools. Default read-only.OM_TOOLSComma-separated category allowlist. Default: all categories enabled.OM_DISABLEComma-separated category disablelist.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
173掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | はい | 検索クエリ |
| from | number | いいえ | ページネーションのオフセット |
| size | number | いいえ | 返す結果の数(最大 100 件) |
| index | enum | いいえ | 検索対象を特定のエンティティインデックスに限定しますtable_search_index | topic_search_index | dashboard_search_index | pipeline_search_index | mlmodel_search_index | container_search_index | query_search_index | user_search_index | team_search_index | glossary_term_search_index | tag_search_index | data_product_search_index | stored_procedure_search_index | dashboard_data_model_search_index | search_entity_search_index | domain_search_index | api_collection_search_index | api_endpoint_search_index |
| deleted | boolean | いいえ | 論理削除されたエンティティを含めます |
| sortField | string | いいえ | ソートフィールド(例:'updatedAt') |
| sortOrder | enum | いいえ | 並べ替え順asc | desc |
| queryFilter | string | いいえ | ElasticSearch クエリフィルター(JSON) |
| extractFields | string | いいえ | レスポンスから抽出して投影するフィールドのカンマ区切りドットパス(例:'id,name,owner.name,columns.*.name')。配列/オブジェクトのワイルドカードとして `*` を使用します。ドットを含むフィールド名はバッククォートで囲みます。大きなエンティティでレスポンスのトークン数を大幅に削減します。 |
| trackTotalHits | boolean | いいえ | 正確なヒット総数を追跡します |
| includeSourceFields | string | いいえ | 含めるソースフィールド |
詳細
OpenMetadata MCP サーバー
OpenMetadata MCP は、すべてのエンティティタイプに対する完全な CRUD を提供します。埋め込み MCP がまだ対応していない OM 1.12 以降のデータコントラクト、メトリクス、検索インデックス、API コレクション、API エンドポイントも対象です。
172 個のツール、4 つのワークフロープロンプト(リネージ影響/DQ 調査/用語集の初期設定/オーナーの再割り当て)、7 つの MCP リソースに加え、
lineage-impact(下流への影響範囲とオーナーへの通知リスト)、quality-rollup(指定範囲の DQ ステータス)、公式のデータコントラクト検証などの集約機能を備えています。
他のツールにはない機能
- OM 1.12 以降のエンティティに対応 — データコントラクト、メトリクス、検索インデックス、API コレクション、API エンドポイントに加え、ネイティブのコントラクト検証と結果取得にも対応しています。埋め込み MCP はまだ対応していません。
- 集約ツール —
lineage-impactは、リネージをたどり、利用者数を数え、エンティティタイプ別に内訳を示し、変更管理の通知用にオーナーの一覧を解決することで、「X を変更/削除したら何が壊れるか」に 1 回の呼び出しで回答します。get-domain-summaryは、/search/queryを使ってドメインと 6 種類の子エンティティを、7 回連続で呼び出す代わりに1 回の呼び出しで返します。get-table-summaryも同様に、テーブル、リネージ、サンプルデータ、DQ をまとめます。 - セマンティック検索 — OM 1.12 以降のベクトルインデックスに対する
semantic-search(POST/search/vector/query)に対応しています。キーワード検索で同義語が見つからない場合に便利です。 - MCP プロンプト(4 件)—
lineage-impact-analysis、data-quality-investigation、glossary-term-bootstrap、owner-change-propagation。モデルが直接呼び出すワークフローテンプレートです。 - MCP リソース(7 件)—
om://table/{fqn}、om://glossary-term/{fqn}、om://lineage/{type}/{fqn}、om://search/{query}、om://dashboard/{fqn}、om://pipeline/{fqn}、om://schema/{fqn}。 - トークン効率を考慮した設計 — 28 個の読み取りツールで
extractFieldsによる射影を使用し、changeDescription/version/updatedBy/hrefの不要な情報を取り除きます(サイズを約 80% 削減)。OM_TOOLS/OM_DISABLEによるカテゴリ切り替えと、メタツールsearch-toolsにも対応しています。 - Apps SDK カード — ChatGPT クライアントでは、
lineage-impactが影響範囲カードとして表示されます(下流/上流の件数、タイプ別の内訳、主要な利用者、通知対象のオーナー)。これは_meta["openai/outputTemplate"]を介して表示されます。Claude クライアントには同じ JSON コンテンツが返されます。 - stdio と Streamable HTTP — デフォルトは stdio です。ChatGPT Apps SDK またはリモートクライアントで使う場合は、
MCP_TRANSPORT=httpを設定します(MCP_HTTP_TOKENによる Bearer 認証)。
試してみましょう — 5 つのプロンプト
サーバーを Claude Desktop または Claude Code に接続して、次のいずれかを貼り付けてください。
- リネージの影響 — "
payments.transactionsテーブルは非推奨になります。このテーブルに依存するすべてのダッシュボード、パイプライン、ML モデルを一覧表示してください(上流と下流、深さ 3)。" - データ品質の調査 — "過去 7 日間に失敗したテストケースをすべて表示してください。テーブル別、次にテストタイプ別にグループ化し、成功/失敗の件数を示してください。"
- 用語集の初期設定 — "次の 8 つの用語を含む
payments用語集を作成してください:chargeback、refund、settlement、KYC、AML、transaction、customer-id、payment-method。関連する用語をリンクしてください。" - オーナーの再割り当て — "ユーザー
taeheeが退職します。このユーザーがオーナーになっているすべてのエンティティ(テーブル/ダッシュボード/パイプライン/ML モデル)を一覧表示してください。その後、すべてチームdata-platformに再割り当てしてください。" - ドメインの概要 — "
analyticsドメインの概要をまとめてください。テーブル/ダッシュボード/パイプライン/ML モデルの合計数、最近更新された上位 5 件、所有するデータプロダクトを示してください。"
これと OpenMetadata の組み込み MCP の使い分け
OpenMetadata 1.12 以降には組み込み MCP が付属しています。この 2 つは相互補完的です。
| OM 1.12 の組み込み MCP | @us-all/openmetadata-mcp(本プロジェクト) | |
|---|---|---|
| ツール数 | 約 10(検索、用語集の基本機能、リネージ、DQ、RCA、セマンティック検索) | 172(すべてのエンティティタイプの完全な CRUD) |
| OM 1.12 以降のエンティティタイプ(Data Contracts/Metrics/Search Index/API) | 一部対応 | ✅ 12 ツール |
| 集約ツール | ❌ | ✅ lineage-impact、get-domain-summary、get-table-summary |
| MCP プロンプト | ❌ | ✅ 4 |
| MCP リソース | ❌ | ✅ 7 |
| 認証 | OAuth2 / PAT、OM Authorization Engine(RBAC) | JWT ボットトークン + 書き込みゲート |
| デプロイ | OM サーバーに組み込み(マーケットプレイスからインストール) | 単独で実行する npm / Docker / npx |
| OM バージョン | 1.12 以降のみ | 1.x と互換 |
| 最適な用途 | RBAC 対応の AI エージェント、SSO を利用する組織 | 一括 CRUD、自動化、サンプルデータ、古い OM クラスター |
SSO を利用した RBAC 対応のガバナンスには、組み込み MCP を使用してください。一括メタデータ操作、すべてのエンティティに対応した完全な CRUD、自動化、および 1.12 より前の OM クラスターには、本サーバーを使用してください。
インストール
Claude Desktop
{
"mcpServers": {
"openmetadata": {
"command": "npx",
"args": ["-y", "@us-all/openmetadata-mcp"],
"env": {
"OPENMETADATA_HOST": "http://your-host:8585",
"OPENMETADATA_TOKEN": "<jwt-bot-token>"
}
}
}
}
Claude Code
claude mcp add openmetadata -s user \
-e OPENMETADATA_HOST=http://your-host:8585 \
-e OPENMETADATA_TOKEN=<jwt-bot-token> \
-- npx -y @us-all/openmetadata-mcp
Docker
docker run --rm -i \
-e OPENMETADATA_HOST=http://your-host:8585 \
-e OPENMETADATA_TOKEN=<jwt-bot-token> \
ghcr.io/us-all/openmetadata-mcp-server
ソースからビルド
git clone https://github.com/us-all/openmetadata-mcp-server.git
cd openmetadata-mcp-server && pnpm install && pnpm build
node dist/index.js
トークンの取得
- OpenMetadata UI を開きます → Settings → Bots
- 新しいボットを作成するか、既存のボットを使用します(
ingestion-botを使用できます) - JWT トークンをコピーします
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
OPENMETADATA_HOST | ✅ | — | OpenMetadata サーバーの URL(例:http://localhost:8585) |
OPENMETADATA_TOKEN | ✅ | — | JWT またはボットトークン |
OPENMETADATA_ALLOW_WRITE | ❌ | false | true に設定すると、変更操作(作成/更新/削除)が有効になります |
OM_TOOLS | ❌ | — | カテゴリのカンマ区切りの許可リスト。最もトークンを節約できます。 |
OM_DISABLE | ❌ | — | カテゴリのカンマ区切りの拒否リスト。OM_TOOLS が設定されている場合は無視されます。 |
MCP_TRANSPORT | ❌ | stdio | Streamable HTTP トランスポートを有効にするには http を指定します |
MCP_HTTP_TOKEN | 条件付き | — | ベアラートークン。MCP_TRANSPORT=http の場合に必須です |
MCP_HTTP_PORT | ❌ | 3000 | HTTP リッスンポート |
MCP_HTTP_HOST | ❌ | 127.0.0.1 | HTTP バインドホスト(ローカルホストでは DNS リバインディング保護が自動的に有効になります) |
MCP_HTTP_SKIP_AUTH | ❌ | false | ベアラー認証をスキップします(例:リバースプロキシで認証を処理する場合) |
カテゴリ(10):search、core、discovery、governance、quality、services、admin、events、entities、meta(常に有効)。
MCP_TRANSPORT=http の場合:POST /mcp(ベアラー認証付き JSON-RPC)+ GET /health(公開ヘルスチェック)。
トークン効率
| シナリオ | ツール | スキーマトークン数 | デフォルトとの比較 |
|---|---|---|---|
| デフォルト(すべてのカテゴリ) | 172 | 24,000 | — |
一般的な設定(OM_TOOLS=search,core,governance,quality,discovery) | 120 | 19,500 | −19% |
最小限の設定(OM_TOOLS=search,core) | 26 | 4,600 | −81% |
個々のレスポンスでは、extractFields によりさらに約 80~90% 削減できます(例:get-table は extractFields: "name,columns.*.name,columns.*.dataType" を指定すると 8KB から 200B になります)。読み取りツール 28 個で自動適用されます。
// without
get-table { "id": "..." }
// with
get-table { "id": "...", "extractFields": "name,description,columns.*.name,columns.*.dataType" }
MCP プロンプト(4)
MCP の prompts/list から利用できるワークフローテンプレート:
lineage-impact-analysis— エンティティを指定すると、上流と下流のリネージをたどり、影響度順に並べます。data-quality-investigation— 2 つの期間における DQ テスト結果の差分を取り、失敗パターンを分類します。glossary-term-bootstrap— 関連する用語を N 個含む用語集を一括作成し、自動的にリンクします。owner-change-propagation— ユーザー X が所有するすべてのエンティティを探し、一括再割り当てを提案します。
MCP リソース
URI ベースの読み取り専用アクセス:
om://table/{fqn}(テーブル + カラム + オーナー + タグ + 結合)、om://glossary-term/{fqn}、om://lineage/{type}/{fqn}(深さ 3)、om://search/{query}(キーワード検索の上位 10 件)、om://dashboard/{fqn}、om://pipeline/{fqn}(タスクを含む)、om://schema/{fqn}。
ツール(172)
10 カテゴリーあります。実行時に search-tools を使って見つけられます。全リストは以下に折りたたまれています。
| カテゴリー | ツール数 |
|---|---|
| テーブル/データベース/スキーマ/リネージ | 22 |
| サービス(データベース/ダッシュボード/メッセージング/パイプライン/ML/ストレージ) | 16 |
| 用語集/用語 | 12 |
| ドメイン/データプロダクト | 12 |
| 分類/タグ | 10 |
| 検索(ダッシュボード/パイプライン/チャート/トピック/コンテナー/ML モデル) | 36 |
| ガバナンス(ロール/ポリシー/ユーザー/チーム/ボット) | 13 |
| 品質(テストスイート/ケース/サンプルデータ) | 13 |
| ストアドプロシージャ/クエリ | 11 |
| OM 1.12 以降のエンティティ(Data Contract/Metric/Search Index/API Collection/API Endpoint) | 12 |
検索(search-metadata、suggest-metadata、semantic-search) | 3 |
集計(lineage-impact、quality-rollup、get-domain-summary、get-table-summary) | 4 |
品質(書き込み制限付きの run-test-suite) | 1 |
メタ(search-tools) | 1 |
ツールの全リスト
検索(3)
search-metadata、suggest-metadata、semantic-search
テーブル(6)
list-tables、get-table、get-table-by-name、create-table、update-table、delete-table
データベース(6)
list-databases、get-database、get-database-by-name、create-database、update-database、delete-database
データベーススキーマ(6)
list-schemas、get-schema、get-schema-by-name、create-schema、update-schema、delete-schema
リネージ(4)
get-lineage、get-lineage-by-name、add-lineage、delete-lineage
サービス(16)
データベースサービス用ツールが 6 個、ダッシュボード/メッセージング/パイプライン/ML モデル/ストレージサービス用ツールがそれぞれ 2 個です。
用語集(12)
用語集 CRUD が 6 個、用語集用語 CRUD が 6 個です。
ダッシュボード/パイプライン/トピック/チャート/コンテナー/ML モデル(36)
それぞれ CRUD が 6 個あり、list / get / get-by-name / create / update / delete の形式です。
分類とタグ(10)
分類用ツールが 4 個、タグ CRUD が 6 個です。
ドメインとデータプロダクト(12)
ドメイン CRUD が 6 個、データプロダクト CRUD が 6 個です。
ユーザーとチーム(9)
ユーザーの読み取り用ツールが 3 個、チーム CRUD が 6 個です。
アクセス制御(4)
list-roles、get-role、list-policies、get-policy
データ品質(7)
list-test-suites、get-test-suite、get-test-suite-by-name、list-test-cases、get-test-case、get-test-case-by-name、list-test-case-results
ストアドプロシージャ(6)
CRUD が 6 個です。
クエリ(5)
list-queries、get-query、create-query、update-query、delete-query
イベント(3)
list-events、get-event-subscription、get-event-subscription-by-name
ボット(3)
list-bots、get-bot、get-bot-by-name
サンプルデータ(6、読み取り専用)
get-table-sample-data、get-table-sample-data-by-name、get-topic-sample-data、get-topic-sample-data-by-name、get-container-sample-data、get-container-sample-data-by-name
OM 1.12 以降のエンティティ(12)
list-data-contracts、get-data-contract-by-name、run-data-contract-validation、get-data-contract-latest-result、list-metrics、get-metric-by-name、list-search-indexes、get-search-index-by-name、list-api-collections、get-api-collection-by-name、list-api-endpoints、get-api-endpoint-by-name
集計
lineage-impact、quality-rollup、get-domain-summary、get-table-summary
品質(書き込み制限付き)
run-test-suite — テストスイートに関連付けられた取り込みパイプラインを起動します。非同期で実行され、結果は通常のパイプラインフローを通じて反映されます。
メタ
search-tools — キーワードでほかのツールを検索します。常に有効です。
アーキテクチャ
Claude → MCP stdio → src/index.ts → src/tools/*.ts → OpenMetadataClient (fetch) → OpenMetadata REST
@us-all/mcp-toolkit 上に構築されています。
extractFields— トークン効率の高いレスポンス投影aggregate(fetchers, caveats)—lineage-impact/get-domain-summary/get-table-summaryで使用されるファンアウトヘルパーcreateWrapToolHandler—OPENMETADATA_TOKENの秘匿化とOpenMetadataErrorの抽出search-toolsメタツール
OM 1.x を対象としています。OM 1.12 以降のエンティティを含む実際の OM バックエンドで検証済みです。
技術スタック
Node.js 22+ • TypeScript strict ESM • pnpm • @modelcontextprotocol/sdk • zod • dotenv • vitest。
JSON-Patch の更新は自動的に処理されます(PATCH application/json-patch+json content-type)。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。