StarRocks

oficial

Interaja com o StarRocks

O que você pode fazer com StarRocks MCP?

  • Executar consultas SQL — Peça para executar instruções SELECT via read_query ou comandos DDL/DML por meio de write_query, com saída opcional para arquivo em resultados grandes.
  • Explorar a estrutura do banco de dados — Liste bancos de dados e tabelas, ou busque esquemas de tabelas usando recursos starrocks:// como starrocks:///{db}/{table}/schema.
  • Obter visões gerais de tabelas ou bancos de dados — Use table_overview ou db_overview para recuperar definições de colunas, contagens de linhas e dados de amostra, com cache para solicitações repetidas.
  • Visualizar resultados de consultas — Gere um gráfico Plotly diretamente de uma consulta SQL usando query_and_plotly_chart, retornando uma imagem PNG para exibição na interface.
  • Monitorar a saúde do cluster — Identifique as tabelas mais acessadas por visitas no log de auditoria (top_hot_tables) ou tabelas com baixo desempenho pelo índice de saúde (top_bad_tables).
  • Acessar informações internas do sistema — Consulte detalhes internos do StarRocks, como nós FE/BE, transações ou jobs, por meio do caminho de recurso proc://.

Documentação

MseeP.ai Security Assessment Badge

Servidor MCP Oficial do StarRocks

O Servidor MCP do StarRocks atua como uma ponte entre assistentes de IA e bancos de dados StarRocks. Ele permite execução direta de SQL, exploração de banco de dados, visualização de dados por meio de gráficos e recuperação de visões detalhadas de esquema/dados sem exigir configuração complexa no lado do cliente.

StarRocks Server MCP server

