Apache Doris
MCP ServerFree** - MCP Server For [Apache Doris](https://doris.apache.org/), an MPP-based real-time data warehouse.
Capabilities11 decomposed
mcp protocol-compliant sql query execution with connection pooling
Medium confidenceExecutes SQL queries against Apache Doris through a standardized MCP protocol interface, leveraging a connection pooling layer (DorisConnectionManager) that maintains persistent database connections with health monitoring and token-bound configuration. Queries flow through a QueryExecutor component that handles result serialization and error propagation back to MCP clients via stdio or HTTP transports.
Implements a layered query execution pipeline with DorisConnectionManager handling connection lifecycle, health monitoring, and token-bound configuration at the database layer, while QueryExecutor abstracts SQL execution and result serialization — this separation enables connection reuse across multiple MCP tool invocations without per-query overhead
Differs from direct JDBC/ODBC clients by providing MCP protocol standardization, enabling seamless integration with AI assistants and LLM frameworks without custom client code; connection pooling and health monitoring reduce latency vs. creating new connections per query
database schema and metadata extraction with caching
Medium confidenceExtracts and caches database schema information (tables, columns, data types, constraints) through a SchemaExtractor component that queries Doris system catalogs and materializes results for fast retrieval by AI agents. Metadata is exposed as MCP resources, enabling LLMs to understand data structure without executing discovery queries repeatedly.
Implements a two-tier metadata system: SchemaExtractor queries Doris catalogs and caches results in DorisResourcesManager, which exposes schema as MCP resources that can be injected into LLM prompts without additional database calls — this enables schema-aware reasoning without per-request metadata overhead
Provides cached, MCP-native schema access vs. alternatives that require LLMs to execute DESCRIBE/SHOW commands repeatedly; integrates with MCP resource system for standardized schema sharing across tools
health check and connection pool monitoring
Medium confidenceMonitors connection pool health through DorisConnectionManager, which periodically tests connections and removes stale or failed connections. Health check results are exposed as MCP resources and can trigger alerts. Connection pool statistics (size, utilization, wait time) are tracked and available for monitoring dashboards.
Implements periodic health checks at the DorisConnectionManager level, where failed connections are removed and replaced transparently — health status is exposed as MCP resources, enabling monitoring without external tools
Provides MCP-native health monitoring vs. external health check tools; automatic connection recovery reduces manual intervention and improves availability
sql security validation and data masking
Medium confidenceValidates incoming SQL queries against a security policy engine (DorisSecurityManager) that checks for dangerous operations (DROP, TRUNCATE, unauthorized schema access) and applies data masking rules before query execution. Masking policies are defined per column and enforced at the result serialization layer, preventing sensitive data exposure to LLM agents.
Implements a two-stage security model: DorisSecurityManager validates query syntax and operations against a blocklist/allowlist before execution, while a separate masking layer applies column-level redaction rules during result serialization — this separation allows queries to execute safely while preventing sensitive data leakage to LLM agents
Provides MCP-native security enforcement vs. relying on database-level permissions alone; masking at the application layer enables fine-grained control over what LLM agents see without modifying database views or roles
token-based authentication with multi-provider support
Medium confidenceManages authentication to Doris through a TokenManager component that supports multiple credential types (username/password, API tokens, JWT) and binds tokens to connection pool entries. Tokens are refreshed automatically based on TTL, and authentication state is tracked per connection, enabling secure multi-agent access without credential sharing.
Implements token-bound connection pooling where each connection in DorisConnectionManager is associated with a specific token and TTL, enabling automatic refresh without invalidating other connections — TokenManager tracks token state separately from connections, allowing credential rotation without pool drain
Provides token-bound connection pooling vs. shared credentials, enabling per-agent audit trails and credential rotation without connection pool reset; automatic TTL-based refresh reduces manual credential management overhead
multi-transport protocol support (stdio, http, adbc)
Medium confidenceSupports three transport mechanisms for different deployment scenarios: stdio for direct process-to-process MCP integration, HTTP for REST-based access, and ADBC for Arrow-based data interchange. Transport selection is configured at startup, with each mode using dedicated initialization paths (initialize_for_stdio_mode, start_http, ADBC integration) that abstract protocol differences from the core query execution layer.
Implements a transport abstraction layer where DorisServer (MCP protocol layer) is decoupled from transport implementation via stdio_server(), start_http(), and ADBC integration modules — each transport has its own initialization path but shares the same underlying query execution and security layers, enabling single codebase deployment across multiple integration patterns
Provides unified security and query execution across multiple transports vs. separate implementations for each protocol; transport abstraction allows switching deployment modes without code changes
query analysis and performance metrics collection
Medium confidenceCollects query execution metrics (latency, rows processed, memory usage) through AnalysisTools component and exposes them as MCP resources. Metrics are aggregated per query and per user, enabling performance monitoring and optimization recommendations. Integration with Doris query profiling provides detailed execution plan analysis.
Integrates query metrics collection at the QueryExecutor level, capturing execution statistics before result serialization, and exposes metrics as MCP resources via DorisResourcesManager — this enables LLM agents to reason about query cost and performance without additional API calls
Provides MCP-native performance metrics vs. requiring separate monitoring tools; metrics are available to LLM agents for cost-aware query optimization without external integrations
dynamic tool registration and prompt template injection
Medium confidenceRegisters SQL query tools and analysis functions dynamically through DorisToolsManager, which exposes them as MCP tools with schema-based function signatures. Prompt templates are managed by DorisPromptsManager and injected into LLM context, providing domain-specific guidance for query generation and data exploration.
Implements a two-layer tool system: DorisToolsManager registers tools with MCP-compatible schemas, while DorisPromptsManager maintains prompt templates that are injected into LLM context — this separation enables tools to be discovered and invoked by agents while prompts guide reasoning without tool schema pollution
Provides MCP-native tool registration vs. custom tool discovery mechanisms; prompt injection enables domain-specific guidance without modifying LLM system prompts
multi-worker horizontal scaling with request distribution
Medium confidenceSupports multi-worker deployment mode (multiworker_app.py) where multiple server instances are coordinated behind a load balancer or request router. Each worker maintains its own connection pool and processes requests independently, with optional request distribution based on query complexity or user affinity. Worker health is monitored and unhealthy workers are automatically excluded from routing.
Implements worker-level request distribution through multiworker_app.py, where each worker is a complete DorisServer instance with its own connection pool and security context — workers are stateless and can be added/removed dynamically, with health monitoring enabling automatic failover without central coordination
Provides horizontal scaling without shared state vs. centralized architectures; stateless workers enable simple deployment and scaling, though at the cost of higher total Doris connection usage
structured logging and observability with context propagation
Medium confidenceImplements structured logging through DorisLoggerManager that captures request context (user, query, execution time) and propagates it across the request lifecycle. Logs are emitted in JSON format with correlation IDs, enabling distributed tracing and debugging. Integration with standard Python logging allows output to files, syslog, or observability platforms.
Implements context-aware structured logging where DorisLoggerManager captures request metadata (user, query, execution time) and propagates correlation IDs through the request lifecycle — logs are emitted as JSON with full context, enabling distributed tracing without external instrumentation
Provides MCP-native structured logging vs. unstructured logs; JSON format enables easy integration with observability platforms without parsing
configuration management with environment variable override
Medium confidenceManages server configuration through DorisConfig component that supports YAML files, environment variables, and programmatic overrides. Configuration is validated at startup and cached in memory. Environment variables take precedence over YAML, enabling deployment-specific customization without code changes. Configuration changes require server restart.
Implements a three-tier configuration hierarchy (YAML defaults, environment variable overrides, programmatic overrides) managed by DorisConfig, with validation at startup and caching for performance — environment variables take precedence, enabling container-based deployments without configuration files
Provides environment variable-first configuration vs. file-only approaches, enabling Kubernetes and container deployments without ConfigMap/Secret mounting; three-tier hierarchy allows sensible defaults with environment-specific overrides
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with Apache Doris, ranked by overlap. Discovered automatically through the match graph.
run-sql-connectorx
** - Execute SQL (PostgreSQL, MariaDB, BigQuery, MS SQL Server, RedShift, etc.) via ConnectorX and stream results to CSV/Parquet. MCP tool: run_sql.
PostgreSQL MCP Server
Query and explore PostgreSQL databases through MCP tools.
SchemaCrawler
** - Connect to any relational database, and be able to get valid SQL, and ask questions like what does a certain column prefix mean.
@benborla29/mcp-server-mysql
MCP server for interacting with MySQL databases with write operations support
DreamFactory
** - An MCP server for securely (via RBAC) talking to on-premise and cloud MS SQL Server, MySQL, PostgreSQL databases and other data sources.
Mastra/mcp
** - Client implementation for Mastra, providing seamless integration with MCP-compatible AI models and tools.
Best For
- ✓AI agents and LLM applications needing real-time data warehouse access
- ✓Teams building data-driven decision systems on top of Doris
- ✓Developers integrating Doris into MCP-compatible tools (Claude, etc.)
- ✓LLM-powered SQL generation tools that need schema awareness
- ✓Data exploration interfaces for non-technical users
- ✓Teams building semantic layers on top of Doris
- ✓Production deployments requiring high availability
- ✓Teams monitoring Doris connectivity and performance
Known Limitations
- ⚠Query results are serialized through MCP protocol, adding latency for very large result sets (>100K rows)
- ⚠No built-in query caching — each execution hits the database directly
- ⚠Connection pool size is fixed at initialization; dynamic scaling requires server restart
- ⚠Timeout behavior depends on underlying Doris query timeout configuration
- ⚠Schema cache is in-memory only; changes to database schema require server restart or manual cache invalidation
- ⚠Extraction of large schemas (>10K tables) may cause initial startup latency
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
** - MCP Server For [Apache Doris](https://doris.apache.org/), an MPP-based real-time data warehouse.
Categories
Alternatives to Apache Doris
Are you the builder of Apache Doris?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →