Overview
What is Doris MCP Server?
Doris MCP Server is a Python and FastAPI backend that implements the Model Context Protocol (MCP) to connect Apache Doris databases with LLMs. It enables natural-language-to-SQL (NL2SQL) conversion, query execution, metadata management, and enterprise-grade security features such as token-based authentication and multi-tenant access control.
How to use Doris MCP Server?
Install via pip install doris-mcp-server, then start in HTTP mode with database connection parameters (--db-host, --db-port, --db-user, --db-password) or in stdio mode for direct integration with MCP clients like Cursor. Configure environment variables as an alternative to command-line arguments. A web-based token management dashboard is available for enterprise administration.
Key features of Doris MCP Server
- MCP protocol with HTTP (streamable) and stdio transports
- Enterprise authentication: Token, JWT, OAuth, and role-based access
- Hot‑reload configuration management with zero‑downtime updates
- SQL security validation, injection protection, and data masking
- Session caching and connection pooling (60% overhead reduction)
- Multi-worker horizontal scaling with stateless architecture
Use cases of Doris MCP Server
- Convert natural language questions into SQL queries against Apache Doris
- Execute and explain SQL statements with performance profiling
- Manage metadata across multi-catalog environments (Hive, MySQL, etc.)
- Provide secure, multi-tenant data access with token-bound database configuration
- Monitor and analyze Doris cluster health and query performance
FAQ from Doris MCP Server
What are the system requirements?
Python 3.12+ and an Apache Doris database connection (host, port, user, password, database).
How do I connect to a Doris database?
Provide connection details via command-line arguments (--db-host, --db-port, --db-user, --db-password) or environment variables (DORIS_HOST, DORIS_PORT, DORIS_USER, DORIS_PASSWORD).
What transport modes are supported?
Two modes: http for a web service (default) and stdio for direct integration with MCP clients like Cursor.
Is authentication available?
Yes. v0.6.0 introduces enterprise authentication with Token, JWT, and OAuth support, including a web-based token management dashboard restricted to localhost.
Where is the database configuration stored?
Database credentials can be provided at startup (CLI or environment variables) or bound to tokens for multi-tenant setups. Token configurations are persisted in tokens.json.