OrionBelt Analytics

Analisa esquemas de bancos de dados relacionais (PostgreSQL, Snowflake e Dremio) e gera automaticamente ontologias abrangentes no formato RDF/Turtle com mapeamentos diretos para SQL.

Documentação

OrionBelt Logo

OrionBelt® Analytics

O servidor MCP baseado em ontologia para sua conveniência de Text-2-SQL.

Version 2.0.0 Python 3.13+ License: BSL 1.1 FastMCP RDF/OWL

BigQuery PostgreSQL Snowflake ClickHouse Dremio Databricks DuckDB MySQL

Docker Hub Docker pulls Image size

OrionBelt Analytics é um servidor MCP que analisa esquemas de bancos de dados relacionais e gera ontologias RDF/OWL com mapeamentos SQL incorporados. Ele fornece Text-to-SQL ciente de relacionamentos com prevenção automática de fan-trap, GraphRAG para descoberta inteligente de esquemas e gráficos interativos — tudo acessível por qualquer cliente de IA compatível com MCP.

O Ecossistema OrionBelt

ProjetoPropósito
OrionBelt Analytics (este)Análise de esquemas, geração de ontologias, GraphRAG, Text-to-SQL
OrionBelt Semantic LayerModelos YAML declarativos compilados em SQL específico por dialeto e livre de fan-trap
OrionBelt Ontology BuilderEditor visual de ontologias OWL com raciocínio e visualização de grafos (demonstração ao vivo)
OrionBelt ChatInterface de chat de IA para Analytics + Semantic Layer (Chainlit, múltiplos provedores de LLM)

Execute Analytics e Semantic Layer lado a lado no Claude Desktop para geração de ontologias ciente de esquemas e compilação de SQL com correção garantida.

Arquitetura

OrionBelt Analytics Architecture

  • 8 conectores de banco de dados -- PostgreSQL, MySQL, Snowflake, ClickHouse, Dremio, BigQuery, DuckDB/MotherDuck, Databricks SQL
  • Geração de ontologias RDF/OWL com anotações SQL de namespace oba: e mapeamentos W3C R2RML
  • GraphRAG -- travessia de grafos (até 12 saltos) + embeddings vetoriais ChromaDB para descoberta semântica de esquemas
  • Interface de consulta SPARQL 1.1 via armazenamento RDF Oxigraph persistente
  • Validação OBQC -- verificações SQL determinísticas contra a ontologia (existência de tabelas/colunas, validade de junções, incompatibilidades de tipos, fan-traps)
  • Gráficos interativos -- gráficos Plotly com renderização MCP-UI no Claude Desktop
  • Suporte a múltiplos esquemas -- analise vários esquemas simultaneamente; o estado da ontologia e do GraphRAG é isolado por esquema
  • Persistência do espaço de trabalho -- reconecte-se ao mesmo banco de dados e restaure sua sessão anterior
  • Amostragem MCP -- quando o cliente conectado suporta amostragem (ex.: OrionBelt Chat), o suggest_semantic_names solicita ao LLM do host que pré-preencha sugestões de renomeação para identificadores crípticos via sampling/createMessage, reduzindo o fluxo anterior de revisar-depois-aplicar a uma única chamada de ferramenta. Clientes sem suporte a amostragem (ex.: Claude Desktop) usam silenciosamente o caminho de revisão manual

OBQC -- Verificação de Consultas Baseada em Ontologia

Um diferencial importante do OrionBelt é o OBQC (Ontology-Based Query Check), um validador SQL determinístico baseado em regras que detecta erros antes que as consultas cheguem ao banco de dados. Diferente de abordagens somente com LLM que dependem do modelo "acertar", o OBQC cruza referências de cada instrução SQL gerada contra a ontologia RDF/OWL carregada para impor a correção estrutural.

O que o OBQC valida:

