Apache Doris
officielServeur MCP pour Apache Doris, un entrepôt de données en temps réel basé sur MPP.
Que pouvez-vous faire avec Apache Doris MCP ?
- Interroger et diagnostiquer Doris — Demandez l’exécution de requêtes, les plans, l’analyse de profils ou le diagnostic de requêtes lentes via le domaine
doris_query. - Explorer le catalogue et le schéma — Découvrez les bases de données, les tables et le contexte des tables avec les détails de taille grâce aux outils enfants
doris_catalog. - Surveiller la santé du cluster — Inspectez les nœuds, les tâches, les métriques, la mémoire, le cache et l’état de compaction à l’aide du domaine
doris_cluster. - Gérer les pipelines de données — Vérifiez l’état d’ingestion, les vues matérialisées, la fraîcheur et les dépendances via les outils
doris_pipeline. - Rechercher et analyser les données — Exécutez des recherches textuelles, vectorielles ou hybrides et inspectez les index via le domaine
doris_search. - Gouverner et auditer — Examinez la qualité des données, le stockage, la traçabilité, les journaux d’audit et les UDF avec les capacités
doris_governance.
Documentation
Serveur MCP Apache Doris
Le serveur MCP Apache Doris expose des capacités Apache Doris en lecture seule aux hôtes MCP et aux agents IA via MCP 2026-07-28. La version 1.0 remplace une vaste surface d'outils plate par huit domaines stables et cinquante-cinq capacités enfants révélées progressivement, tout en gardant explicites la disponibilité d'exécution, l'autorisation, les schémas d'entrée, les schémas de sortie et le comportement en cas d'échec.
État de la version
La version du paquet est 1.0.0. La compatibilité du protocole MCP 2026-07-28 sur master est généralement disponible (GA) sur Streamable HTTP et stdio. Cette déclaration GA est limitée à la compatibilité du protocole ; le classificateur du paquet Python reste Beta, et les limites de déploiement documentées s'appliquent toujours.
Avant de mettre à niveau, lisez les notes de version 1.0, le guide de migration 1.0, et le registre généré 8 domaines/55 enfants. L'enregistrement détaillé de la version est Issue #189.
Architecture en un coup d'œil
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
Le mode hierarchical par défaut expose ces domaines :
| Domaine | Enfants | Responsabilité |
|---|---|---|
doris_catalog | 5 | catalogues, bases de données, tables, contexte de table, taille |
doris_query | 7 | requête, explain, profil, diagnostic, requêtes lentes, ADBC explicite |
doris_cluster | 11 | nœuds, tâches, métriques, mémoire, cache, compactage, charges de travail |
doris_pipeline | 5 | ingestion, vues matérialisées, fraîcheur, dépendances |
doris_search | 4 | recherche texte/vectorielle/hybride, analyseurs, index, diagnostic |
doris_governance | 8 | qualité, stockage, lignage, audit, UDF, mappage d'authentification |
doris_lakehouse | 3 | catalogues externes, tables lakehouse, Variant |
doris_semantic | 12 | ancrage Apache Ossie optionnel et consommation MetricFlow |
Appelez un domaine avec {} pour découvrir ses enfants autorisés et ses schémas exacts. Appelez le même domaine à nouveau avec child_tool, arguments, et le manifest_version retourné. Les hôtes qui ne peuvent pas utiliser la divulgation progressive peuvent définir MCP_TOOL_EXPOSURE_MODE=flat avant le démarrage ; cela expose les mêmes 55 enfants sous des noms formels sans collision et ne restaure pas les alias antérieurs à la version 1.0.
Voir Architecture, Cycle de vie des requêtes, et Domaines d'outils.
Démarrage rapide
Prérequis :
- Python 3.12 ou ultérieur ;
- Apache Doris 2.0.0 ou ultérieur ;
- accès réseau au point de terminaison MySQL Doris FE, normalement le port
9030.
Installez la version épinglée :
pip install doris-mcp-server==1.0.0
doris-mcp-server démarre le serveur. doris-mcp-client est un client séparé ; les deux commandes ne sont pas interchangeables.
Configurez une route 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
Démarrez Streamable HTTP sur loopback :
doris-mcp-server \
--transport http \
--host 127.0.0.1 \
--port 3000
Points de terminaison :
- MCP :
POST http://127.0.0.1:3000/mcp - MCP hérité (opt-in) :
POST http://127.0.0.1:3000/mcp/legacy - vivacité :
GET http://127.0.0.1:3000/live - disponibilité soutenue par Doris :
GET http://127.0.0.1:3000/ready
Les hôtes limités au Streamable HTTP de l'ère handshake, y compris Dify 1.16.1 avec MCP 2025-06-18, doivent définir ENABLE_LEGACY_HTTP_ADAPTER=true et se connecter à /mcp/legacy. L'adaptateur ne modifie que la frontière du protocole ; il préserve les mêmes outils 1.0, l'autorisation, les portes de capacités et l'exécution en lecture seule.
Ou exécutez stdio pour un hôte local :
doris-mcp-server --transport stdio
Voir le Démarrage rapide complet et le guide d'intégration des hôtes.
Frontière de sécurité
- Le catalogue 1.0 intégré est en lecture seule ;
doris_adminest réservé et non enregistré. - Les jetons statiques, JWT, OAuth/OIDC externe et OAuth soutenu par Doris sont pris en charge dans des limites de configuration mutuellement validées.
- La découverte de domaine et l'exécution des enfants utilisent des identifiants d'autorisation exacts.
- Le RBAC Doris reste l'autorité finale pour les objets et données visibles.
- La forme SQL, les identifiants, les paramètres, le délai d'expiration, les lignes, les octets et les schémas de résultats sont limités avant que les données ne quittent le serveur.
- Les secrets et erreurs backend sont masqués des résultats publics et des journaux.
- Le HTTP non-loopback exige une authentification, sauf si une dérogation de développement dangereuse explicite est activée.
Lisez le modèle de sécurité et d'autorisation et le guide d'accès fin Doris.
Frontière de fiabilité
Le serveur utilise des manifestes et erreurs déterministes, des curseurs signés à expiration, des instantanés de capacités sensibles à la route, un repli périmé borné, un routage de connexion spécifique à la requête, un basculement multi-FE, une séparation vivacité/disponibilité, une validation de schéma de sortie et une propagation de trace assainie. Les capacités non prises en charge ou mal configurées restent découvrables avec callable=false et échouent en mode fermé lorsqu'elles sont appelées.
Les limites actuelles incluent l'OAuth soutenu par Doris local au processus, l'ADBC exclusivement explicite désactivé par défaut et en échec fermé sur les routes liées aux jetons, l'ancrage Ossie en lecture seule optionnel, un sidecar compilateur MetricFlow optionnel dont le SQL doit s'exécuter via le runtime de requête MCP borné, et la livraison de lignage natif au mieux. Voir Fiabilité et limites.
Documentation
Le README racine est intentionnellement un point d'entrée. Le système de documentation bilingue est indexé à :
Guides principaux :
- Architecture
- Flux de requêtes et de données
- Domaines d'outils
- Disponibilité des capacités
- Matrice de capacités des versions Doris
- Intégration MetricFlow
- Contrat MCP 2026-07-28
- Modèle de sécurité
- Déploiement
- Fiabilité et limites
- Dépannage
- Référence de configuration
- Intégrations d'hôtes
- Fournisseurs d'outils personnalisés
- Contribution
Développement
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest
Les artefacts générés doivent rester synchronisés :
uv run python generate_tool_catalog.py --check
uv lock --check
Voir Contribution et vérification.
Licence
Licence Apache 2.0. Voir LICENSE.txt et NOTICE.