Skip to content

NivioP/mcp-python-demo

Repository files navigation

MCP - Exemplos de Uso com LLM, Agentes e Ferramentas MCP

Este repositório foi utilizado em uma apresentação para demonstrar, de forma prática, como funciona o Model Context Protocol (MCP) e sua integração com agentes e LLMs. Ele contém exemplos progressivos, começando de uma chamada básica a um LLM, passando por um agente simples com ferramentas, até um agente que utiliza ferramentas expostas via MCP.

Sumário


Visão Geral

O objetivo deste repositório é mostrar, de forma didática, a evolução do uso de LLMs:

  1. Chamada simples a um LLM (simple_llm.py): interação direta com o modelo da OpenAI.
  2. Agente com ferramentas locais (simple_agent.py): agente que pode executar funções Python como ferramentas.
  3. Agente com ferramentas MCP (agent_with_mcp.py + mcp_server.py): agente que utiliza ferramentas expostas por um servidor MCP, mostrando o potencial de integração e expansão do ecossistema de agentes.

Estrutura dos Exemplos

1. Chamada Simples ao LLM

Arquivo: simple_llm.py

  • Faz uma chamada direta ao modelo GPT-4o da OpenAI.
  • Recebe input do usuário e retorna a resposta do modelo.
  • Exemplo didático para mostrar o funcionamento básico de um LLM.

2. Agente Simples com Ferramentas

Arquivo: simple_agent.py

  • Cria um agente usando LangChain e LangGraph.
  • Define duas ferramentas:
    • get_current_datetime: retorna a data/hora atual.
    • read_computer_file: lê o conteúdo de um arquivo local (Exemplo_arquivo_texto.md).
  • O agente pode decidir quando usar cada ferramenta, conforme a necessidade da conversa.

3. Agente com Ferramentas MCP

Arquivos: agent_with_mcp.py e mcp_server.py

  • mcp_server.py expõe ferramentas via MCP:
    • add: soma dois números.
    • multiply: multiplica dois números.
    • weather: busca o clima atual de uma cidade usando a API OpenWeather.
  • agent_with_mcp.py conecta-se ao servidor MCP, carrega as ferramentas e cria um agente que pode utilizá-las dinamicamente.
  • Importante: Ao rodar o agent_with_mcp.py, o próprio agente inicializa o servidor MCP automaticamente. Não é necessário rodar o mcp_server.py separadamente.

Como rodar

1. Instale as dependências

Crie um ambiente virtual (opcional, mas recomendado):

python3 -m venv venv
source venv/bin/activate

Instale os pacotes necessários:

pip install -r requirements.txt

Observação:

  • Você precisará de uma chave de API da OpenAI (OPENAI_API_KEY) e, para o exemplo de clima, uma chave da OpenWeather (WEATHER_API_KEY).
  • Crie um arquivo .env na raiz do projeto com as variáveis:
    OPENAI_API_KEY=...
    WEATHER_API_KEY=...
    

2. Execute os exemplos

Chamada simples ao LLM

python simple_llm.py

Agente simples com ferramentas

python simple_agent.py

Agente com ferramentas MCP

Basta rodar o agente, que ele já inicializa o servidor MCP automaticamente:

python agent_with_mcp.py

Integração com Outros Softwares de Agentes

O servidor MCP deste repositório também pode ser utilizado com outros softwares de agentes, como o Cursor e o Claude Desktop. Para isso:

  1. Configure o caminho do arquivo mcp_server.py nas configurações de MCP desses softwares (normalmente na seção de "MCP Servers" ou "Ferramentas externas").
  2. Execute o servidor MCP manualmente no terminal:
python mcp_server.py
  1. O software de agente (Cursor, Claude Desktop, etc.) irá se conectar ao MCP e poderá utilizar as ferramentas expostas pelo servidor.

Assim, você pode expandir as capacidades desses agentes com as ferramentas personalizadas que criar no MCP deste repositório!


Sobre o MCP

O Model Context Protocol (MCP) é um padrão aberto que permite expor ferramentas externas para agentes de IA, ampliando drasticamente o que LLMs podem fazer. Com MCP, é possível conectar agentes a APIs, bancos de dados, sistemas de arquivos, e muito mais, de forma padronizada.

Neste repositório, mostramos como criar e consumir ferramentas MCP usando Python, LangChain e LangGraph.


Créditos

  • Exemplos criados para fins didáticos na disciplina do CEIA.
  • Baseados em tecnologias OpenAI, LangChain, LangGraph e MCP.

Se precisar de mais detalhes ou quiser expandir os exemplos, fique à vontade para contribuir!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages