Doris MCP Server について
Apache Doris MCP Server は、Apache Doris の機能を MCP ホストや AI エージェントに公開する読み取り専用の MCP サーバーです。8 つのドメインと 55 個の子機能を段階的に検出する仕組みで、認可、スキーマ、障害時の挙動を明示しています。
主な機能
- 018 ドメインと 55 個の子機能を段階的に検出
- 02読み取り専用ランタイムと Doris RBAC による最終認可
- 03stdio と Streamable HTTP のトランスポート対応
- 04SQL の形、行数、バイト数の上限設定
- 05出力スキーマの検証と機密情報のマスキング
- 06任意で利用可能な ADBC と MetricFlow 連携
活用シーン
- 01AI エージェントによる Doris データの照会と実行計画の確認
- 02MCP ホストからのスロークエリとクラスタ状態の診断
- 03Doris のメタデータとリネージを読み取り専用で参照
MCP 対応
本プロジェクトは MCP サーバーであり、stdio または Streamable HTTP 経由で Doris のツールと子機能を MCP クライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://127.0.0.1:3000/mcpclaude mcp add --transport http doris http://127.0.0.1:3000/mcp{"mcpServers":{"doris":{"type":"http","url":"http://127.0.0.1:3000/mcp"}}}Cursor で開く{"servers":{"doris":{"type":"http","url":"http://127.0.0.1:3000/mcp"}}}VS Code で開く{"mcpServers":{"doris":{"type":"http","url":"http://127.0.0.1:3000/mcp"}}}{"mcpServers":{"doris":{"serverUrl":"http://127.0.0.1:3000/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Apache Doris MCP Server
Apache Doris MCP Server は、MCP 2026-07-28 を介して、Apache Doris の読み取り専用機能を MCP ホストや AI エージェントに公開します。バージョン 1.0 では、広範でフラットなツール群を、安定した 8 つのドメインと段階的に公開される 55 個の子機能に置き換え、実行時の利用可否、認可、入力スキーマ、出力スキーマ、障害時の動作を明示しています。
リリース状況
パッケージのバージョンは 1.0.0 です。master における MCP 2026-07-28 プロトコル互換性は、Streamable HTTP と stdio で一般提供(GA)となっています。この GA の表明はプロトコル互換性が対象であり、Python パッケージの分類は引き続きベータで、文書化されているデプロイ上の制限も引き続き適用されます。
アップグレードする前に、1.0 リリースノート、1.0 移行ガイド、生成された8 ドメイン/55 子機能のレジストリをお読みください。詳細なリリース記録はIssue #189をご覧ください。
アーキテクチャの概要
MCP Host
-> stdio or Streamable HTTP
-> transport security and authentication
-> MCP protocol validation and authorization
-> stable domain discovery
-> route-aware Doris capability detection
-> exact child dispatch and read-only runtime
-> request-specific Doris route and RBAC
-> bounded, schema-validated result
デフォルトの hierarchical モードでは、次のドメインが公開されます。
| ドメイン | 子機能 | 担当領域 |
|---|---|---|
doris_catalog | 5 | カタログ、データベース、テーブル、テーブルコンテキスト、サイズ |
doris_query | 7 | クエリ、説明、プロファイル、診断、スロークエリ、明示的な ADBC |
doris_cluster | 11 | ノード、タスク、メトリクス、メモリ、キャッシュ、コンパクション、ワークロード |
doris_pipeline | 5 | データ取り込み、マテリアライズドビュー、鮮度、依存関係 |
doris_search | 4 | テキスト/ベクトル/ハイブリッド検索、アナライザー、インデックス、診断 |
doris_governance | 8 | 品質、ストレージ、リネージ、監査、UDF、認証マッピング |
doris_lakehouse | 3 | 外部カタログ、レイクハウステーブル、Variant |
doris_semantic | 12 | オプションの Apache Ossie によるグラウンディングと MetricFlow の利用 |
ドメインに {} を指定して呼び出すと、認可された子機能と正確なスキーマを確認できます。同じドメインを、child_tool、arguments、返された manifest_version を指定して再度呼び出します。段階的な公開に対応できないホストでは、起動前に MCP_TOOL_EXPOSURE_MODE=flat を設定できます。これにより、同じ 55 個の子機能が衝突しない正式名称で公開され、1.0 より前のエイリアスは復元されません。
アーキテクチャ、リクエストのライフサイクル、ツールドメインをご覧ください。
クイックスタート
要件:
- Python 3.12 以降;
- Apache Doris 2.0.0 以降;
- Doris FE の MySQL エンドポイントへのネットワークアクセス(通常はポート
9030)。
固定バージョンのリリースをインストールします。
pip install doris-mcp-server==1.0.0
doris-mcp-server はサーバーを起動します。doris-mcp-client は別のクライアントです。この 2 つのコマンドは互換性がありません。
Doris ルートを設定します。
export DORIS_HOST=127.0.0.1
export DORIS_PORT=9030
export DORIS_USER=mcp_reader
export DORIS_PASSWORD='replace-me'
export DORIS_DATABASE=information_schema
ループバックで Streamable HTTP を起動します。
doris-mcp-server \
--transport http \
--host 127.0.0.1 \
--port 3000
エンドポイント:
- MCP:
POST http://127.0.0.1:3000/mcp - レガシー MCP(オプトイン):
POST http://127.0.0.1:3000/mcp/legacy - ライブネス:
GET http://127.0.0.1:3000/live - Doris に基づくレディネス:
GET http://127.0.0.1:3000/ready
Dify 1.16.1 と MCP 2025-06-18 など、ハンドシェイク時代の Streamable HTTP のみに対応するホストでは、ENABLE_LEGACY_HTTP_ADAPTER=true を設定して /mcp/legacy に接続する必要があります。このアダプターが変更するのはプロトコル境界のみです。同じ 1.0 のツール、認可、機能ゲート、読み取り専用の実行が維持されます。
または、ローカルホスト向けに stdio を実行します。
doris-mcp-server --transport stdio
セキュリティ境界
- 組み込みの 1.0 カタログは読み取り専用です。
doris_adminは予約済みであり、登録されていません。 - 静的トークン、JWT、外部 OAuth/OIDC、Doris を利用した OAuth は、相互に検証される設定境界のもとでサポートされています。
- ドメインの検出と子プロセスの実行には、正確な認可識別子を使用します。
- 表示可能なオブジェクトとデータについては、Doris RBAC が最終的な権限を持ちます。
- データがサーバーの外部に送信される前に、SQL の形式、識別子、パラメーター、タイムアウト、行数、バイト数、結果スキーマに上限を設けます。
- シークレットとバックエンドエラーは、公開結果とログから削除されます。
- 明示的に危険な開発用オーバーライドを有効にしない限り、ループバック以外の HTTP には認証が必要です。
セキュリティと権限モデルとDoris のきめ細かなアクセスガイドをお読みください。
信頼性の境界
サーバーでは、決定的なマニフェストとエラー、有効期限付きの署名済みカーソル、ルートを考慮した機能スナップショット、上限付きの古いデータへのフォールバック、リクエスト固有の接続ルーティング、複数 FE のフェイルオーバー、稼働状態と準備状態の分離、出力スキーマの検証、サニタイズされたトレースの伝播を使用します。サポートされていない機能や設定に問題のある機能も、callable=false として検出可能な状態に保たれ、呼び出された場合はフェイルクローズします。
現在の制限には、プロセス内に限定される Doris を利用した OAuth、デフォルトで無効かつトークンバインドされたルートではフェイルクローズする明示的な ADBC、任意で利用できる読み取り専用の Ossie グラウンディング、SQL を上限付きの MCP クエリーランタイム経由で実行する必要がある任意の MetricFlow コンパイラーサイドカー、ベストエフォートのネイティブリネージ配信が含まれます。信頼性と制限を参照してください。
ドキュメント
ルートの README は、意図的にエントリーポイントとして設けています。二言語対応のドキュメントシステムは、以下にまとめられています。
主なガイド:
- アーキテクチャ
- リクエストとデータのフロー
- ツールドメイン
- 機能の利用可否
- Doris バージョン別機能マトリックス
- MetricFlow の統合
- MCP 2026-07-28 コントラクト
- セキュリティモデル
- デプロイ
- 信頼性と制限
- トラブルシューティング
- 設定リファレンス
- ホストとの統合
- カスタムツールプロバイダー
- コントリビューション
開発
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest
生成された成果物は同期を保つ必要があります。
uv run python generate_tool_catalog.py --check
uv lock --check
コントリビューションと検証を参照してください。
ライセンス
Apache License 2.0。LICENSE.txtとNOTICEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。