MCP: Nova Era da IA no Azure e Além

A chegada dos Modelos de Linguagem Grandes (LLMs) inegavelmente revolucionou o cenário da inteligência artificial. No entanto, um desafio persistente permanece: integrar eficazmente esses modelos com dados proprietários. Embora os LLMs sejam proficientes no processamento de vastas quantidades de informações da internet, seu verdadeiro potencial reside em servir como interfaces de linguagem natural para nossos aplicativos e dados, permitindo-nos aproveitar suas capacidades preditivas e generativas dentro de um ambiente controlado.

Para garantir a confiabilidade e relevância das saídas dos LLMs, várias estratégias surgiram, cada uma projetada para preencher a lacuna entre esses modelos e conjuntos de dados específicos. Essas estratégias variam desde a criação de embeddings personalizados e o emprego de técnicas de geração aumentada por recuperação (RAG) – aproveitando bancos de dados de grafos para descobrir relacionamentos intrincados dentro dos dados – até a utilização de LLMs para destilar e apresentar dados obtidos por meio de chamadas OpenAPI acionadas por prompts do usuário. Além disso, o modelo de plug-in popularizado pelo ChatGPT da OpenAI oferece outra via para a integração de dados. Entre essas diversas abordagens, o Model Context Protocol (MCP) se destaca como uma solução promissora para padronizar a conexão entre LLMs e fontes de dados externas.

Revelando o Model Context Protocol

O Model Context Protocol, revelado pela Anthropic no final de 2024, representa um passo significativo em direção à simplificação da interação entre LLMs e dados específicos do usuário. Este protocolo ressalta o papel crítico do contexto nas aplicações de IA, reconhecendo que a capacidade da IA de fornecer saídas coerentes e significativas depende da disponibilidade de informações contextuais relevantes. Confiar unicamente em prompts de chat para obter respostas sensatas é, na melhor das hipóteses, um exercício de otimismo e, na pior das hipóteses, uma receita para resultados imprecisos ou enganosos. Para construir agentes robustos e semiautônomos capazes de orquestrar fluxos de trabalho em torno de nossos dados, um mecanismo confiável para entregar esses dados a esses agentes é essencial.

Como uma iniciativa de código aberto, o MCP fornece implementações de SDK para uma ampla variedade de linguagens de programação, acompanhadas de documentação abrangente dentro de seu repositório GitHub. Esta documentação capacita os desenvolvedores a implementar ou utilizar servidores MCP de forma eficaz. A descrição do projeto sobre o MCP como uma ‘porta USB-C para aplicações de IA’ captura apropriadamente sua essência, destacando sua capacidade de padronizar conexões com diversas fontes de dados. Construído sobre uma base padronizada, o MCP integra-se facilmente com projetos existentes, interagindo perfeitamente com vários LLMs e provedores de inferência.

A arquitetura do MCP segue um modelo cliente/servidor bem estabelecido, onde um broker assume a responsabilidade de traduzir solicitações MCP em solicitações locais ou remotas. Este design espelha a funcionalidade de linguagens de definição de interface como CORBA, transformando o MCP em uma camada de interoperabilidade versátil que facilita a comutação perfeita entre fontes de informação e aplicações LLM. Aproveitando uma conexão JSON RPC, o MCP permite um controle refinado no nível do usuário individual através de ferramentas como o Azure API Management.

O MCP fomenta o desenvolvimento de interfaces genéricas para código orientado por IA, evidenciado por sua crescente adoção em todas as plataformas de desenvolvimento de IA da Microsoft. Desde sua integração dentro da ferramenta de orquestração de modelos Semantic Kernel até sua implantação como servidores MCP compatíveis com Azure OpenAI e Azure AI Foundry, o MCP está ganhando força rapidamente. A Microsoft também está aprimorando o Azure API Management com recursos para controlar o acesso aos dados com base nas credenciais do usuário, solidificando ainda mais o papel do MCP em implantações de IA seguras e governadas.

Azure MCP Server: Uma Implementação Inicial

O Azure MCP Server de código aberto, lançado recentemente em visualização pública, exemplifica uma implementação inicial do MCP na plataforma da Microsoft. Este servidor serve como um broker comum para o acesso de IA a serviços-chave do Azure, aderindo aos princípios de código aberto abraçados por muitos projetos recentes do Azure. Seu código está prontamente acessível no GitHub. O Azure MCP Server fornece acesso a uma parte substancial da plataforma Azure, incluindo bancos de dados, soluções de armazenamento e serviços como o Azure CLI.

A inclusão de suporte para o Azure CLI (e o Developer CLI) é particularmente notável, pois capacita agentes orientados por MCP a interagir com o Azure diretamente, tratando as chamadas MCP como operadores. Esta capacidade abre caminho para a construção de agentes que oferecem uma interface de autoatendimento em linguagem natural para o Azure. Por exemplo, um agente poderia pegar uma descrição de uma infraestrutura e gerar automaticamente os templates ARM necessários para sua implantação. Estendendo este conceito ainda mais, pode-se imaginar um agente multimodal que analisa um esboço de quadro branco, deriva uma descrição dos recursos necessários e, em seguida, implanta a infraestrutura, permitindo o desenvolvimento de código imediato. Serviços adicionais de administração de sistemas acessíveis através do Azure MCP Server abrangem a listagem de grupos de recursos atuais e o aproveitamento do KQL para consultar logs do Azure Monitoring.

