Apache Doris

offiziell

MCP 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_query domain.
  • Explore catalog and schema — Discover databases, tables, and table context with size details through doris_catalog child tools.
  • Monitor cluster health — Inspect nodes, tasks, metrics, memory, cache, and compaction status using the doris_cluster domain.
  • Manage data pipelines — Check ingestion status, materialized views, freshness, and dependencies via doris_pipeline tools.
  • Search and analyze data — Run text, vector, or hybrid searches and inspect indexes through the doris_search domain.
  • Govern and audit — Review data quality, storage, lineage, audit logs, and UDFs with doris_governance capabilities.

Dokumentation

Apache Doris MCP Server

English | 简体中文

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äneUnterfunktionenVerantwortung
doris_catalog5Kataloge, Datenbanken, Tabellen, Tabellenkontext, Größe
doris_query7Abfrage, Explain, Profil, Diagnose, langsame Abfragen, explizites ADBC
doris_cluster11Knoten, Aufgaben, Metriken, Speicher, Cache, Kompaktierung, Workloads
doris_pipeline5Erfassung, materialisierte Sichten, Aktualität, Abhängigkeiten
doris_search4Text-/Vektor-/Hybridsuche, Analyzer, Indizes, Diagnose
doris_governance8Qualität, Speicher, Lineage, Audit, UDFs, Auth-Zuordnung
doris_lakehouse3externe Kataloge, Lakehouse-Tabellen, Variant
doris_semantic12optionales 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_admin ist 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:

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.