Intugle MCP Server

oficial

Gere modelos semânticos automatizados usando agentes de engenharia de dados e produtos de dados integrados sob demanda.

Documentação

Intugle Logo

O kit de ferramentas com tecnologia GenAI para inteligência de dados automatizada.

PyPI Downloads Release Made with Python contributions - welcome License: Apache 2.0 Open Issues

Transforme Dados Fragmentados em um Modelo de Dados Semântico Conectado

Visão Geral

A biblioteca Python de código aberto com tecnologia GenAI da Intugle constrói um modelo de dados semântico sobre seus sistemas de dados existentes. Em sua essência, ela descobre links e relacionamentos significativos entre ativos de dados — enriquecendo-os com perfis, classificações e glossários de negócios. Com essa camada de conhecimento conectada, você pode habilitar a busca semântica e gerar consultas automaticamente para criar produtos de dados unificados, tornando a integração e a exploração de dados mais rápidas, precisas e muito menos manuais.

intugle-architecture

Para quem é isto?

  • Engenheiros e Arquitetos de Dados frequentemente passam semanas perfilando, classificando e unindo manualmente ativos de dados fragmentados. Com o Intugle, eles podem automatizar esse processo de ponta a ponta, descobrindo links e relacionamentos significativos para gerar instantaneamente uma camada semântica conectada.
  • Analistas e Cientistas de Dados gastam inúmeras horas na preparação e prontidão dos dados antes mesmo de poderem iniciar a análise real. O Intugle acelera isso fornecendo inteligência contextual, gerando automaticamente SQL e produtos de dados reutilizáveis enriquecidos com relacionamentos e significado de negócios.
  • Analistas de Negócios e Tomadores de Decisão são desacelerados pela dependência constante de equipes técnicas para obter respostas. O Intugle remove esse gargalo ao permitir consultas em linguagem natural e busca semântica, fornecendo insights confiáveis sob demanda.

Funcionalidades

  • Modelo de Dados Semântico - Transforme conjuntos de dados brutos e fragmentados em um grafo semântico inteligente que captura entidades, relacionamentos e contexto — a base para a inteligência conectada.
  • Glossário de Negócios e Busca Semântica: Gere automaticamente um glossário de negócios e habilite uma busca que entende o significado, não apenas palavras-chave — tornando os dados mais acessíveis para usuários técnicos e de negócios.
  • Produtos de Dados - Gere instantaneamente SQL e produtos de dados reutilizáveis enriquecidos com contexto, eliminando pipelines manuais e acelerando o caminho dos dados ao insight.
  • Busca Conceitual - Gere planos de produtos de dados a partir de consultas em linguagem natural, preenchendo a lacuna entre perguntas de negócios e definições executáveis de produtos de dados. Saiba mais na documentação.

Integrações Suportadas

CategoriaIntegrações
Data WarehousesSnowflake, Databricks
Bancos de DadosSQLite, PostgreSQL, SQL Server, MySQL
LocalPandas, DuckDB (CSV, Parquet, Excel)

Aplicativo Streamlit

A biblioteca intugle inclui um aplicativo Streamlit que fornece uma interface web interativa para construir e visualizar modelos de dados semânticos.

https://github.com/user-attachments/assets/402c3f3d-baf3-4ece-ba55-4e06437defc5

Para usar o aplicativo Streamlit, instale o intugle com o extra streamlit:

pip install intugle[streamlit]

Você pode iniciar o aplicativo Streamlit usando o comando intugle-mcp ou uvx:

intugle-streamlit
# Or using uvx
uvx --from intugle[streamlit] intugle-streamlit