VerificaçãoO que ela detecta
Existência de tabelaReferências a tabelas que não existem no esquema
Existência de colunaReferências a colunas ausentes em sua tabela, colunas não qualificadas ambíguas
Validade de junçãoCondições de junção ausentes (produtos cartesianos), colunas de junção que não correspondem a chaves estrangeiras declaradas
Compatibilidade de tiposComparações WHERE/ON entre tipos incompatíveis (ex.: string vs. inteiro)
Correção de agregaçãoColunas SELECT ausentes do GROUP BY quando agregações são usadas
Detecção de fan-trapAgregações em múltiplas junções um-para-muitos que multiplicam silenciosamente os resultados

Como funciona:

  1. generate_ontology ou load_my_ontology cria/carrega uma ontologia com anotações de namespace oba: que mapeiam classes e propriedades OWL para tabelas, colunas, tipos e chaves estrangeiras reais do banco de dados.
  2. Quando execute_sql_query é chamado, o OBQC analisa o SQL com sqlglot e valida cada tabela, coluna, junção e agregação contra o modelo de esquema da ontologia.
  3. Os problemas são retornados com níveis de severidade (erro, aviso, informação) junto com os resultados da consulta, para que o LLM possa se autocorrigir antes que o usuário veja dados incorretos.

O OBQC é totalmente determinístico -- sem chamadas de LLM, sem raciocínio probabilístico. Ele atua como uma rede de segurança que complementa a geração de SQL do LLM com garantias estruturais rígidas. Erros bloqueiam a execução da consulta; avisos são anexados à resposta para o LLM agir. Consulte a documentação do OBQC para a referência completa de regras, comportamento de severidade e requisitos de anotação.

Início Rápido

1. Instalação

git clone https://github.com/ralforion/orionbelt-analytics
cd orionbelt-analytics
uv sync

Requer Python 3.13+ e uv.

2. Configuração

cp .env.template .env

Edite .env com suas credenciais de banco de dados. No mínimo, defina as variáveis para um banco de dados (ex.: POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DATABASE, POSTGRES_USERNAME, POSTGRES_PASSWORD).

Consulte docs/configuration.md para todas as variáveis de ambiente, opções de transporte e solução de problemas.

3. Execução

uv run server.py

O servidor inicia em http://localhost:9000 (transporte HTTP, configurável via MCP_SERVER_PORT).

Conecte Seu Cliente de IA

Claude Desktop

Inicie o servidor e adicione ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "OrionBelt-Analytics": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:9000/mcp",
        "--transport",
        "http-only"
      ]
    }
  }
}

Claude Code

claude mcp add orionbelt-analytics http://localhost:9000/mcp

LibreChat

Defina MCP_TRANSPORT=sse em .env, reinicie o servidor e adicione ao librechat.yaml:

mcpServers:
  OrionBelt-Analytics:
    url: "http://host.docker.internal:9000/sse"
    timeout: 60000
    startup: true

Outros Frameworks

OrionBelt funciona com LangChain, OpenAI Agents SDK, CrewAI, Google ADK, Vercel AI SDK, n8n e ChatGPT Custom GPTs. Consulte docs/integrations.md para exemplos de configuração.

Ferramentas

OrionBelt expõe 26 ferramentas MCP. Aqui está um resumo por categoria:

Conexão e Esquema

FerramentaDescrição
connect_databaseConecte-se a qualquer banco de dados suportado usando credenciais .env
list_schemasListe os esquemas disponíveis no banco de dados conectado
reset_cacheLimpe os dados de esquema e ontologia em cache para a sessão atual
discover_schemaAnalise a estrutura do esquema com geração automática de GraphRAG + ontologia
get_table_detailsObtenha informações detalhadas de colunas, chaves e restrições para uma tabela específica
cleanup_workspaceExclua todos os arquivos do espaço de trabalho para a conexão atual e comece do zero

Ontologia e Semântica

FerramentaDescrição
generate_ontologyGere ontologia RDF/OWL a partir do esquema com anotações de mapeamento SQL
suggest_semantic_namesDetecte abreviações e nomes crípticos para renomeação amigável aos negócios
apply_semantic_namesAplique nomes e descrições semânticos sugeridos pelo LLM à ontologia
load_my_ontologyCarregue um arquivo de ontologia .ttl personalizado de uma pasta de importação
download_artifactBaixe a ontologia ou o mapeamento R2RML como um arquivo Turtle

