O Protocolo de Contexto do Modelo (MCP) é uma inovação que visa padronizar a forma como as aplicações fornecem contexto para os Modelos de Linguagem (LLMs). O MCP pode ser comparado a uma porta USB-C, que oferece uma maneira uniforme de conectar dispositivos a diferentes periféricos e acessórios, mas neste caso, conecta modelos de IA a várias fontes de dados e ferramentas.
As funcionalidades do MCP são suportadas pelo SDK de Agentes, permitindo que uma ampla gama de servidores MCP sejam utilizados para fornecer ferramentas aos Agentes. De acordo com a documentação do MCP, existem atualmente dois tipos de servidores definidos, dependendo do mecanismo de transporte utilizado: servidores stdio, que operam como subprocessos do aplicativo, e servidores HTTP sobre SSE, que funcionam remotamente através de uma URL.
Para exemplificar, ao utilizar o servidor de sistema de arquivos do MCP, a implementação seria a seguinte:
async with MCPServerStdio ( params = { "command" : "npx" , "args" : [ "-y" , "@modelcontextprotocol/server-filesystem" , samples_dir ], } ) as server : tools = await server . list_tools ()
Quando um Agente é executado, ele chama list_tools() no servidor MCP, tornando o LLM ciente das ferramentas disponíveis. Um exemplo de definição de um Agente seria:
agent = Agent ( name = "Assistant" , instructions = "Use the tools to achieve the task" , mcp_servers = [ mcp_server_1 , mcp_server_2 ] )
Entretanto, essa chamada para listar as ferramentas pode gerar latência, especialmente se o servidor for remoto. Para mitigar esse problema, é possível ativar um cache automático da lista de ferramentas, utilizando cache_tools_list=True em ambos MCPServerStdio e MCPServerSse, desde que se tenha certeza de que a lista não mudará.
Caso seja necessário invalidar o cache, a função invalidate_tools_cache() pode ser chamada nos servidores. Para aqueles que buscam exemplos completos e funcionais, é recomendável consultar a diretoria examples/mcp.
Além disso, o sistema de rastreamento do MCP captura automaticamente as operações realizadas, incluindo todas as interações com os servidores, garantindo assim um monitoramento eficiente das atividades.
Confira os últimos vídeos publicados no canal