mcpField
D
Doris MCP Server

Doris MCP Server

Remote
doris.apache.orgDatabases354Updated 11w ago

About Doris MCP Server

Apache Doris MCP Server is a read-only MCP server that exposes Apache Doris capabilities to MCP hosts and AI agents. It organizes tools into eight domains with 55 child capabilities discovered progressively, and keeps authorization, schemas and failure behavior explicit.

Key features

  1. 01Eight domains with 55 progressively disclosed children
  2. 02Read-only runtime with Doris RBAC as final authority
  3. 03Stdio and Streamable HTTP transports
  4. 04Bounded SQL shape, rows and bytes
  5. 05Output schema validation and secret redaction
  6. 06Optional ADBC and MetricFlow integration

Use cases

  1. 01Letting AI agents query Doris data and inspect execution plans
  2. 02Diagnosing slow queries and cluster status from an MCP host
  3. 03Browsing Doris metadata and lineage in a read-only manner

MCP support

This is an MCP server that exposes Doris tools and child capabilities to MCP clients over stdio or Streamable HTTP.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttp://127.0.0.1:3000/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

Apache Doris MCP Server

English | 简体中文

Apache Doris MCP Server exposes read-only Apache Doris capabilities to MCP Hosts and AI agents over MCP 2026-07-28. Version 1.0 replaces a large flat tool surface with eight stable domains and fifty-five progressively disclosed child capabilities, while keeping runtime availability, authorization, input schemas, output schemas, and failure behavior explicit.

Release status

The package version is 1.0.0. MCP 2026-07-28 protocol compatibility on master is Generally Available (GA) on Streamable HTTP and stdio. This GA statement is scoped to protocol compatibility; the Python package classifier remains Beta, and the documented deployment limits still apply.

Before upgrading, read the 1.0 release notes, the 1.0 migration guide, and the generated 8-domain/55-child registry. The detailed release record is Issue #189.

Architecture at a glance

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

The default hierarchical mode exposes these domains:

DomainChildrenResponsibility
doris_catalog5catalogs, databases, tables, table context, size
doris_query7query, explain, profile, diagnosis, slow queries, explicit ADBC
doris_cluster11nodes, tasks, metrics, memory, cache, compaction, workloads
doris_pipeline5ingestion, materialized views, freshness, dependencies
doris_search4text/vector/hybrid search, analyzers, indexes, diagnosis
doris_governance8quality, storage, lineage, audit, UDFs, auth mapping
doris_lakehouse3external catalogs, lakehouse tables, Variant
doris_semantic12optional Apache Ossie grounding and MetricFlow consumption

Call a domain with {} to discover its authorized children and exact schemas. Call the same domain again with child_tool, arguments, and the returned manifest_version. Hosts that cannot use progressive disclosure may set MCP_TOOL_EXPOSURE_MODE=flat before startup; this exposes the same 55 children under collision-free formal names and does not restore pre-1.0 aliases.

See Architecture, Request lifecycle, and Tool domains.

Quick start

Requirements:

  • Python 3.12 or later;
  • Apache Doris 2.0.0 or later;
  • network access to the Doris FE MySQL endpoint, normally port 9030.

Install the pinned release:

pip install doris-mcp-server==1.0.0

doris-mcp-server starts the Server. doris-mcp-client is a separate client; the two commands are not interchangeable.

Configure a 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

Start Streamable HTTP on loopback:

doris-mcp-server \
  --transport http \
  --host 127.0.0.1 \
  --port 3000

Endpoints:

  • 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-backed readiness: GET http://127.0.0.1:3000/ready

Hosts limited to handshake-era Streamable HTTP, including Dify 1.16.1 with MCP 2025-06-18, must set ENABLE_LEGACY_HTTP_ADAPTER=true and connect to /mcp/legacy. The adapter changes only the protocol boundary; it preserves the same 1.0 tools, authorization, capability gates, and read-only execution.

Or run stdio for a local Host:

doris-mcp-server --transport stdio

See the complete Quick start and Host integration guide.

Security boundary

  • The built-in 1.0 catalog is read-only; doris_admin is reserved and not registered.
  • Static tokens, JWT, external OAuth/OIDC, and Doris-backed OAuth are supported under mutually validated configuration boundaries.
  • Domain discovery and child execution use exact authorization identifiers.
  • Doris RBAC remains the final authority for visible objects and data.
  • SQL shape, identifiers, parameters, timeout, rows, bytes, and result schemas are bounded before data leaves the Server.
  • Secrets and backend errors are redacted from public results and logs.
  • Non-loopback HTTP requires authentication unless an explicit dangerous development override is enabled.

Read the Security and permission model and the Doris fine-grained access guide.

Reliability boundary

The Server uses deterministic manifests and errors, signed expiring cursors, route-aware capability snapshots, bounded stale fallback, request-specific connection routing, multi-FE failover, liveness/readiness separation, output Schema validation, and sanitized trace propagation. Unsupported or misconfigured capabilities remain discoverable with callable=false and fail closed when called.

Current limits include process-local Doris-backed OAuth, explicit-only ADBC that is disabled by default and fail-closed on token-bound routes, optional read-only Ossie grounding, an optional MetricFlow compiler sidecar whose SQL must execute through the bounded MCP query runtime, and best-effort native lineage delivery. See Reliability and limits.

Documentation

The root README is intentionally an entry point. The bilingual documentation system is indexed at:

Primary guides:

Development

git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest

Generated artifacts must remain synchronized:

uv run python generate_tool_catalog.py --check
uv lock --check

See Contributing and verification.

License

Apache License 2.0. See LICENSE.txt and NOTICE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.