Consulta e Visualização

FerramentaDescrição
sample_table_dataVisualize dados de tabela com limite de linhas e proteção contra injeção
execute_sql_queryExecute SQL com validação OBQC, verificações de segurança e detecção de fan-trap
generate_chartGere gráficos Plotly (barras, linhas, dispersão, mapa de calor) com renderização MCP-UI

GraphRAG

FerramentaDescrição
graphrag_searchPesquisa semântica + visão geral do esquema (auto-inicializada por discover_schema)
graphrag_query_contextObtenha contexto otimizado para geração de SQL (redução de 85-95% de tokens)
graphrag_find_join_pathDescubra caminhos de junção entre tabelas via travessia de grafos
reachable_fromTabelas com capacidade de dimensão para um grão âncora (fechamento muitos-para-um)
measurable_fromTabelas com capacidade de medida para um grão âncora (fechamento um-para-muitos)
plan_composite_queryRecomende uma decomposição de Camada de Fatos Composta segura contra fan-trap (UNION ALL)

SPARQL e RDF

FerramentaDescrição
store_ontology_in_rdfPersista a ontologia no Oxigraph para acesso SPARQL
query_sparqlExecute consultas SPARQL (SELECT, ASK, CONSTRUCT — detecção automática)
add_rdf_knowledgeAdicione triplas de metadados personalizadas ao armazenamento RDF

Modelos Semânticos

FerramentaDescrição
save_semantic_modelSalve um modelo semântico (ex.: OBML YAML) no espaço de trabalho
get_semantic_modelRecupere um modelo semântico armazenado pelo nome
list_semantic_modelsListe todos os modelos semânticos armazenados para a conexão atual

Para detalhes completos de parâmetros, valores de retorno e exemplos, consulte docs/tools-reference.md.

Fluxos de Trabalho Típicos

Sessão completa de análise:

connect_database("postgresql") -> discover_schema("public") -> generate_ontology() -> execute_sql_query(...)

Exploração rápida de dados:

connect_database("duckdb") -> list_schemas() -> sample_table_data("events")

Consulta com visualização:

execute_sql_query(query) -> generate_chart(data, "bar", ...)

execute_sql_query executa validação OBQC, verificações de segurança e detecção de fan-trap antes de executar — nenhuma etapa de validação separada é necessária.

Retomar uma sessão anterior (restaura automaticamente o espaço de trabalho):

connect_database("postgresql") -> execute_sql_query(...)

Documentação

DocumentoConteúdo
Referência de FerramentasDocumentação completa de parâmetros, valores de retorno e exemplos de uso
ConfiguraçãoVariáveis de ambiente, configuração de transporte, solução de problemas
GraphRAGInteligência de esquema baseada em grafos e fluxo de trabalho OBML
Visão Geral do OBQCExplicação breve de como o OBQC funciona dentro do OrionBelt Analytics
OBQCRegras de validação, níveis de severidade, comportamento de bloqueio, requisitos de anotação
Prevenção de Fan-TrapO problema do fan-trap, detecção e padrões SQL seguros
IntegraçõesLangChain, OpenAI, CrewAI, Google ADK, Vercel, n8n, ChatGPT
DesenvolvimentoEstrutura do projeto, testes, contribuição

Licença

Copyright 2025-2026 RALFORION d.o.o.

Licenciado sob a Business Source License 1.1. O Trabalho Licenciado será convertido para Apache License 2.0 em 2030-03-16.

Ao contribuir com este projeto, você concorda com o Contrato de Licença de Contribuidor.

Para consultas de licenciamento comercial, entre em contato: licensing@ralforion.com


RALFORION d.o.o.

Copyright © 2026 RALFORION d.o.o.
OrionBelt® é uma marca registrada da RALFORION d.o.o.