Doris Mcp Server について
Doris-MCP-Liteは、LLMアプリケーションをApache Dorisやその他のMySQL互換データベースに接続します。読み取り専用クエリに加え、スキーマリソースと分析用プロンプトを提供します。
主な機能
- 01読み取り専用SQLクエリの実行
- 02スキーマとテーブル構造の確認
- 03利用状況とリソース情報の取得
- 04組み込み分析プロンプトの利用
- 05構造化リソースとしてのスキーマ提供
- 06コネクションプールによる接続管理
活用シーン
- 01Dorisデータベースのスキーマ探索
- 02読み取り専用の分析クエリ実行
- 03LLMクエリにテーブル情報を提供
MCP 対応
MCPサーバーは、データベースクエリ用ツール、分析プロンプト、スキーマリソースをMCPクライアントに公開します。Apache Dorisとその他のMySQL互換データベースに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📖 Doris-MCP-Lite
Apache Doris またはその他の MySQL 互換データベーススキーマへの接続を目的とした軽量な MCP サーバーです。LLM アプリケーション向けにツールとプロンプトを提供します。
このサーバーを使うと、LLM と MCP クライアントは、標準化された安全な MCP インターフェースを通じて、データベーススキーマの調査、読み取り専用 SQL クエリの実行、事前に用意された分析用プロンプトの活用ができます。
警告
これは doris-mcp-lite の初期開発版です。一部の機能が正常に動作しない場合や、軽微なバグが存在する場合があります。ご質問がある場合は、issue を作成してください。 Apache Doris 公式の MCP サーバーは apache/doris-mcp-server で利用できます。
🚀 特長
🛠️ ツール
- Doris データベースに対して 読み取り専用 SQL クエリを実行します。
- 年次、月次、日次の使用状況データの取得など、データ分析操作を実行します。
- データベーススキーマ、テーブル構造、リソース使用状況などのメタデータを照会します。
- コネクションプーリング:パフォーマンスを最適化するため、プーリングによって接続を効率的に管理します。
- 非同期実行:応答性を高めるため、非同期クエリの実行をサポートします。
🧠 プロンプト
- LLM が分析に関する質問を行うのに役立つ、組み込みのプロンプトテンプレートを備えています。
- LLM と Doris データベースの連携を強化するマルチロールプロンプトをサポートします。
- ユーザー定義および汎用の SQL 分析プロンプトをサポートします。
🗂️ リソース
- Doris のデータベーススキーマを構造化リソースとして公開します。
- LLM がテーブルとフィールドの定義にコンテキストに応じてアクセスできるようにし、クエリの理解を向上させます。
📦 インストール方法
Python 環境の管理には uv の使用を推奨します。
方法 1:シェルスクリプトでインストール
個人利用およびサーバーへのデプロイに推奨
これが最も簡単なインストール方法です。プロジェクト内の setup.sh ファイルをコピーして、ローカルで実行してください。詳細については、Doris MCP インストールガイドを参照してください。
setup.shをローカルにコピーします。- スクリプトを実行可能にします。
chmod +x setup.sh
- スクリプトを実行します。
./setup.sh
スクリプトがサーバーを自動的にインストールし、データベースの設定を案内します。
方法 2:pip でインストール
本番環境での利用に推奨
pip install doris-mcp-lite
✅ インストール後、コマンドラインツールを起動して MCP サーバーを実行できるようになります。
方法 3:ソースをクローンして手動でインストール
サーバーを変更する場合に推奨
- リポジトリをフォークしてクローンします。
git clone https://github.com/YOUR_USERNAME/doris-mcp-lite.git
cd doris-mcp-lite
- uv を使ってローカルの Python 環境をセットアップします。
uv venv # Create a virtual environment
uv sync # Install dependencies
# Activate the virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install
- このサーバーを LLM クライアントに追加するか、サーバーを実行します。
uv run server doris://user:pass@localhost:9030/mydb
方法 4:uv を直接使用してインストール
ローカルでの編集可能なインストール向け
uv pip install 'git+https://github.com/NomotoK/doris-mcp-lite.git'
uv sync
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
uv run server doris://user:pass@localhost:9030/mydb
⚙️ インストール後の設定
ステップ 1:.env ファイルを設定(任意)
.env ファイルを使うと、データベースの接続情報を MCP サーバーに永続的に保存できます。これにより、MCP サーバーを CLI で実行するたびに、データベース接続を入力する必要がなくなります。もちろん、この手順は必須ではありません。MCP 互換の LLM クライアントを使用している場合は、後から MCP クライアントの設定ファイルでデータベース接続を設定することもできます(ステップ 2 を参照してください)。次の手順に従って設定を完了してください。
シェルスクリプトを使った設定
これが最も推奨される簡単な設定方法です。Doris MCP インストールガイドを参照してください。
.envで手動設定する
インストール後、プロジェクトディレクトリ内のdoris_mcp_lite/config/ディレクトリに移動します。pipを使用している場合、パッケージはPythonのsite-packagesにインストールされます。
-
Mac/Linux:
/Users/YOUR_USERNAME/.local/lib/python3.x/site-packages/doris_mcp_lite/config/ -
Windows:
C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3x\Lib\site-packages\doris_mcp_lite\config\
次のコマンドを実行すると、pipのインストール先を確認できます。
pip show doris-mcp-lite
.env.exampleファイルがあります。
.env.exampleを.envにコピーします。
cp .env.example .env
.envを編集して、Dorisデータベースの接続情報を設定します。
DB_HOST=your-doris-host
DB_PORT=9030
DB_USER=your-username
DB_PASSWORD=your-password
DB_NAME=your-database
MCP_SERVER_NAME=DorisAnalytics
DEBUG=false
メモ
.envが存在しない場合、サーバーは.env.exampleからの自動作成を試みますが、正しい認証情報を手動で入力する必要があります。
ステップ2:MCP クライアントを設定する
このサーバーをMCP互換クライアント(例:Claude Desktop、CherryStudio、Cline)に接続するには、MCPクライアントの設定JSONを変更する必要があります。
CherryStudioを使用する場合の例:
- name: doris-mcp-lite
- type: stdio
- command: absolute/path/to/your/uv
- arguments:
--directory
/Users/hailin/dev/Doris-MCP-Lite
run
server
doris://user:pass@localhost:9030/mydb
pipを使用してインストールする場合の例(mcp_setting.json):
{
"mcpServers": {
"DorisAnalytics": {
"command": "server",
"args": ["doris://user:pass@localhost:9030/mydb"],
"transportType": "stdio"
}
}
}
ソースコード/uvを使用してインストールする場合、またはsetup.shを使用する場合:
{
"mcpServers": {
"DorisAnalytics": {
"disabled": false,
"timeout": 60,
"command": "absolute/path/to/uv",
"args": [
"--directory",
"absolute/path/to/mcp/server",
"run",
"server"
"doris://user:pass@localhost:9030/mydb"
],
"transportType": "stdio"
}
}
}
設定ファイルで絶対パスを指定せずにuvとserverを使用することもできますが、uvがPATHに含まれていることを確認してください。
接続URL
doris://user:pass@localhost:9030/mydbを実際のデータベース接続文字列に置き換えてください。
クライアントの設定方法について詳しくは、以下を参照してください。
サーバー開発者向け - Model Context Protocol - Claude
Config and Using MCP | CherryStudio
✅ LLMクライアントが、MCPサーバーを通じてDoris Analyticsのツール、プロンプト、リソースを見つけられるようになります。
🖥️ 使用方法
MCP サーバーのテスト(任意)
開始前に、プロジェクトのsrc/doris-mcp-liteディレクトリにあるtest.pyを実行すると、LLM(ClaudeやGPTなどのモデル)を使わずに、MCPサーバーの機能インターフェースを直接呼び出して、データベース接続、リソース、ツールなどをテストできます。コマンドラインから引数を渡して、テストする機能を指定できます。
サーバーが公開するすべてのリソースをテストします。
python test.py --server server.py --test resources
または、提供されているすべてのツールをテストします。
python test.py --server server.py --test tools
または、データベース接続をテストします。
python test.py --server "doris://user:pass@localhost:9030/mydb" --test dbconfig
または、リソース、ツール、プロンプトのすべての機能を一度にテストします。
python test.py --server server.py --test all
データベース接続のテストとサーバーの実行
次のコマンドを実行して、MCPサーバーを起動します。
server doris://user:pass@localhost:9030/mydb
または、手動で実行します。
python -m doris_mcp_lite.server doris://user:pass@localhost:9030/mydb
サーバーはすぐにデータベースへの接続を試みます。接続に成功すると、起動後に次のように表示されます。
🚀 Doris MCP Server is starting...
[DorisConnector] Connected to 127.0.0.1:9030
✅ Database connection successful.
[DorisConnector] Connection closed.
これで、MCPクライアント内のツールとプロンプトを使用できます。
📚 プロジェクト構成の概要
src/
└── doris_mcp_lite/
├── config/ # Configuration files
│ ├── __init__.py
│ ├── config.py # Loads environment variables
│ ├── .env.example # Environment variables template
│ └── .env # Stores your database credentials
│
├── db/ # Database interaction logic
│ ├── __init__.py
│ ├── db.py # Doris database connection class
│ └── tools.py # SQL query execution tools
│
├── res/ # Resource definitions (e.g., schemas)
│ ├── __init__.py
│ └── resources.py
│
├── prompts/ # Prebuilt prompt templates
│ ├── __init__.py
│ ├── general_prompts.py
│ └── customize_prompts.py
│
├── __init__.py # Main entry point to start the MCP server
├── server.py # Server launcher
├── mcp_app.py # MCP server instance
└── test.py # Unit test script
README.md # Documentation
INSTALL.md # Installation guide
LISENCE # Lisence
setup.sh # Auto setup wizard
pyproject.toml # Project build configuration
.gitignore # Git ignore settings
📜 ライセンス
このプロジェクトはMIT Licenseのもとでライセンスされています。
🌟謝辞
- MCP Python SDKを使用して構築されています。
- 基盤:MCP:LLMが外部データソースと連携するための標準であるModel Context Protocol。
- Apache Doris:オープンソースの高性能リアルタイム分析データベース。
- Apache Doris Official MCP Server:Apache Doris公式のMCPサーバー。
- PyMySQL:データベース連携用のPython MySQLクライアントライブラリ。
- MCP公式のサンプルとベストプラクティスに着想を得ています。
🤝 貢献
貢献を歓迎します。お気軽にイシューを作成するか、プルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。