Recursos

  • Execução Direta de SQL: Execute consultas SELECT (read_query) e comandos DDL/DML (write_query).
  • Exploração de Banco de Dados: Liste bancos de dados e tabelas, recupere esquemas de tabelas (recursos starrocks://).
  • Informações do Sistema: Acesse métricas e estados internos do StarRocks por meio do caminho de recurso proc://.
  • Visões Detalhadas: Obtenha resumos abrangentes de tabelas (table_overview) ou bancos de dados inteiros (db_overview), incluindo definições de colunas, contagens de linhas e dados de amostra.
  • Visualização de Dados: Execute uma consulta e gere um gráfico Plotly diretamente a partir dos resultados (query_and_plotly_chart).
  • Cache Inteligente: Visões gerais de tabelas e bancos de dados são armazenadas em cache na memória para acelerar solicitações repetidas. O cache pode ser ignorado quando necessário.
  • Configuração Flexível: Defina detalhes de conexão e comportamento por meio de variáveis de ambiente.

Pré-requisitos

  • Python 3.11 ou mais recente.
  • Um cluster StarRocks acessível (serviço FE). Por padrão, o servidor se conecta a localhost:9030 por meio do protocolo MySQL.
  • uv — um pacote Python rápido e gerenciador de projetos (um substituto moderno para pip + virtualenv) da Astral. Este projeto usa uv para resolver dependências, criar o ambiente virtual e iniciar o servidor. Os comandos uv run ao longo deste README criam automaticamente um ambiente isolado e instalam as dependências necessárias no primeiro uso, portanto, nenhuma etapa manual de pip install é necessária.

Instalando uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via Homebrew / pipx / pip
brew install uv
# pipx install uv
# pip install uv

Consulte o guia oficial de instalação do uv para outras opções. Após a instalação, verifique se ele está no seu PATH:

uv --version

Instalação

Geralmente, você não precisa instalar o pacote manualmente — o host MCP o inicia para você por meio do uv (consulte Configuração abaixo). O uv busca o pacote e suas dependências sob demanda.

Para executá-lo diretamente para teste ou desenvolvimento:

# Run the published package in a throwaway environment
uv run --with mcp-server-starrocks mcp-server-starrocks --help

# Or, from a local checkout of this repository
git clone https://github.com/starrocks/mcp-server-starrocks.git
cd mcp-server-starrocks
uv sync                      # create the virtual environment and install dependencies
uv run mcp-server-starrocks --help

Configuração

O servidor MCP normalmente é executado por meio de um host MCP. A configuração é passada ao host, especificando como iniciar o processo do servidor MCP do StarRocks.

Usando Streamable HTTP (recomendado):

Para iniciar o servidor no modo Streamable HTTP:

Primeiro, teste se a conexão com o StarRocks está OK (9030 é a porta do protocolo MySQL do StarRocks, não a porta do servidor HTTP):

$ STARROCKS_URL=root:@localhost:9030 uv run mcp-server-starrocks --test

Inicie o servidor:

uv run mcp-server-starrocks --mode streamable-http --port 8000

Em seguida, configure o MCP assim:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Usando Docker:

Construa a imagem:

docker build -t mcp-server-starrocks:local .

Construa e envie uma imagem com versão:

docker build -t <registry>/<namespace>/mcp-starrocks:0.4.0 .
docker push <registry>/<namespace>/mcp-starrocks:0.4.0

Inicie o servidor no modo Streamable HTTP:

docker run --rm -p 8000:8000 \
  -e STARROCKS_HOST=host.docker.internal \
  -e STARROCKS_PORT=9030 \
  -e STARROCKS_USER=root \
  -e STARROCKS_PASSWORD='' \
  mcp-server-starrocks:local

Em seguida, configure o cliente MCP com:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Usando uv com pacote instalado (variáveis de ambiente individuais):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

Usando uv com pacote instalado (URL de conexão):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

Usando uv com diretório local (para desenvolvimento):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

Usando uv com diretório local e URL de conexão:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

Argumentos de Linha de Comando:

O servidor suporta os seguintes argumentos de linha de comando:

uv run mcp-server-starrocks --help
  • --mode {stdio,sse,http,streamable-http}: Modo de transporte (padrão: stdio ou variável de ambiente MCP_TRANSPORT_MODE)
  • --host HOST: Host do servidor para modos HTTP (padrão: localhost)
  • --port PORT: Porta do servidor para modos HTTP
  • --test: Executar em modo de teste para verificar a funcionalidade

Exemplos:

# Start in streamable HTTP mode on custom host/port
uv run mcp-server-starrocks --mode streamable-http --host 0.0.0.0 --port 8080

# Start in stdio mode (default)
uv run mcp-server-starrocks --mode stdio

# Run test mode
uv run mcp-server-starrocks --test
  • O campo url deve apontar para o endpoint Streamable HTTP do seu servidor MCP (ajuste host/porta conforme necessário).
  • Com esta configuração, os clientes podem interagir com o servidor usando JSON padrão por meio de solicitações HTTP POST. Nenhum SDK especial é necessário.
  • Todas as APIs de ferramentas aceitam e retornam JSON padrão, conforme descrito acima.

Nota: O modo sse (Server-Sent Events) está obsoleto e não é mais mantido. Use o modo Streamable HTTP para todas as novas integrações.

Variáveis de Ambiente:

Configuração de Conexão

Você pode configurar a conexão StarRocks usando variáveis de ambiente individuais ou uma única URL de conexão:

Opção 1: Variáveis de Ambiente Individuais

  • STARROCKS_HOST: (Opcional) Nome do host ou endereço IP do serviço FE do StarRocks. Padrão: localhost.
  • STARROCKS_PORT: (Opcional) Porta do protocolo MySQL do serviço FE do StarRocks. Padrão: 9030.
  • STARROCKS_USER: (Opcional) Nome de usuário do StarRocks. Padrão: root.
  • STARROCKS_PASSWORD: (Opcional) Senha do StarRocks. Padrão: string vazia.
  • STARROCKS_PASSWORD_FILE: (Opcional) Caminho para um arquivo de texto UTF-8 contendo a senha. Isso é útil com injeção de segredos baseada em arquivo, como credenciais systemd. Uma nova linha final é ignorada. Isso só é usado quando nenhuma senha explícita é fornecida por meio de STARROCKS_PASSWORD ou STARROCKS_URL.
  • STARROCKS_PASSWORD_KEYCHAIN_SERVICE: (Opcional, somente macOS) Nome do serviço de senha genérico a ser usado ao ler a senha do Keychain. Isso só é usado quando nenhuma senha explícita ou STARROCKS_PASSWORD_FILE está configurado.
  • STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT: (Opcional, somente macOS) Nome da conta de senha genérica a ser usada ao ler a senha do Keychain. Padrão: o usuário StarRocks resolvido.
  • STARROCKS_DB: (Opcional) Banco de dados padrão a ser usado se não for especificado nos argumentos da ferramenta ou URIs de recurso. Se definido, a conexão tentará USE este banco de dados. Ferramentas como table_overview e db_overview usarão isso se a parte do banco de dados for omitida em seus argumentos. Padrão: vazio (sem banco de dados padrão).
  • STARROCKS_QUERY_TIMEOUT: (Opcional) Número de segundos para aguardar os resultados de uma consulta antes de desistir, como um inteiro. Não definido por padrão, o que aguarda indefinidamente, correspondendo ao comportamento anterior. Defina isso se uma consulta travada ou de longa duração deve falhar em vez de bloquear uma chamada de ferramenta para sempre.

Opção 2: URL de Conexão (tem precedência sobre variáveis individuais)

  • STARROCKS_URL: (Opcional) Uma string de URL de conexão que contém todos os parâmetros de conexão em uma única variável. Formato: [<schema>://]user:password@host:port/database. A parte do esquema é opcional. Quando esta variável é definida, ela tem precedência sobre as variáveis individuais STARROCKS_HOST, STARROCKS_PORT, STARROCKS_USER, STARROCKS_PASSWORD e STARROCKS_DB.

    Exemplos:

    • root:mypass@localhost:9030/test_db
    • mysql://admin:secret@db.example.com:9030/production
    • starrocks://user:pass@192.168.1.100:9030/analytics

Precedência de senha:

  • Uma senha incorporada em STARROCKS_URL vence, incluindo uma senha vazia explícita como user:@host:9030/db.
  • Se STARROCKS_URL omitir a senha, STARROCKS_PASSWORD será usado quando definido.
  • Se nenhuma fonte de senha explícita for definida e STARROCKS_PASSWORD_FILE estiver configurado, a senha será lida desse arquivo.
  • Se nenhuma senha explícita ou arquivo de senha for configurado e STARROCKS_PASSWORD_KEYCHAIN_SERVICE estiver definido, a senha será lida do Keychain do macOS.

Exemplo de Keychain do macOS

Armazene a senha:

security add-generic-password -U -a root -s mcp-server-starrocks -w 'secret'

Verifique a senha armazenada:

security find-generic-password -a root -s mcp-server-starrocks -w

Use-a com este servidor:

export STARROCKS_URL=root@localhost:9030/test_db
export STARROCKS_PASSWORD_KEYCHAIN_SERVICE=mcp-server-starrocks
export STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT=root

Credenciais criptografadas systemd exemplo (systemd 250 ou posterior)

O servidor não invoca systemd-creds por conta própria. No momento da implantação, um administrador criptografa a senha; na inicialização do serviço, o systemd a descriptografa no diretório de credenciais do serviço e expõe apenas o caminho do arquivo a este servidor.

Crie uma credencial criptografada vinculada ao host sem colocar a senha no histórico do shell:

sudo -v
sudo install -d -m 0700 /etc/credstore.encrypted
sudo systemd-ask-password -n "StarRocks password:" \
  | sudo systemd-creds encrypt \
      --name=starrocks-password \
      - /etc/credstore.encrypted/starrocks-password.cred

Adicione a credencial à unidade de serviço. O especificador %d expande para o diretório de credenciais específico do serviço:

[Service]
LoadCredentialEncrypted=starrocks-password:/etc/credstore.encrypted/starrocks-password.cred
Environment=STARROCKS_PASSWORD_FILE=%d/starrocks-password
PrivateMounts=yes

Mantenha STARROCKS_PASSWORD não definido e omita a senha de STARROCKS_URL, depois recarregue a unidade e reinicie o serviço. A credencial criptografada normalmente é vinculada ao host local (e ao seu dispositivo TPM2 quando disponível); ela é descriptografada apenas enquanto o serviço está sendo ativado. O processo de serviço e administradores com privilégios de root ainda podem acessar a senha em texto simples em tempo de execução. Não use systemd-creds encrypt --with-key=null, que não fornece confidencialidade.

Configuração Adicional

  • STARROCKS_FE_ARROW_FLIGHT_SQL_PORT: (Opcional) Porta Arrow Flight SQL do serviço FE do StarRocks. Quando definido, o servidor se conecta usando o protocolo Arrow Flight SQL de alto desempenho (por meio de drivers ADBC) em vez do protocolo MySQL padrão. Deixe não definido para usar a conexão MySQL padrão. O host, usuário e senha são obtidos das mesmas configurações de conexão descritas acima.

  • STARROCKS_OVERVIEW_LIMIT: (Opcional) Um limite de caracteres aproximado para o texto total gerado pelas ferramentas de visão geral (table_overview, db_overview) ao buscar dados para preencher o cache. Isso ajuda a evitar uso excessivo de memória para esquemas muito grandes ou inúmeras tabelas. Padrão: 20000.

  • STARROCKS_MCP_OUTPUT_DIR: (Opcional) Diretório usado por read_query quando seu argumento output_file é um caminho relativo. Padrão: ~/.mcp-server-starrocks/output/. O diretório é criado sob demanda. Caminhos absolutos passados para output_file (incluindo caminhos prefixados com ~) ignoram esta configuração. Nota: os arquivos são gravados na máquina onde o servidor MCP é executado. Para Claude Code / Claude Desktop, o servidor é executado localmente, então os arquivos ficam no seu laptop. Para implantações remotas/http, o arquivo fica no servidor, não no cliente.

  • STARROCKS_CHART_OUTPUT_DIR: (Opcional) Diretório onde query_and_plotly_chart grava gráficos HTML interativos (quando format="html"). Padrão: diretório temporário do sistema. O diretório é criado sob demanda. Nota: como outros arquivos de saída, os gráficos são gravados na máquina onde o servidor MCP é executado.

  • STARROCKS_CHART_INCLUDE_PLOTLYJS: (Opcional) Controla como plotly.js é agrupado em gráficos HTML. cdn (padrão) mantém os arquivos pequenos, mas precisa de acesso à rede ao visualizar; inline/true incorpora a biblioteca completa para uso offline; directory e false também são aceitos (repassados para o write_html do Plotly).

  • STARROCKS_CHART_DEFAULT_FORMAT: (Opcional) Formato de saída padrão para query_and_plotly_chart quando o argumento format é omitido. Um de json, png, jpeg (padrão) ou html. Defina como html para sempre gravar um arquivo de gráfico interativo em STARROCKS_CHART_OUTPUT_DIR (com uma prévia PNG inline) sem passar format em cada chamada. Valores inválidos voltam para jpeg com um aviso.

  • STARROCKS_MYSQL_AUTH_PLUGIN: (Opcional) Especifica o plugin de autenticação a ser usado ao conectar ao serviço FE do StarRocks. Por exemplo, defina como mysql_clear_password se sua implantação StarRocks exigir autenticação de senha em texto claro (como ao usar certas configurações de autenticação LDAP ou externa). Defina isso apenas se seu ambiente exigir especificamente; caso contrário, o auth_plugin padrão é usado.

Configuração TLS / SSL

Estas variáveis controlam TLS para a conexão. Quando nenhuma delas é definida, o mysql.connector subjacente mantém seu comportamento padrão (ssl-mode=PREFERRED): a conexão é criptografada se o servidor suportar TLS, mas o certificado do servidor não é verificado. Para segurança real, forneça um certificado CA e habilite a verificação.

  • STARROCKS_SSL_DISABLED: (Opcional) Defina como true para forçar a desativação de TLS. Substitui todas as outras configurações de SSL. O padrão é false.
  • STARROCKS_SSL_CA: (Opcional) Caminho para o certificado da CA (PEM) usado para verificar o certificado do servidor StarRocks.
  • STARROCKS_SSL_CERT: (Opcional) Caminho para o certificado do cliente (PEM) para TLS mútuo (mTLS).
  • STARROCKS_SSL_KEY: (Opcional) Caminho para a chave privada do cliente (PEM) para TLS mútuo (mTLS).
  • STARROCKS_SSL_VERIFY_CERT: (Opcional) Defina como true para verificar o certificado do servidor em relação à CA. O padrão é false.
  • STARROCKS_SSL_VERIFY_IDENTITY: (Opcional) Defina como true para também verificar se o nome do host do servidor corresponde ao certificado. O padrão é false.
  • STARROCKS_TLS_VERSIONS: (Opcional) Lista separada por vírgulas de versões TLS permitidas, ex.: TLSv1.2,TLSv1.3.

Exemplo (verificar o servidor em relação a um certificado da CA):

"env": {
  "STARROCKS_HOST": "your-fe-host",
  "STARROCKS_PORT": "9030",
  "STARROCKS_USER": "root",
  "STARROCKS_PASSWORD": "your-password",
  "STARROCKS_SSL_CA": "/path/to/ca.pem",
  "STARROCKS_SSL_VERIFY_CERT": "true",
  "STARROCKS_SSL_VERIFY_IDENTITY": "true"
}

Para a conexão de alto desempenho Arrow Flight SQL (habilitada via STARROCKS_FE_ARROW_FLIGHT_SQL_PORT), o TLS é controlado separadamente:

  • STARROCKS_FE_ARROW_FLIGHT_SQL_USE_TLS: (Opcional) Defina como true para usar grpc+tls:// em vez de grpc:// em texto simples. Quando habilitado, STARROCKS_SSL_CA é usado como certificado raiz TLS e STARROCKS_SSL_VERIFY_CERT=false (padrão) ignora a verificação do certificado do servidor.

Nota de segurança: evite armazenar senhas em texto simples diretamente em mcp.json. Prefira injetar STARROCKS_PASSWORD (e caminhos de certificados) de um gerenciador de segredos ou ambiente, e nunca envie credenciais para o controle de versão.

  • MCP_TRANSPORT_MODE: (Opcional) Modo de comunicação que especifica como o MCP Server expõe seus serviços. Opções disponíveis:
    • stdio (padrão): Comunica-se por meio de entrada/saída padrão, adequado para hospedagem MCP Host.
    • streamable-http (Streamable HTTP): Inicia como um servidor HTTP Streamable, suportando chamadas de API RESTful.
    • sse: (Obsoleto, não recomendado) Inicia no modo de streaming Server-Sent Events (SSE), adequado para cenários que exigem respostas em streaming. Nota: o modo SSE não é mais mantido, é recomendado usar o modo HTTP Streamable uniformemente.

Componentes

Ferramentas

  • read_query

    • Descrição: Executa uma consulta SELECT ou outros comandos que retornam um ResultSet (ex.: SHOW, DESCRIBE). Opcionalmente, grava o resultado completo em um arquivo local em vez de retorná-lo inline — útil para resultados grandes demais para caber no contexto do modelo.
    • Entrada:
      {
        "query": "SQL query string",
        "db": "database name (optional, uses default database if not specified)",
        "output_file": "optional path; if set, writes the full result to disk and returns only a summary + small preview. Relative paths resolve against STARROCKS_MCP_OUTPUT_DIR (default: ~/.mcp-server-starrocks/output/); absolute paths and ~ are used as-is",
        "output_format": "optional: csv | tsv | json | jsonl. If omitted, inferred from output_file extension (.csv/.tsv/.json/.jsonl/.ndjson); defaults to csv"
      }
      
    • Saída: Sem output_file, conteúdo de texto contendo os resultados da consulta em formato semelhante a CSV com linha de cabeçalho e resumo da contagem de linhas. Com output_file, um resumo curto incluindo o caminho absoluto resolvido, contagem de bytes e contagem de linhas, além de uma pequena prévia. Retorna uma mensagem de erro em caso de falha.
  • write_query

    • Descrição: Executa um DDL (CREATE, ALTER, DROP), DML (INSERT, UPDATE, DELETE) ou outro comando StarRocks que não retorna um ResultSet.
    • Entrada:
      {
        "query": "SQL command string",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Saída: Conteúdo de texto confirmando sucesso (ex.: "Query OK, X rows affected") ou relatando um erro. As alterações são confirmadas automaticamente em caso de sucesso.
  • analyze_query

    • Descrição: Analisa uma consulta e obtém o resultado da análise usando perfil de consulta ou explain analyze.
    • Entrada:
      {
        "uuid": "Query ID, a string composed of 32 hexadecimal digits formatted as 8-4-4-4-12",
        "sql": "Query SQL to analyze",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Saída: Conteúdo de texto contendo os resultados da análise da consulta. Usa ANALYZE PROFILE FROM se uuid for fornecido, caso contrário usa EXPLAIN ANALYZE se sql for fornecido.
  • top_hot_tables

    • Descrição: Obtém as tabelas mais quentes por contagem de visitas no log de auditoria. Junta information_schema.tables com starrocks_audit_db__.starrocks_audit_tbl__, exclui instruções root e SHOW, corresponde o texto SQL de auditoria aos nomes das tabelas e ordena por visit_count decrescente.
    • Entrada:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "min_start_time_ms": 1704067200000,
        "max_start_time_ms": 1704153600000,
        "top_n": 20
      }
      
    • Saída: Resumo em texto mais conteúdo estruturado contendo linhas classificadas com db, table e visit_count.
  • top_bad_tables

    • Descrição: Obtém as piores tabelas por pontuação de saúde da tabela, seguindo a lógica top-bad-tables do Star Management Studio. Reutiliza o cálculo de saúde da tabela baseado em information_schema.be_tablets e information_schema.partitions_meta, filtra esquemas do sistema, ordena por table_health_score crescente e retorna as tabelas com pontuação mais baixa.
    • Entrada:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • Saída: Resumo em texto mais conteúdo estruturado contendo linhas classificadas com campos de saúde da tabela, como db, table, tablet_num, replica_score, tablet_score e table_health_score.
  • query_and_plotly_chart

    • Descrição: Executa uma consulta SQL, carrega os resultados em um DataFrame Pandas e gera um gráfico Plotly usando uma expressão Python fornecida. Projetado para visualização em UIs de suporte.
    • Entrada:
      {
        "query": "SQL query to fetch data",
        "plotly_expr": "Python expression string using 'px' (Plotly Express) and 'df' (DataFrame). Example: 'px.scatter(df, x=\"col1\", y=\"col2\")'",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Saída: Uma lista contendo:
      1. TextContent: Uma representação em texto do DataFrame e uma nota de que o gráfico é para exibição na UI.
      2. ImageContent: O gráfico Plotly gerado codificado como imagem PNG base64 (image/png). Retorna mensagem de erro em texto em caso de falha ou se a consulta não retornar dados.
  • table_overview

    • Descrição: Obtém uma visão geral de uma tabela específica: colunas (de DESCRIBE), contagem total de linhas e linhas de amostra (LIMIT 3). Usa um cache em memória, a menos que refresh seja verdadeiro.
    • Entrada:
      {
        "table": "Table name, optionally prefixed with database name (e.g., 'db_name.table_name' or 'table_name'). If database is omitted, uses STARROCKS_DB environment variable if set.",
        "refresh": false // Optional, boolean. Set to true to bypass the cache. Defaults to false.
      }
      
    • Saída: Conteúdo de texto contendo a visão geral formatada (colunas, contagem de linhas, dados de amostra) ou uma mensagem de erro. Resultados em cache incluem erros anteriores, se aplicável.
  • db_overview

    • Descrição: Obtém uma visão geral (colunas, contagem de linhas, linhas de amostra) para todas as tabelas dentro de um banco de dados especificado. Usa o cache em nível de tabela para cada tabela, a menos que refresh seja verdadeiro.
    • Entrada:
      {
        "db": "database_name", // Optional if default database is set.
        "refresh": false // Optional, boolean. Set to true to bypass the cache for all tables in the DB. Defaults to false.
      }
      
    • Saída: Conteúdo de texto contendo visões gerais concatenadas para todas as tabelas encontradas no banco de dados, separadas por cabeçalhos. Retorna uma mensagem de erro se o banco de dados não puder ser acessado ou não contiver tabelas.

Recursos

Recursos Diretos

  • starrocks:///databases
    • Descrição: Lista todos os bancos de dados acessíveis ao usuário configurado.
    • Consulta Equivalente: SHOW DATABASES
    • Tipo MIME: text/plain

Modelos de Recursos

  • starrocks:///{db}/{table}/schema

    • Descrição: Obtém a definição de esquema de uma tabela específica.
    • Consulta Equivalente: SHOW CREATE TABLE {db}.{table}
    • Tipo MIME: text/plain
  • starrocks:///{db}/tables

    • Descrição: Lista todas as tabelas dentro de um banco de dados específico.
    • Consulta Equivalente: SHOW TABLES FROM {db}
    • Tipo MIME: text/plain
  • proc:///{+path}

    • Descrição: Acessa informações internas do sistema StarRocks, semelhante ao /proc do Linux. O parâmetro path especifica o nó de informação desejado.
    • Consulta Equivalente: SHOW PROC '/{path}'
    • Tipo MIME: text/plain
    • Caminhos Comuns:
      • /frontends - Informações sobre nós FE.
      • /backends - Informações sobre nós BE (para implantações não nativas em nuvem).
      • /compute_nodes - Informações sobre nós CN (para implantações nativas em nuvem).
      • /dbs - Informações sobre bancos de dados.
      • /dbs/<DB_ID> - Informações sobre um banco de dados específico por ID.
      • /dbs/<DB_ID>/<TABLE_ID> - Informações sobre uma tabela específica por ID.
      • /dbs/<DB_ID>/<TABLE_ID>/partitions - Informações de partição para uma tabela.
      • /transactions - Informações de transação agrupadas por banco de dados.
      • /transactions/<DB_ID> - Informações de transação para um ID de banco de dados específico.
      • /transactions/<DB_ID>/running - Transações em execução para um ID de banco de dados.
      • /transactions/<DB_ID>/finished - Transações concluídas para um ID de banco de dados.
      • /jobs - Informações sobre trabalhos assíncronos (Schema Change, Rollup, etc.).
      • /statistic - Estatísticas para cada banco de dados.
      • /tasks - Informações sobre tarefas de agente.
      • /cluster_balance - Informações de status de balanceamento de carga.
      • /routine_loads - Informações sobre trabalhos Routine Load.
      • /colocation_group - Informações sobre grupos Colocation Join.
      • /catalog - Informações sobre catálogos configurados (ex.: Hive, Iceberg).

Prompts

Nenhum definido por este servidor.

Comportamento de Cache

  • As ferramentas table_overview e db_overview utilizam um cache em memória para armazenar o texto de visão geral gerado.
  • A chave do cache é uma tupla de (database_name, table_name).
  • Quando table_overview é chamado, ele verifica o cache primeiro. Se um resultado existir e o parâmetro refresh for false (padrão), o resultado em cache é retornado imediatamente. Caso contrário, ele busca os dados do StarRocks, armazena no cache e então retorna.
  • Quando db_overview é chamado, ele lista todas as tabelas no banco de dados e então tenta recuperar a visão geral para cada tabela usando a mesma lógica de cache de table_overview (verificando o cache primeiro, buscando se necessário e refresh for false ou cache ausente). Se refresh for true para db_overview, ele força uma atualização para todas as tabelas nesse banco de dados.
  • A variável de ambiente STARROCKS_OVERVIEW_LIMIT fornece um alvo suave para o comprimento máximo da string de visão geral gerada por tabela ao preencher o cache, ajudando a gerenciar o uso de memória.
  • Resultados em cache, incluindo quaisquer mensagens de erro encontradas durante a busca original, são armazenados e retornados em acessos subsequentes ao cache.

Depuração

Após iniciar o servidor mcp, você pode usar o inspector para depurar:

npx @modelcontextprotocol/inspector

Demonstração

MCP Demo Image