Apache Doris
resmiServer MCP untuk Apache Doris, gudang data real-time berbasis MPP.
Apa yang bisa Anda lakukan dengan Apache Doris MCP?
- Kueri dan diagnosis Doris — Minta eksekusi kueri, rencana, analisis profil, atau diagnosis kueri lambat melalui domain
doris_query. - Jelajahi katalog dan skema — Temukan basis data, tabel, dan konteks tabel dengan detail ukuran melalui alat anak
doris_catalog. - Pantau kesehatan klaster — Periksa node, tugas, metrik, memori, cache, dan status kompaksi menggunakan domain
doris_cluster. - Kelola jalur data — Periksa status ingest, tampilan terwujud, kesegaran, dan dependensi melalui alat
doris_pipeline. - Cari dan analisis data — Jalankan pencarian teks, vektor, atau hibrida dan periksa indeks melalui domain
doris_search. - Tata kelola dan audit — Tinjau kualitas data, penyimpanan, lineage, log audit, dan UDF dengan kemampuan
doris_governance.
Dokumentasi
Apache Doris MCP Server
Apache Doris MCP Server mengekspos kemampuan Apache Doris hanya-baca ke Host MCP dan agen AI melalui MCP 2026-07-28. Versi 1.0 menggantikan permukaan alat datar yang besar dengan delapan domain stabil dan lima puluh lima kemampuan anak yang diungkapkan secara progresif, sambil menjaga ketersediaan runtime, otorisasi, skema masukan, skema keluaran, dan perilaku kegagalan tetap eksplisit.
Status rilis
Versi paket adalah 1.0.0. Kompatibilitas protokol MCP 2026-07-28 pada master adalah Generally Available (GA) pada Streamable HTTP dan stdio. Pernyataan GA ini terbatas pada kompatibilitas protokol; pengklasifikasi paket Python tetap Beta, dan batas deployment yang didokumentasikan tetap berlaku.
Sebelum melakukan upgrade, baca catatan rilis 1.0, panduan migrasi 1.0, dan registri 8-domain/55-anak yang dihasilkan. Catatan rilis terperinci ada di Issue #189.
Arsitektur sekilas
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
Mode hierarchical default mengekspos domain-domain berikut:
| Domain | Anak | Tanggung jawab |
|---|---|---|
doris_catalog | 5 | katalog, basis data, tabel, konteks tabel, ukuran |
doris_query | 7 | kueri, explain, profil, diagnosis, kueri lambat, ADBC eksplisit |
doris_cluster | 11 | node, tugas, metrik, memori, cache, kompaksi, workload |
doris_pipeline | 5 | ingestion, tampilan terwujud, kesegaran, dependensi |
doris_search | 4 | pencarian teks/vektor/hibrida, penganalisis, indeks, diagnosis |
doris_governance | 8 | kualitas, penyimpanan, lineage, audit, UDF, pemetaan auth |
doris_lakehouse | 3 | katalog eksternal, tabel lakehouse, Variant |
doris_semantic | 12 | grounding Apache Ossie opsional dan konsumsi MetricFlow |
Panggil sebuah domain dengan {} untuk menemukan anak-anak yang diotorisasi dan skema yang tepat. Panggil domain yang sama lagi dengan child_tool, arguments, dan manifest_version yang dikembalikan. Host yang tidak dapat menggunakan pengungkapan progresif dapat mengatur MCP_TOOL_EXPOSURE_MODE=flat sebelum startup; ini mengekspos 55 anak yang sama di bawah nama formal bebas bentrok dan tidak memulihkan alias pra-1.0.
Lihat Arsitektur, Siklus hidup permintaan, dan Domain alat.
Mulai cepat
Persyaratan:
- Python 3.12 atau lebih baru;
- Apache Doris 2.0.0 atau lebih baru;
- akses jaringan ke endpoint MySQL Doris FE, biasanya port
9030.
Instal rilis yang disematkan:
pip install doris-mcp-server==1.0.0
doris-mcp-server memulai Server. doris-mcp-client adalah klien terpisah; kedua perintah tidak dapat dipertukarkan.
Konfigurasikan rute 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
Mulai Streamable HTTP pada loopback:
doris-mcp-server \
--transport http \
--host 127.0.0.1 \
--port 3000
Endpoint:
- MCP:
POST http://127.0.0.1:3000/mcp - MCP lama (opt-in):
POST http://127.0.0.1:3000/mcp/legacy - liveness:
GET http://127.0.0.1:3000/live - readiness berbasis Doris:
GET http://127.0.0.1:3000/ready
Host yang terbatas pada Streamable HTTP era handshake, termasuk Dify 1.16.1 dengan MCP 2025-06-18, harus mengatur ENABLE_LEGACY_HTTP_ADAPTER=true dan terhubung ke /mcp/legacy. Adaptor hanya mengubah batas protokol; adaptor mempertahankan alat 1.0 yang sama, otorisasi, gerbang kemampuan, dan eksekusi hanya-baca.
Atau jalankan stdio untuk Host lokal:
doris-mcp-server --transport stdio
Lihat Quick start lengkap dan panduan integrasi Host.
Batas keamanan
- Katalog 1.0 bawaan bersifat hanya-baca;
doris_admindicadangkan dan tidak terdaftar. - Token statis, JWT, OAuth/OIDC eksternal, dan OAuth berbasis Doris didukung di bawah batas konfigurasi yang divalidasi bersama.
- Penemuan domain dan eksekusi anak menggunakan pengidentifikasi otorisasi yang tepat.
- Doris RBAC tetap menjadi otoritas akhir untuk objek dan data yang terlihat.
- Bentuk SQL, pengidentifikasi, parameter, timeout, baris, byte, dan skema hasil dibatasi sebelum data meninggalkan Server.
- Rahasia dan kesalahan backend disunting dari hasil publik dan log.
- HTTP non-loopback memerlukan autentikasi kecuali override pengembangan berbahaya yang eksplisit diaktifkan.
Baca Model keamanan dan izin dan panduan akses terperinci Doris.
Batas keandalan
Server menggunakan manifest dan kesalahan deterministik, kursor kedaluwarsa yang ditandatangani, snapshot kemampuan yang sadar rute, fallback basi terbatas, perutean koneksi spesifik permintaan, failover multi-FE, pemisahan liveness/readiness, validasi Skema keluaran, dan propagasi jejak yang disanitasi. Kemampuan yang tidak didukung atau salah konfigurasi tetap dapat ditemukan dengan callable=false dan gagal tertutup saat dipanggil.
Batas saat ini mencakup OAuth berbasis Doris lokal-proses, ADBC hanya-eksplisit yang dinonaktifkan secara default dan gagal tertutup pada rute terikat token, grounding Ossie hanya-baca opsional, sidecar kompiler MetricFlow opsional yang SQL-nya harus dieksekusi melalui runtime kueri MCP yang dibatasi, dan pengiriman lineage native sebaik mungkin. Lihat Keandalan dan batas.
Dokumentasi
README root sengaja menjadi titik masuk. Sistem dokumentasi bilingual diindeks di:
Panduan utama:
- Arsitektur
- Alur permintaan dan data
- Domain alat
- Ketersediaan kemampuan
- Matriks kemampuan versi Doris
- Integrasi MetricFlow
- Kontrak MCP 2026-07-28
- Model keamanan
- Deployment
- Keandalan dan batas
- Pemecahan masalah
- Referensi konfigurasi
- Integrasi Host
- Penyedia alat kustom
- Berkontribusi
Pengembangan
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest
Artefak yang dihasilkan harus tetap tersinkronisasi:
uv run python generate_tool_catalog.py --check
uv lock --check
Lihat Berkontribusi dan verifikasi.
Lisensi
Apache License 2.0. Lihat LICENSE.txt dan NOTICE.