Apache Doris
oficialServidor 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
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ínio | Filhos | Responsabilidade |
|---|---|---|
doris_catalog | 5 | catálogos, bancos de dados, tabelas, contexto de tabela, tamanho |
doris_query | 7 | consulta, explain, perfil, diagnóstico, consultas lentas, ADBC explícito |
doris_cluster | 11 | nós, tarefas, métricas, memória, cache, compactação, cargas de trabalho |
doris_pipeline | 5 | ingestão, visões materializadas, atualização, dependências |
doris_search | 4 | busca de texto/vetor/híbrida, analisadores, índices, diagnóstico |
doris_governance | 8 | qualidade, armazenamento, linhagem, auditoria, UDFs, mapeamento de autenticação |
doris_lakehouse | 3 | catálogos externos, tabelas lakehouse, Variant |
doris_semantic | 12 | fundamentaçã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:
- Arquitetura
- Fluxo de solicitação e dados
- Domínios de ferramentas
- Disponibilidade de capacidades
- Matriz de capacidades por versão do Doris
- Integração MetricFlow
- Contrato MCP 2026-07-28
- Modelo de segurança
- Implantação
- Confiabilidade e limites
- Solução de problemas
- Referência de configuração
- Integrações de hosts
- Provedores de ferramentas personalizados
- Contribuição
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.