Marcio Cunha

Como conectar LLMs a bancos de dados com o protocolo MCP

Guia prático sobre o Model Context Protocol da Anthropic para expor bancos de dados e ferramentas locais de forma segura a assistentes de inteligência artificial.

Marcio Cunha•3 min
Também disponível em:EnglishEspañol
Resumo
  • O protocolo Model Context Protocol padroniza a comunicação entre assistentes de IA e fontes de dados locais.
  • A arquitetura cliente-servidor separa a interface de chat do acesso sensível aos bancos de dados corporativos.
  • Servidores MCP executam comandos locais com permissões restritas para proteger o sistema operacional.
  • Ferramentas de IA ganham capacidade de consulta dinâmica sem expor credenciais em texto puro.
  • A integração reduz alucinações ao fornecer contexto real direto das tabelas relacionais.

O desafio de dar contexto real para os assistentes de IA

Quando conversamos com uma inteligência artificial, percebemos rapidamente que ela conhece muita teoria, mas não sabe absolutamente nada sobre os arquivos, servidores ou dados que você tem na sua máquina. Para resolver essa limitação sem abrir brechas de segurança, a Anthropic criou o Model Context Protocol, conhecido pela sigla MCP. Na prática, este protocolo funciona como uma tomada universal que permite aos modelos de linguagem conversarem com bancos de dados e ferramentas locais de maneira padronizada. Assim como você pode ver em rotinas avançadas, como como rodar um LLM local à noite para automatizar tarefas, a busca por autonomia segura em sistemas locais é um dos temas mais quentes da engenharia atual.

Como funciona a arquitetura cliente-servidor no MCP

O coração do MCP reside em uma divisão muito clara de responsabilidades baseada no modelo cliente-servidor. De um lado fica o cliente, que normalmente é o aplicativo de chat ou o ambiente de desenvolvimento onde a inteligência artificial roda. Do outro lado estão os servidores MCP, que são pequenos programas focados em realizar tarefas específicas, como consultar o banco de dados PostgreSQL, ler logs do sistema ou buscar arquivos em uma pasta. O cliente e o servidor conversam por meio de mensagens estruturadas usando transporte seguro, garantindo que o assistente de IA nunca acesse diretamente a infraestrutura crítica sem passar por filtros rígidos.

Expondo tabelas relacionais de forma segura

Conectar um banco de dados a uma IA costumava exigir a criação de scripts frágeis cheios de riscos de segurança, como ataques de injeção de SQL. Com o MCP, o servidor de banco de dados atua como um tradutor inteligente e controlado. Ele expõe apenas as operações permitidas, escondendo a complexidade das credenciais de acesso e das queries complexas. Para garantir que os dados permaneçam seguros e isolados de falhas humanas ou exposições acidentais, muitos desenvolvedores combinam essa abordagem com técnicas de blindagem, inspiradas em conceitos como como isolar tokens de IA e proteger dados com Edera, mantendo o controle total sobre o raio de ação do robô.

Implementando um servidor MCP para banco de dados

Para colocar a mão na massa, vamos estruturar um pequeno servidor MCP utilizando Python que permite a um assistente consultar tabelas locais. O código abaixo cria um servidor leve capaz de responder a chamadas do cliente MCP e retornar resultados formatados do banco de dados.

from mcp.server import Server, NotificationOptions
import mcp.types as types
import sqlite3

app = Server("database-server")

@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
    if name == "query_users":
        conn = sqlite3.connect("dados.db")
        cursor = conn.cursor()
        cursor.execute("SELECT id, nome FROM usuarios LIMIT 5")
        rows = cursor.fetchall()
        conn.close()
        return [types.TextContent(type="text", text=str(rows))]
    raise ValueError(f"Ferramenta desconhecida: {name}")

Esse trecho define uma ferramenta chamada 'query_users' que roda localmente no servidor isolado. O assistente de IA pode solicitar a execução dessa ferramenta quando precisar buscar informações de clientes, recebendo apenas os dados estritamente necessários para responder à pergunta do usuário.

Prós e contras de adotar o protocolo MCP

Adotar o Model Context Protocol traz vantagens incríveis para equipes de desenvolvimento e engenharia de dados. A principal vantagem é a padronização: qualquer cliente compatível com MCP pode conversar com qualquer servidor MCP, eliminando a necessidade de criar integrações personalizadas para cada ferramenta. Por outro lado, existem desafios operacionais importantes, como a necessidade de gerenciar processos adicionais na máquina local e garantir que as permissões dos servidores MCP estejam rigorosamente auditadas para evitar vazamentos acidentais de dados corporativos sensíveis.

Conclusão e os próximos passos na sua infraestrutura

O Model Context Protocol representa uma mudança de paradigma na forma como integramos modelos de linguagem aos nossos ambientes de trabalho locais e servidores de banco de dados. Ao separar a interface de chat da lógica de acesso aos dados por meio de uma arquitetura cliente-servidor padronizada, ganhamos segurança, modularidade e flexibilidade operacional. O segredo para uma implementação bem-sucedida é começar pequeno, expondo apenas fontes de dados de menor criticidade e auditando rigorosamente cada ferramenta disponibilizada para a inteligência artificial.