Apache Doris MCP(Model Context Protocol)Server は、Python と FastAPI をベースに構築されたバックエンドサービスであり、モデルコンテキストプロトコル(MCP)を通じて Apache Doris データベースとのシームレスな統合を目指しています。AI エージェントやクライアントに標準化されたインターフェースを提供し、自然言語から SQL への変換(NL2SQL)、SQL クエリ実行、メタデータ管理、データ分析などの機能をサポートします。このプロジェクトは Apache Doris コミュニティの重要な拡張であり、特に効率的なデータインタラクションとインテリジェントな分析を必要とするビジネスシーンに適しています。
2025 年に 0.3.0 バージョンがリリースされて以来、プロジェクトは大幅なアーキテクチャの更新を経験し、SSE(Server-Sent Events)ベースの通信から統一された Streamable HTTP プロトコルに移行し、エンタープライズレベルのセキュリティフレームワークとパフォーマンス最適化機能が新たに追加されました。プロジェクトの核となる目標は、MCP プロトコルを通じて AI システムと Apache Doris データベースを橋渡しし、インテリジェントなデータ探索と分析を実現することです。
Apache Doris MCP Server は、以下の主要な機能を提供します。
自然言語から SQL への変換(NL2SQL)
SQL クエリ実行
exec_query
ツールを通じて SQL コマンドの直接実行をサポートし、データベースの選択、行数制限、タイムアウト設定をカスタマイズできます。メタデータ管理
get_all_databases
, get_database_tables
)。get_table_schema
, get_table_comment
, get_column_comments
, get_table_indexes
)。get_catalog_list
)。監査ログクエリ
get_recent_audit_logs
を通じて最近の監査記録を取得し、カスタムの時間範囲と記録制限をサポートします。エンタープライズレベルのセキュリティフレームワーク
パフォーマンス最適化
performance_stats
)。マルチ通信モード
/mcp
エンドポイントを通じて、リクエスト/レスポンスとストリーミング転送をサポート(src/streamable_server.py
)。/sse
と /mcp/messages
エンドポイントを通じて通信をサポート(src/sse_server.py
)。src/stdio_server.py
)。実験的機能
column_analysis
)を提供し、データインサイトを提供します。プロジェクトのアーキテクチャ設計はモジュール化されており、効率的です。主に以下のコンポーネントが含まれます。
/mcp
エンドポイントを通じてすべてのリクエストを処理し、統合を簡素化します。doris_mcp_server/utils/db.py
:データベース接続(get_db_connection
)とクエリ実行(execute_query
, execute_query_df
)機能を提供します。doris_mcp_server/utils/schema_extractor.py
:MetadataExtractor
クラスはメタデータ抽出を担当し、キャッシュメカニズムが含まれます。doris_mcp_server/utils/sql_executor_tools.py
:execute_sql_query
関数はクエリロジックをカプセル化し、セキュリティチェックと結果のシリアライズが含まれます。DB_HOST
, DB_PORT
, DB_USER
, DB_PASSWORD
など)。アーキテクチャの変遷:0.3.0 バージョンでは、約 300 行の SSE レガシーコードが削除され、Streamable HTTP に移行し、ツール名の統一(
mcp_doris_
プレフィックスの削除)、モジュール化の程度が向上しました。
uv
や pip
など)リポジトリのクローン:
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
依存関係のインストール:
uv
(推奨)または pip
を使用してインストールします。
uv sync
または
pip install -r requirements.txt
環境変数の構成:
.env
ファイルを作成するか、環境変数を直接設定します。
export DORIS_HOST=<doris-host>
export DORIS_PORT=<port>
export DORIS_USER=<doris-user>
export DORIS_PASSWORD=<doris-pwd>
export SERVER_PORT=3000
サーバーの起動:
uv run --with mcp-doris --python 3.13 mcp-doris
または
python -m mcp_doris.mcp_server
起動の検証:
起動に成功したら、MCP クライアント(Cursor など)または内蔵の MCP ブラウザ(http://localhost:5173
)を通じてインタラクションできます。
テストスクリプトを実行してデータベース接続を検証します。
python src/doris-mcp-server/test.py
予想される出力:
🚀 Doris MCP Server is starting...
[DorisConnector] Connected to 127.0.0.1:9030
✅ Database connection successful.
[DorisConnector] Connection closed.
リアルタイムデータ分析
メタデータ探索
AI 駆動のビジネスインテリジェンス
セキュリティコンプライアンス管理
マルチカタログ環境
column_analysis
など)は実験的であり、バグが存在する可能性があります。Apache Doris MCP Server は、Apache Doris データベースと AI 駆動の分析ニーズを橋渡しする、強力で柔軟なツールです。その NL2SQL、メタデータ管理、セキュリティ、パフォーマンス最適化などの特性により、リアルタイムデータ分析、ビジネスインテリジェンス、エンタープライズレベルのアプリケーションにおいて幅広い可能性を秘めています。