Apache Doris
offiziellMCP Server für Apache Doris, ein Echtzeit-Datenhaus auf MPP-Basis.
Was kann man mit Apache Doris MCP machen?
- Query and diagnose Doris — Ask for query execution, plans, profile analysis, or slow-query diagnosis via the
doris_querydomain. - Explore catalog and schema — Discover databases, tables, and table context with size details through
doris_catalogchild tools. - Monitor cluster health — Inspect nodes, tasks, metrics, memory, cache, and compaction status using the
doris_clusterdomain. - Manage data pipelines — Check ingestion status, materialized views, freshness, and dependencies via
doris_pipelinetools. - Search and analyze data — Run text, vector, or hybrid searches and inspect indexes through the
doris_searchdomain. - Govern and audit — Review data quality, storage, lineage, audit logs, and UDFs with
doris_governancecapabilities.
Dokumentation
Apache Doris MCP Server
Der Apache Doris MCP Server stellt MCP-Hosts und KI-Agenten über MCP 2026-07-28 schreibgeschützte Apache-Doris-Funktionen bereit. Version 1.0 ersetzt eine große flache Tool-Oberfläche durch acht stabile Domänen und fünfundfünfzig progressiv offengelegte Unterfunktionen, wobei Laufzeitverfügbarkeit, Autorisierung, Eingabeschemata, Ausgabeschemata und Fehlerverhalten explizit bleiben.
Versionsstatus
Die Paketversion ist 1.0.0. Die MCP-2026-07-28-Protokollkompatibilität auf master ist Allgemein verfügbar (GA) auf Streamable HTTP und stdio. Diese GA-Aussage beschränkt sich auf die Protokollkompatibilität; der Python-Paketklassifikator bleibt Beta, und die dokumentierten Bereitstellungsgrenzen gelten weiterhin.
Lesen Sie vor einem Upgrade die 1.0-Versionshinweise, die 1.0-Migrationsanleitung und das generierte 8-Domänen/55-Unterfunktionen-Register. Der detaillierte Versionsdatensatz ist Issue #189.
Architektur auf einen Blick
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
Der Standardmodus hierarchical legt diese Domänen offen:
| Domäne | Unterfunktionen | Verantwortung |
|---|---|---|
doris_catalog | 5 | Kataloge, Datenbanken, Tabellen, Tabellenkontext, Größe |
doris_query | 7 | Abfrage, Explain, Profil, Diagnose, langsame Abfragen, explizites ADBC |
doris_cluster | 11 | Knoten, Aufgaben, Metriken, Speicher, Cache, Kompaktierung, Workloads |
doris_pipeline | 5 | Erfassung, materialisierte Sichten, Aktualität, Abhängigkeiten |
doris_search | 4 | Text-/Vektor-/Hybridsuche, Analyzer, Indizes, Diagnose |
doris_governance | 8 | Qualität, Speicher, Lineage, Audit, UDFs, Auth-Zuordnung |
doris_lakehouse | 3 | externe Kataloge, Lakehouse-Tabellen, Variant |
doris_semantic | 12 | optionales Apache-Ossie-Grounding und MetricFlow-Nutzung |
Rufen Sie eine Domäne mit {} auf, um ihre autorisierten Unterfunktionen und exakten Schemata zu ermitteln. Rufen Sie dieselbe Domäne erneut mit child_tool, arguments und dem zurückgegebenen manifest_version auf. Hosts, die keine progressive Offenlegung verwenden können, können MCP_TOOL_EXPOSURE_MODE=flat vor dem Start setzen; dies legt dieselben 55 Unterfunktionen unter kollisionsfreien formalen Namen offen und stellt keine Aliase vor 1.0 wieder her.
Siehe Architektur, Anfragelebenszyklus und Tool-Domänen.
Schnellstart
Voraussetzungen:
- Python 3.12 oder neuer;
- Apache Doris 2.0.0 oder neuer;
- Netzwerkzugriff auf den Doris-FE-MySQL-Endpunkt, normalerweise Port
9030.
Installieren Sie die festgelegte Version:
pip install doris-mcp-server==1.0.0
doris-mcp-server startet den Server. doris-mcp-client ist ein separater Client; die beiden Befehle sind nicht austauschbar.
Konfigurieren Sie eine Doris-Route:
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
Starten Sie Streamable HTTP auf Loopback:
doris-mcp-server \
--transport http \
--host 127.0.0.1 \
--port 3000
Endpunkte:
- MCP:
POST http://127.0.0.1:3000/mcp - Legacy-MCP (Opt-in):
POST http://127.0.0.1:3000/mcp/legacy - Liveness:
GET http://127.0.0.1:3000/live - Doris-gestützte Readiness:
GET http://127.0.0.1:3000/ready
Hosts, die auf Streamable HTTP aus der Handshake-Ära beschränkt sind, einschließlich Dify 1.16.1 mit MCP 2025-06-18, müssen ENABLE_LEGACY_HTTP_ADAPTER=true setzen und sich mit /mcp/legacy verbinden. Der Adapter ändert nur die Protokollgrenze; er bewahrt dieselben 1.0-Tools, Autorisierung, Funktionsgates und die schreibgeschützte Ausführung.
Oder führen Sie stdio für einen lokalen Host aus:
doris-mcp-server --transport stdio
Siehe den vollständigen Schnellstart und die Host-Integrationsanleitung.
Sicherheitsgrenze
- Der integrierte 1.0-Katalog ist schreibgeschützt;
doris_administ reserviert und nicht registriert. - Statische Token, JWT, externes OAuth/OIDC und Doris-gestütztes OAuth werden unter gegenseitig validierten Konfigurationsgrenzen unterstützt.
- Domänenermittlung und Unterfunktionsausführung verwenden exakte Autorisierungskennungen.
- Doris-RBAC bleibt die letzte Instanz für sichtbare Objekte und Daten.
- SQL-Form, Kennungen, Parameter, Timeout, Zeilen, Bytes und Ergebnisschemata werden begrenzt, bevor Daten den Server verlassen.
- Geheimnisse und Backend-Fehler werden aus öffentlichen Ergebnissen und Protokollen entfernt.
- Nicht-Loopback-HTTP erfordert Authentifizierung, sofern nicht eine explizite gefährliche Entwicklungs-Überschreibung aktiviert ist.
Lesen Sie das Sicherheits- und Berechtigungsmodell und die Anleitung zum feingranularen Doris-Zugriff.
Zuverlässigkeitsgrenze
Der Server verwendet deterministische Manifeste und Fehler, signierte ablaufende Cursor, routenbewusste Funktions-Snapshots, begrenzten Stale-Fallback, anfragenspezifisches Verbindungs-Routing, Multi-FE-Failover, Liveness-/Readiness-Trennung, Ausgabe-Schema-Validierung und bereinigte Trace-Weitergabe. Nicht unterstützte oder falsch konfigurierte Funktionen bleiben mit callable=false auffindbar und schlagen bei Aufruf geschlossen fehl.
Zu den aktuellen Grenzen gehören prozesslokales Doris-gestütztes OAuth, ausschließlich explizites ADBC, das standardmäßig deaktiviert ist und auf tokengebundenen Routen geschlossen fehlschlägt, optionales schreibgeschütztes Ossie-Grounding, ein optionaler MetricFlow-Compiler-Sidecar, dessen SQL über die begrenzte MCP-Abfrage-Laufzeit ausgeführt werden muss, sowie Best-Effort-native-Lineage-Bereitstellung. Siehe Zuverlässigkeit und Grenzen.
Dokumentation
Das Root-README ist bewusst ein Einstiegspunkt. Das zweisprachige Dokumentationssystem ist indiziert unter:
Primäre Anleitungen:
- Architektur
- Anfrage- und Datenfluss
- Tool-Domänen
- Funktionsverfügbarkeit
- Doris-Versions-Funktionsmatrix
- MetricFlow-Integration
- MCP-2026-07-28-Vertrag
- Sicherheitsmodell
- Bereitstellung
- Zuverlässigkeit und Grenzen
- Fehlerbehebung
- Konfigurationsreferenz
- Host-Integrationen
- Benutzerdefinierte Tool-Anbieter
- Mitwirken
Entwicklung
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest
Generierte Artefakte müssen synchronisiert bleiben:
uv run python generate_tool_catalog.py --check
uv lock --check
Siehe Mitwirken und Verifizierung.
Lizenz
Apache-Lizenz 2.0. Siehe LICENSE.txt und NOTICE.