Apache Doris MCP (Model Context Protocol) Server est un service backend basé sur Python et FastAPI, conçu pour s'intégrer de manière transparente avec la base de données Apache Doris via le protocole de contexte de modèle (MCP). Il fournit une interface standardisée aux agents et clients d'IA, prenant en charge des fonctionnalités telles que la conversion du langage naturel en SQL (NL2SQL), l'exécution de requêtes SQL, la gestion des métadonnées et l'analyse de données. Ce projet est une extension importante de la communauté Apache Doris, particulièrement adaptée aux scénarios commerciaux nécessitant une interaction de données efficace et une analyse intelligente.
Depuis la publication de la version 0.3.0 en 2025, le projet a subi une mise à jour architecturale majeure, passant d'une communication basée sur SSE (Server-Sent Events) à un protocole HTTP Streamable unifié, et a ajouté un cadre de sécurité de niveau entreprise et des fonctionnalités d'optimisation des performances. L'objectif principal du projet est de relier les systèmes d'IA et la base de données Apache Doris via le protocole MCP, afin de réaliser une exploration et une analyse de données intelligentes.
Apache Doris MCP Server offre les principales fonctionnalités suivantes :
Conversion du langage naturel en SQL (NL2SQL)
Exécution de requêtes SQL
exec_query
, avec la possibilité de personnaliser la sélection de la base de données, la limite du nombre de lignes et les paramètres de délai d'attente.Gestion des métadonnées
get_all_databases
, get_database_tables
).get_table_schema
, get_table_comment
, get_column_comments
, get_table_indexes
).get_catalog_list
).Requête des journaux d'audit
get_recent_audit_logs
, avec prise en charge de la personnalisation de la plage de temps et de la limite d'enregistrements.Cadre de sécurité de niveau entreprise
Optimisation des performances
performance_stats
).Modes de communication multiples
/mcp
unifié (src/streamable_server.py
)./sse
et /mcp/messages
(src/sse_server.py
).src/stdio_server.py
).Fonctionnalités expérimentales
column_analysis
), fournissant des informations sur les données.La conception de l'architecture du projet est modulaire et efficace, comprenant principalement les composants suivants :
/mcp
unifié, simplifiant l'intégration.doris_mcp_server/utils/db.py
: Fournit des fonctions de connexion à la base de données (get_db_connection
) et d'exécution de requêtes (execute_query
, execute_query_df
).doris_mcp_server/utils/schema_extractor.py
: La classe MetadataExtractor
est responsable de l'extraction des métadonnées, y compris les mécanismes de cache.doris_mcp_server/utils/sql_executor_tools.py
: La fonction execute_sql_query
encapsule la logique de requête, y compris les contrôles de sécurité et la sérialisation des résultats.DB_HOST
, DB_PORT
, DB_USER
, DB_PASSWORD
).Évolution de l'architecture : La version 0.3.0 a supprimé environ 300 lignes de code SSE hérité, migré vers HTTP Streamable, unifié la nomenclature des outils (suppression du préfixe
mcp_doris_
), et amélioré le niveau de modularité.
uv
ou pip
)Cloner le dépôt :
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
Installer les dépendances :
Utiliser uv
(recommandé) ou pip
pour l'installation :
uv sync
Ou
pip install -r requirements.txt
Configurer les variables d'environnement :
Créer un fichier .env
ou définir directement les variables d'environnement :
export DORIS_HOST=<doris-host>
export DORIS_PORT=<port>
export DORIS_USER=<doris-user>
export DORIS_PASSWORD=<doris-pwd>
export SERVER_PORT=3000
Démarrer le serveur :
uv run --with mcp-doris --python 3.13 mcp-doris
Ou
python -m mcp_doris.mcp_server
Vérifier le démarrage :
Une fois le démarrage réussi, vous pouvez interagir via un client MCP (tel que Cursor) ou un navigateur MCP intégré (http://localhost:5173
).
Exécuter le script de test pour vérifier la connexion à la base de données :
python src/doris-mcp-server/test.py
Sortie attendue :
🚀 Doris MCP Server is starting...
[DorisConnector] Connected to 127.0.0.1:9030
✅ Database connection successful.
[DorisConnector] Connection closed.
Analyse de données en temps réel
Exploration des métadonnées
Business Intelligence pilotée par l'IA
Gestion de la conformité et de la sécurité
Environnement multi-catalogues
column_analysis
) sont expérimentales et peuvent contenir des bogues. Apache Doris MCP Server est un outil puissant et flexible qui relie la base de données Apache Doris aux besoins d'analyse pilotés par l'IA. Ses fonctionnalités telles que NL2SQL, la gestion des métadonnées, la sécurité et l'optimisation des performances lui confèrent un large potentiel dans l'analyse de données en temps réel, la business intelligence et les applications d'entreprise.