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® Analytics
O servidor MCP baseado em ontologia para sua conveniência de Text-2-SQL.
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
| Projeto | Propósito |
|---|---|
| OrionBelt Analytics (este) | Análise de esquemas, geração de ontologias, GraphRAG, Text-to-SQL |
| OrionBelt Semantic Layer | Modelos YAML declarativos compilados em SQL específico por dialeto e livre de fan-trap |
| OrionBelt Ontology Builder | Editor visual de ontologias OWL com raciocínio e visualização de grafos (demonstração ao vivo) |
| OrionBelt Chat | Interface 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
- 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_namessolicita ao LLM do host que pré-preencha sugestões de renomeação para identificadores crípticos viasampling/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ção | O que ela detecta |
|---|---|
| Existência de tabela | Referências a tabelas que não existem no esquema |
| Existência de coluna | Referências a colunas ausentes em sua tabela, colunas não qualificadas ambíguas |
| Validade de junção | Condições de junção ausentes (produtos cartesianos), colunas de junção que não correspondem a chaves estrangeiras declaradas |
| Compatibilidade de tipos | Comparações WHERE/ON entre tipos incompatíveis (ex.: string vs. inteiro) |
| Correção de agregação | Colunas SELECT ausentes do GROUP BY quando agregações são usadas |
| Detecção de fan-trap | Agregações em múltiplas junções um-para-muitos que multiplicam silenciosamente os resultados |
Como funciona:
generate_ontologyouload_my_ontologycria/carrega uma ontologia com anotações de namespaceoba:que mapeiam classes e propriedades OWL para tabelas, colunas, tipos e chaves estrangeiras reais do banco de dados.- 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. - 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
| Ferramenta | Descrição |
|---|---|
connect_database | Conecte-se a qualquer banco de dados suportado usando credenciais .env |
list_schemas | Liste os esquemas disponíveis no banco de dados conectado |
reset_cache | Limpe os dados de esquema e ontologia em cache para a sessão atual |
discover_schema | Analise a estrutura do esquema com geração automática de GraphRAG + ontologia |
get_table_details | Obtenha informações detalhadas de colunas, chaves e restrições para uma tabela específica |
cleanup_workspace | Exclua todos os arquivos do espaço de trabalho para a conexão atual e comece do zero |
Ontologia e Semântica
| Ferramenta | Descrição |
|---|---|
generate_ontology | Gere ontologia RDF/OWL a partir do esquema com anotações de mapeamento SQL |
suggest_semantic_names | Detecte abreviações e nomes crípticos para renomeação amigável aos negócios |
apply_semantic_names | Aplique nomes e descrições semânticos sugeridos pelo LLM à ontologia |
load_my_ontology | Carregue um arquivo de ontologia .ttl personalizado de uma pasta de importação |
download_artifact | Baixe a ontologia ou o mapeamento R2RML como um arquivo Turtle |
Consulta e Visualização
| Ferramenta | Descrição |
|---|---|
sample_table_data | Visualize dados de tabela com limite de linhas e proteção contra injeção |
execute_sql_query | Execute SQL com validação OBQC, verificações de segurança e detecção de fan-trap |
generate_chart | Gere gráficos Plotly (barras, linhas, dispersão, mapa de calor) com renderização MCP-UI |
GraphRAG
| Ferramenta | Descrição |
|---|---|
graphrag_search | Pesquisa semântica + visão geral do esquema (auto-inicializada por discover_schema) |
graphrag_query_context | Obtenha contexto otimizado para geração de SQL (redução de 85-95% de tokens) |
graphrag_find_join_path | Descubra caminhos de junção entre tabelas via travessia de grafos |
reachable_from | Tabelas com capacidade de dimensão para um grão âncora (fechamento muitos-para-um) |
measurable_from | Tabelas com capacidade de medida para um grão âncora (fechamento um-para-muitos) |
plan_composite_query | Recomende uma decomposição de Camada de Fatos Composta segura contra fan-trap (UNION ALL) |
SPARQL e RDF
| Ferramenta | Descrição |
|---|---|
store_ontology_in_rdf | Persista a ontologia no Oxigraph para acesso SPARQL |
query_sparql | Execute consultas SPARQL (SELECT, ASK, CONSTRUCT — detecção automática) |
add_rdf_knowledge | Adicione triplas de metadados personalizadas ao armazenamento RDF |
Modelos Semânticos
| Ferramenta | Descrição |
|---|---|
save_semantic_model | Salve um modelo semântico (ex.: OBML YAML) no espaço de trabalho |
get_semantic_model | Recupere um modelo semântico armazenado pelo nome |
list_semantic_models | Liste 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
| Documento | Conteúdo |
|---|---|
| Referência de Ferramentas | Documentação completa de parâmetros, valores de retorno e exemplos de uso |
| Configuração | Variáveis de ambiente, configuração de transporte, solução de problemas |
| GraphRAG | Inteligência de esquema baseada em grafos e fluxo de trabalho OBML |
| Visão Geral do OBQC | Explicação breve de como o OBQC funciona dentro do OrionBelt Analytics |
| OBQC | Regras de validação, níveis de severidade, comportamento de bloqueio, requisitos de anotação |
| Prevenção de Fan-Trap | O problema do fan-trap, detecção e padrões SQL seguros |
| Integrações | LangChain, OpenAI, CrewAI, Google ADK, Vercel, n8n, ChatGPT |
| Desenvolvimento | Estrutura 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
Copyright © 2026 RALFORION d.o.o.
OrionBelt® é uma marca registrada da RALFORION d.o.o.