Integrando o Azure MCP Server com o GitHub Copilot Chat

Por aderir ao padrão MCP, o Azure MCP Server integra-se perfeitamente com qualquer ferramenta de IA que suporte MCP, como o GitHub Copilot Agent Mode. Simplesmente adicionando o servidor ao seu tenant, você pode começar a fazer perguntas através do Copilot, diretamente ou via integração com o Visual Studio Code. Esta última opção fornece um meio eficaz de aprender como aproveitar o MCP e construir prompts para suas próprias aplicações de IA baseadas em MCP.

Atualmente, a Microsoft ainda não lançou uma ferramenta MCP dedicada para suas linguagens de programação, necessitando o uso de SDKs oficiais para desenvolver código personalizado. Com suporte para TypeScript, C# e Python, os desenvolvedores têm acesso às ferramentas necessárias para criar seus próprios agentes Azure MCP. A experimentação pode ser conduzida dentro do Visual Studio Code, utilizando credenciais Azure existentes.

O servidor opera em seu PC de desenvolvimento e requer Node.js. A instalação é realizada diretamente do repositório GitHub do projeto para o VS Code. Uma vez instalado, certifique-se de que as extensões GitHub Copilot e GitHub Copilot Chat estejam configuradas para usar o modo agente experimental (acessível através da ferramenta de configurações do VS Code). Posteriormente, abra o painel de chat do GitHub Copilot e mude para o modo agente. Verifique se o Azure MCP Server está instalado dentro do dropdown de ferramentas. Agora você pode enviar queries, como ‘List my Azure subscriptions’.

A ferramenta resultante prova ser inestimável para qualquer pessoa que trabalhe com Azure e se estende além da integração com o Copilot. O Azure MCP Server pode ser instalado onde quer que o Node.js seja suportado, permitindo sua integração em agentes personalizados.

O Papel do MCP no Azure AI Foundry

A Microsoft está expandindo rapidamente seu portfólio de ferramentas MCP, expondo funcionalidades existentes através do MCP ou permitindo seu consumo dentro de aplicações agentic. Este lançamento rápido inclui ferramentas para o desenvolvimento de agentes no-code do Copilot Studio, anunciado durante a escrita deste artigo.

O Azure AI Foundry, a principal plataforma de desenvolvimento da Microsoft para o desenvolvimento de aplicações de IA em larga escala, também está desenvolvendo ativamente um Servidor MCP para complementar o Azure’s AI Agent Service. Esta integração visa conectar agentes em execução dentro do Azure AI Foundry com clientes operando como parte de outras aplicações de IA.

Este serviço permite que você reaproveite rapidamente código e serviços de IA existentes e os vincule a novas aplicações. Serviços como o Fabric expõem seus recursos de agente como endpoints do AI Agent Service, permitindo que as aplicações de IA se conectem perfeitamente aos dados essenciais da linha de negócios, fornecendo uma base essencial para mitigar os riscos de alucinações e erros.

Após a instalação, o servidor fornece um conjunto de ações MCP para se conectar a agentes e enviar-lhes queries. Ele também pode listar agentes disponíveis ou utilizar um agente padrão para tarefas específicas. O suporte para threads de conversa está incluído, fornecendo aos agentes uma memória semântica básica para conversas contextuais. Você precisará dos IDs de agente do Azure AI Agent Service para invocá-los usando o MCP.

O servidor é implementado em Python e pode ser instalado usando o Azure CLI via pip. Alternativamente, uma versão TypeScript está disponível para aqueles que a preferem. Semelhante ao Azure MCP Server, este servidor opera fora do ambiente AI Foundry, permitindo que seja instalado em um PC de desenvolvimento ou como parte de uma aplicação hospedada na nuvem dentro de seu próprio container ou VM, com suporte para Windows, macOS e Linux.

Aproveitando Servidores MCP a partir de Aplicações Semantic Kernel AI

Como um padrão aberto, o MCP permite a compatibilidade do servidor com qualquer cliente. O repositório GitHub fornece instruções sobre como estabelecer uma conexão usando o Claude Desktop da Anthropic, mas o verdadeiro valor reside na construção de fluxos de trabalho de agente personalizados dentro do Semantic Kernel.

A Microsoft fornece código de exemplo demonstrando como integrar o suporte MCP em uma orquestração Semantic Kernel, tratando-o como um plug-in de kernel que se integra com chamadas de função familiares. Essas integrações podem ser agrupadas como agentes e acessadas conforme necessário. Embora a integração do MCP dentro do Semantic Kernel ainda esteja em desenvolvimento, ele se integra perfeitamente com seu conjunto de recursos existente, exigindo código adicional mínimo para expor ferramentas MCP de um servidor para aplicações de IA.

Ferramentas como o MCP são componentes críticos de uma moderna stack de IA, fornecendo uma abordagem padronizada para a construção de interfaces detectáveis para aplicações locais e remotas. Uma vez definidas, as ferramentas MCP são facilmente invocadas, com um servidor fornecendo uma lista de ferramentas disponíveis e o MCP fornecendo aos LLMs um meio padronizado de chamar essas ferramentas e utilizar suas saídas. Esta abordagem contribui significativamente para fornecer uma ferramenta de fundamentação universal para aplicações de IA, trabalhando com APIs padrão, consultas de banco de dados e agentes de IA.