Abra a URL fornecida no seu terminal (geralmente http://localhost:8501) para acessar o aplicativo. Para mais detalhes, consulte a documentação do Aplicativo Streamlit.

Para executar o aplicativo em um ambiente de nuvem como o Google Colab, consulte nosso notebook de início rápido do Streamlit.

Primeiros Passos

Instalação

Para Windows e Linux, você pode seguir estes passos. Para macOS, consulte os passos adicionais na seção macOS abaixo.

Antes de instalar, é recomendado criar um ambiente virtual:

python -m venv .venv
source .venv/bin/activate

Em seguida, instale o pacote:

pip install intugle

macOS

Para usuários de macOS, pode ser necessário instalar a biblioteca libomp:

brew install libomp

Se você instalou o Python usando o instalador oficial do python.org, também pode precisar instalar os certificados SSL executando o seguinte comando no seu terminal. Substitua 3.XX pela sua versão específica do Python. Este passo não é necessário se você instalou o Python usando o Homebrew.

/Applications/Python\ 3.XX/Install\ Certificates.command

Configuração

Antes de executar o projeto, você precisa configurar um LLM. Isso é usado para tarefas como gerar glossários de negócios e prever links entre tabelas.

Você pode configurar o LLM definindo as seguintes variáveis de ambiente:

  • LLM_PROVIDER: O provedor e modelo LLM a serem usados (ex., openai:gpt-3.5-turbo) seguindo as convenções do LangChain
  • API_KEY: Sua chave de API para o provedor LLM. O nome exato da variável pode variar de provedor para provedor.

Aqui está um exemplo de como definir essas variáveis no seu ambiente:

export LLM_PROVIDER="openai:gpt-3.5-turbo"
export OPENAI_API_KEY="your-openai-api-key"

Início Rápido

Para uma introdução detalhada e prática ao projeto, consulte nossos notebooks de início rápido:

DomínioNotebookAbrir no Colab
Saúdequickstart_healthcare.ipynbColab
Manufatura de Tecnologiaquickstart_tech_manufacturing.ipynbColab
Bens de Consumo (FMCG)quickstart_fmcg.ipynbColab
Mídia Esportivaquickstart_sports_media.ipynbColab
Catálogo Unity do Databricks [Saúde]quickstart_healthcare_databricks.ipynbApenas Notebook Databricks
Catálogo Horizon do Snowflake [ FMCG ]quickstart_fmcg_snowflake.ipynbApenas Notebook Snowflake
Snowflake Nativo com Cortex Analyst [ Manufatura de Tecnologia ]quickstart_native_snowflake.ipynbColab
Databricks Nativo com AI/BI Genie [ Manufatura de Tecnologia ]quickstart_native_databricks.ipynbColab
Aplicativo Streamlitquickstart_streamlit.ipynbColab
Busca Conceitualquickstart_conceptual_search.ipynbColab
Predição de Relacionamentos Compostosquickstart_basketball_composite_links.ipynbColab

Estes conjuntos de dados o guiarão pelos seguintes passos:

  • Gerar Modelo Semântico → A camada unificada que transforma conjuntos de dados fragmentados, criando a base para a inteligência conectada.
    • 1.1 Perfilar e classificar dados → Analise suas fontes de dados para entender sua estrutura, tipos de dados e outras características.
    • 1.2 Descobrir links e relacionamentos entre os dados → Revele conexões significativas (PK & FK), incluindo chaves compostas, entre tabelas fragmentadas.
    • 1.3 Gerar um glossário de negócios → Crie termos amigáveis ao negócio e use-os para consultar dados com contexto.
    • 1.4 Habilitar busca semântica → Busca inteligente que entende o significado, não apenas palavras-chave — tornando os dados mais acessíveis tanto para usuários técnicos quanto de negócios.
    • 1.5 Visualizar modelo semântico → Obtenha acesso a metadados enriquecidos da camada semântica na forma de arquivos YAML e visualize na forma de grafo.
  • Construir Produtos de Dados Unificados → Simplesmente escolha os atributos em suas tabelas de dados e deixe o kit de ferramentas gerar automaticamente consultas com todas as junções, transformações e agregações necessárias usando a camada semântica. Quando executadas, essas consultas produzem produtos de dados reutilizáveis.

Documentação

Para informações mais detalhadas, uso avançado e tutoriais, consulte nosso site de documentação completo.

Uso

O fluxo de trabalho principal do projeto envolve o uso do SemanticModel para construir uma camada semântica e, em seguida, usar o DataProduct para gerar produtos de dados a partir dessa camada.

from intugle import SemanticModel

# Define your datasets
datasets = {
    "allergies": {"path": "path/to/allergies.csv", "type": "csv"},
    "patients": {"path": "path/to/patients.csv", "type": "csv"},
    "claims": {"path": "path/to/claims.csv", "type": "csv"},
    # ... add other datasets
}

# Build the semantic model
sm = SemanticModel(datasets, domain="Healthcare")
sm.build()

# Access the profiling results
print(sm.profiling_df.head())

# Access the discovered links
print(sm.links_df)

Para exemplos de código detalhados e um passo a passo completo, consulte nossos notebooks de início rápido.

Produto de Dados

Uma vez que o modelo semântico é construído, você pode usar a classe DataProduct para gerar produtos de dados unificados a partir da camada semântica.

from intugle import DataProduct

# Define an ETL model
etl = {
  "name": "top_patients_by_claim_count",
  "fields": [
    {
      "id": "patients.first",
      "name": "first_name",
    },
    {
      "id": "patients.last",
      "name": "last_name",
    },
    {
      "id": "claims.id",
      "name": "number_of_claims",
      "category": "measure",
      "measure_func": "count"
    }
  ],
  "filter": {
    "sort_by": [
      {
        "id": "claims.id",
        "alias": "number_of_claims",
        "direction": "desc"
      }
    ],
    "limit": 10
  }
}

# Create a DataProduct and build it
dp = DataProduct()
data_product = dp.build(etl)

# View the data product as a DataFrame
print(data_product.to_df())

Busca Semântica

O recurso de busca semântica permite que você pesquise colunas em seus conjuntos de dados usando linguagem natural. Ele é construído sobre o banco de dados vetorial Qdrant.

Para instruções completas de configuração (incluindo comandos Docker e variáveis de ambiente), consulte a Documentação de Busca Semântica.

Uso

Uma vez que você tenha construído o modelo semântico, pode usar o método search para realizar uma busca semântica. A função de busca retorna um DataFrame do pandas contendo os resultados da pesquisa, incluindo as métricas de perfil da coluna, categoria, nome da tabela e glossário da tabela.

from intugle import SemanticModel

# Define your datasets
datasets = {
    "allergies": {"path": "path/to/allergies.csv", "type": "csv"},
    "patients": {"path": "path/to/patients.csv", "type": "csv"},
    "claims": {"path": "path/to/claims.csv", "type": "csv"},
    # ... add other datasets
}

# Build the semantic model
sm = SemanticModel(datasets, domain="Healthcare")
sm.build()
# Perform a semantic search
search_results = sm.search("reason for hospital visit")

# View the search results
print(search_results)

Para exemplos de código detalhados e um passo a passo completo, consulte nossos notebooks de início rápido.

Servidor MCP

O Intugle inclui um servidor MCP (Model Context Protocol) integrado que expõe sua camada semântica para assistentes de IA e clientes com tecnologia LLM. Seu principal objetivo é permitir que agentes entendam a estrutura dos seus dados usando ferramentas como get_tables e get_schema.

Uma vez que seu modelo semântico esteja construído, você pode iniciar o servidor com um comando simples:

intugle-mcp

Isso permite que agentes de IA interajam programaticamente com o contexto dos seus dados. Isso também possibilita o "vibe coding" com a biblioteca.

Para instruções detalhadas sobre como configurar o servidor e conectar seu cliente favorito, consulte nossa documentação completa.

Comunidade

Junte-se à nossa comunidade para fazer perguntas, compartilhar seus projetos e conectar-se com outros usuários.

Contribuindo

Contribuições são bem-vindas! Consulte o arquivo CONTRIBUTING.md para orientações.

Licença

Este projeto está licenciado sob a Licença Apache, Versão 2.0. Consulte o arquivo LICENSE para detalhes. Avisos de software de terceiros estão disponíveis no arquivo NOTICE.