tiagonpsilva/genai-mcp-server-demo
If you are the rightful owner of genai-mcp-server-demo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Este projeto demonstra uma implementação de servidor para o MCP (Mission Control Protocol).
Demonstração do Servidor MCP
Visão Geral
Este projeto demonstra uma implementação de servidor para o MCP (Mission Control Protocol). Ele fornece uma plataforma simples e eficiente para criar e gerenciar APIs baseadas em recursos e ferramentas através do protocolo MCP.
Este código foi baseado no MCP Python SDK, que é a implementação oficial do protocolo MCP para Python.
Funcionalidades
- Criação rápida de ferramentas via decorators Python
- Exposição de recursos dinâmicos com padrões de URL
- Integração fácil com sistemas existentes
- API intuitiva para desenvolvimento de serviços
Pré-requisitos
- Python 3.12 ou superior
- pip (gerenciador de pacotes Python)
Instalação
- Clone o repositório:
git clone https://github.com/seu-usuario/mcp-server-demo.git
cd mcp-server-demo
- Crie um ambiente virtual (opcional, mas recomendado):
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
- Instale as dependências:
pip install -e .
Uso
Executando o servidor
python -m server
O servidor estará rodando localmente e disponibilizará os endpoints definidos no arquivo server.py
.
Exemplos Básicos de Uso
Utilizando a ferramenta de adição
curl -X POST "http://localhost:8000/tools/add" -H "Content-Type: application/json" -d '{"a": 5, "b": 10}'
Obtendo uma saudação personalizada
curl -X GET "http://localhost:8000/resources/greeting/Maria"
Desenvolvimento
Estrutura do Projeto
mcp-server-demo/
├── server.py # Definição do servidor MCP
├── main.py # Ponto de entrada do aplicativo
├── tests/ # Testes automatizados
│ └── test_server.py # Testes para o servidor
├── pyproject.toml # Dependências e metadados do projeto
└── README.md # Esta documentação
Executando Testes
pytest
Pendências (To-Do)
- Bug nos testes: Há um problema conhecido nos testes automatizados que precisa ser corrigido. Os testes para integração com o cliente podem falhar devido a um problema de configuração do cliente de teste.
- Implementar testes adicionais para cobrir mais casos de uso
- Melhorar a documentação de API
Adicionando Novas Ferramentas
Para adicionar uma nova ferramenta ao servidor MCP, use o decorator @mcp.tool()
:
@mcp.tool()
def minha_ferramenta(parametro1: str, parametro2: int) -> str:
"""Descrição da minha ferramenta"""
return f"Resultado: {parametro1} - {parametro2}"
Adicionando Novos Recursos
Para adicionar um novo recurso, use o decorator @mcp.resource()
:
@mcp.resource("meu-recurso/{id}")
def obter_recurso(id: str) -> dict:
"""Obtém informações do recurso pelo ID"""
return {"id": id, "nome": f"Recurso {id}"}