Apache Doris

oficial

Servidor MCP para Apache Doris, um data warehouse em tempo real baseado em MPP.

O que você pode fazer com Apache Doris MCP?

  • Consultar e diagnosticar o Doris — Solicite execução de consultas, planos, análise de perfil ou diagnóstico de consultas lentas por meio do domínio doris_query.
  • Explorar catálogo e esquema — Descubra bancos de dados, tabelas e contexto de tabelas com detalhes de tamanho por meio das ferramentas filhas do doris_catalog.
  • Monitorar a saúde do cluster — Inspecione nós, tarefas, métricas, memória, cache e status de compactação usando o domínio doris_cluster.
  • Gerenciar pipelines de dados — Verifique status de ingestão, visões materializadas, atualização e dependências por meio das ferramentas do doris_pipeline.
  • Pesquisar e analisar dados — Execute buscas de texto, vetoriais ou híbridas e inspecione índices por meio do domínio doris_search.
  • Governar e auditar — Revise qualidade de dados, armazenamento, linhagem, logs de auditoria e UDFs com os recursos do doris_governance.

Documentação

Servidor MCP Apache Doris

English | 简体中文

O Apache Doris MCP Server expõe capacidades somente leitura do Apache Doris para hosts MCP e agentes de IA via MCP 2026-07-28. A versão 1.0 substitui uma grande superfície plana de ferramentas por oito domínios estáveis e cinquenta e cinco capacidades filhas divulgadas progressivamente, mantendo explícitos a disponibilidade em tempo de execução, autorização, esquemas de entrada, esquemas de saída e comportamento de falha.

Status da versão

A versão do pacote é 1.0.0. A compatibilidade de protocolo MCP 2026-07-28 em master é Disponibilidade Geral (GA) em Streamable HTTP e stdio. Esta declaração de GA está limitada à compatibilidade de protocolo; o classificador do pacote Python permanece Beta, e os limites de implantação documentados ainda se aplicam.

Antes de atualizar, leia as notas da versão 1.0, o guia de migração para 1.0 e o registro gerado de 8 domínios/55 filhos. O registro detalhado da versão está na Issue #189.

Arquitetura em resumo

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

O modo hierarchical padrão expõe estes domínios:

DomínioFilhosResponsabilidade
doris_catalog5catálogos, bancos de dados, tabelas, contexto de tabela, tamanho
doris_query7consulta, explain, perfil, diagnóstico, consultas lentas, ADBC explícito
doris_cluster11nós, tarefas, métricas, memória, cache, compactação, cargas de trabalho
doris_pipeline5ingestão, visões materializadas, atualização, dependências
doris_search4busca de texto/vetor/híbrida, analisadores, índices, diagnóstico
doris_governance8qualidade, armazenamento, linhagem, auditoria, UDFs, mapeamento de autenticação
doris_lakehouse3catálogos externos, tabelas lakehouse, Variant
doris_semantic12fundamentação opcional Apache Ossie e consumo de MetricFlow

Chame um domínio com {} para descobrir seus filhos autorizados e esquemas exatos. Chame o mesmo domínio novamente com child_tool, arguments e o manifest_version retornado. Hosts que não podem usar divulgação progressiva podem definir MCP_TOOL_EXPOSURE_MODE=flat antes da inicialização; isso expõe os mesmos 55 filhos sob nomes formais sem colisão e não restaura aliases anteriores à 1.0.

Consulte Arquitetura, Ciclo de vida da solicitação e Domínios de ferramentas.

Início rápido

Pré-requisitos:

  • Python 3.12 ou posterior;
  • Apache Doris 2.0.0 ou posterior;
  • acesso de rede ao endpoint MySQL do FE Doris, normalmente a porta 9030.

Instale a versão fixada:

pip install doris-mcp-server==1.0.0

doris-mcp-server inicia o Servidor. doris-mcp-client é um cliente separado; os dois comandos não são intercambiáveis.

Configure uma rota 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

Inicie o Streamable HTTP em loopback:

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

Endpoints:

  • MCP: POST http://127.0.0.1:3000/mcp
  • MCP legado (opt-in): POST http://127.0.0.1:3000/mcp/legacy
  • liveness: GET http://127.0.0.1:3000/live
  • readiness com suporte a Doris: GET http://127.0.0.1:3000/ready

Hosts limitados ao Streamable HTTP da era de handshake, incluindo Dify 1.16.1 com MCP 2025-06-18, devem definir ENABLE_LEGACY_HTTP_ADAPTER=true e conectar-se a /mcp/legacy. O adaptador altera apenas o limite do protocolo; ele preserva as mesmas ferramentas 1.0, autorização, portões de capacidade e execução somente leitura.

Ou execute stdio para um Host local:

doris-mcp-server --transport stdio

Consulte o Início rápido completo e o guia de integração de Hosts.

Limite de segurança

  • O catálogo 1.0 integrado é somente leitura; doris_admin é reservado e não registrado.
  • Tokens estáticos, JWT, OAuth/OIDC externo e OAuth com suporte a Doris são suportados sob limites de configuração validados mutuamente.
  • Descoberta de domínio e execução de filhos usam identificadores de autorização exatos.
  • O RBAC do Doris permanece a autoridade final para objetos e dados visíveis.
  • Forma SQL, identificadores, parâmetros, timeout, linhas, bytes e esquemas de resultado são limitados antes que os dados saiam do Servidor.
  • Segredos e erros de backend são redigidos dos resultados públicos e dos logs.
  • HTTP fora de loopback exige autenticação, a menos que uma substituição explícita de desenvolvimento perigosa esteja habilitada.

Leia o modelo de segurança e permissões e o guia de acesso granular do Doris.

Limite de confiabilidade

O Servidor usa manifestos e erros determinísticos, cursores expirados assinados, snapshots de capacidade cientes de rota, fallback obsoleto limitado, roteamento de conexão por solicitação, failover multi-FE, separação liveness/readiness, validação de Schema de saída e propagação de rastreamento sanitizada. Capacidades não suportadas ou mal configuradas permanecem detectáveis com callable=false e falham fechadas quando chamadas.

Os limites atuais incluem OAuth com suporte a Doris local ao processo, ADBC somente explícito que é desabilitado por padrão e falha fechada em rotas com token, fundamentação Ossie somente leitura opcional, um compilador sidecar MetricFlow opcional cujo SQL deve ser executado pelo runtime de consulta MCP limitado, e entrega de linhagem nativa de melhor esforço. Consulte Confiabilidade e limites.

Documentação

O README raiz é intencionalmente um ponto de entrada. O sistema de documentação bilíngue está indexado em:

Guias principais:

Desenvolvimento

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

Os artefatos gerados devem permanecer sincronizados:

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

Consulte Contribuição e verificação.

Licença

Apache License 2.0. Consulte LICENSE.txt e NOTICE.