sillas/Experimentos-com-MCP
If you are the rightful owner of Experimentos-com-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This project implements a chat-based customer service system using the Model Context Protocol (MCP) in a client-server architecture.
Testes com MCP
Demonstração:
Descrição
Este projeto consiste na implementação de um sistema de atendimento via chat utilizando o padrão Cliente-Servidor com o protocolo MCP (Model Context Protocol).
O sistema simula o atendimento de uma concessionária, permitindo que um agente de IA converse com o usuário, consulte uma base de dados de veículos e forneça informações relevantes.
A estrutura é composta por dois componentes principais:
cars-client: Cliente MCP (chatbot)cars-server: Servidor MCP (consulta e geração de relatórios)
A comunicação entre cliente e servidor é feita via MCP utilizando o transporte stdio, ideal para ambiente local e seguro durante o desenvolvimento.
O projeto foi baseado na documentação oficial do protocolo MCP: 👉 https://modelcontextprotocol.io
OBSERVAÇÃO: Embora eu tenha adicionado alguns testes unitários, é evidente que eles não cobrem todo o projeto, pois isso levaria um tempo mais longo do que o aceitável para um teste rápido.
LLM utilizado
O modelo padrão utilizado nos testes foi o Claude-Haiku-3.5 da Anthropic. Outros modelos podem ser utilizados, desde que seja implementado o provedor correspondente em:
cars-client/src/client/providers/
O prompt que instrui o agente a agir como um vendedor está localizado em:
cars-client/src/strings/prompts.py
Logs
Logs de execução são gravados na raiz de cada serviço:
- Cliente:
cars-client/client_app.log - Servidor:
cars-server/server_app.log
Servidor MCP
Ferramentas implementadas
1. get_cars
Recebe queries estruturadas via MCP, realiza a busca no MongoDB e retorna os dados serializados.
- Banco de dados: MongoDB (pode ser substituído com modificações mínimas)
- Script de povoamento:
populate_db.py
# Comandos disponíveis
uv run populate_db.py p # Popula com 100 registros aleatórios
uv run populate_db.py c # Exibe o número de registros
uv run populate_db.py e # Apaga todos os registros
uv run populate_db.py d # Remove a coleção inteira
2. save_to_file
Gera um arquivo PDF com o conteúdo recebido e salva em um diretório definido no .env ou na raiz do projeto.
- Biblioteca usada:
fpdf
Cliente MCP
Simula um atendimento de concessionária, onde o usuário conversa com um agente que:
- Realiza consultas ao banco de dados via protocolo MCP
- Pode solicitar a geração de relatórios em PDF
Em um ambiente real, esses relatórios poderiam ser enviados por e-mail (funcionalidade não implementada).
Instalação
Instale a ferramenta uv:
# MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Configuração dos ambientes
Em cada serviço (cars-client e cars-server), siga os passos descritos em seus respectivos README.md.
Execução
Após configurar os ambientes virtuais:
# Ativar ambiente virtual (em cada diretório)
source .venv/Scripts/activate # Linux/macOS: .venv/bin/activate
Executar:
# Executar em cada diretório
uv run main.py