MCP-USE: Ferramenta Open Source para Conectar LLMs a Servidores MCP

Estou pesquisando sobre MCP utilizando o stack Python + FastAPI + FastMCP e desenvolvi diversos servidores MCP locais. Durante a preparação para deploy, encontrei o mcp-use, que simplifica a hospedagem e gerenciamento de servidores MCP.

O mcp-use é uma biblioteca Python open source que conecta qualquer LLM a servidores MCP, eliminando dependências de clientes proprietários. Esta ferramenta resolve os desafios de integração de ferramentas na construção de agentes de IA, permitindo que desenvolvedores conectem LLMs a funcionalidades como navegação web e manipulação de arquivos.

O que é mcp-use

O mcp-use é uma ponte entre LLMs e servidores MCP, habilitando a criação de agentes customizados com acesso a ferramentas externas.

Principais vantagens

  • Código aberto: Sem dependências de soluções fechadas
  • Compatibilidade: Funcionna com provedores LangChain (OpenAI, Anthropic, Groq)
  • Configuração simples: JSON para conectar servidores MCP
  • API intuitiva: Cria agentes com poucas linhas de código

Funcionalidades

Flexibilidade de modelos

  • Suporte aos principais modelos de linguagem

Opções de conexão

  • Stdio: Entrada e saída padrão
  • HTTP: Conexão a portas específicas
  • SSE: Eventos do sevridor
  • Sandbox: Execução via E2B

Recursos avançados

  • Múltiplos servidores simultâneos
  • Seleção dinâmica de servidor
  • Controle de acesso a ferramentas
  • Streaming de execução
  • Modo debug detalhado

Gerenciamento de configuração

  • Arquivos JSON
  • Dicionários Python
  • Variáveis de ambiente
  • Opções flexíveis de servidor

Como usar mcp-use

Instalação

pip install mcp-use
pip install langchain-openai
pip install langchain-anthropic
pip install "mcp-use[e2b]"

Exemplo básico

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from mcp_use import MCPAgent, MCPClient

async def main():
    load_dotenv()
    
    config = {
        "mcpServers": {
            "playwright": {
                "command": "npx",
                "args": ["@playwright/mcp@latest"],
                "env": {"DISPLAY": ":1"}
            }
        }
    }
    
    client = MCPClient.from_dict(config)
    llm = ChatOpenAI(model="gpt-4o")
    agent = MCPAgent(llm=llm, client=client, max_steps=30)
    
    resultado = await agent.run(
        "Quais são as comidas típicas de São Paulo?"
    )
    print(f"Resultado: {resultado}")

if __name__ == "__main__":
    asyncio.run(main())

Usando arquivo de configuração

Crie mcp-config.json:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"],
      "env": {"DISPLAY": ":1"}
    },
    "airbnb": {
      "command": "npx",
      "args": ["-y", "@openbnb/mcp-server-airbnb"]
    }
  }
}

Carregue no código:

client = MCPClient.from_config_file("mcp-config.json")

Streaming de saída

async for chunk in agent.astream("O que visitar no Rio de Janeiro?"):
    print(chunk["messages"], end="", flush=True)

Controle de acesso a ferramentas

agent = MCPAgent(
    llm=llm,
    client=client,
    disallowed_tools=["get_Personal"]
)

Modo debug

import mcp_use
mcp_use.set_debug(2)

Tags: MCP Python LLM OpenAI LangChain

Publicado em 7-15 22:29