# 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](https://github.com/modelcontextprotocol/python-sdk?tab=readme-ov-file#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 1. Clone o repositório: ```bash git clone https://github.com/seu-usuario/mcp-server-demo.git cd mcp-server-demo ``` 2. Crie um ambiente virtual (opcional, mas recomendado): ```bash python -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate ``` 3. Instale as dependências: ```bash pip install -e . ``` ## Uso ### Executando o servidor ```bash 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 ```bash curl -X POST "http://localhost:8000/tools/add" -H "Content-Type: application/json" -d '{"a": 5, "b": 10}' ``` #### Obtendo uma saudação personalizada ```bash 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 ```bash 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()`: ```python @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()`: ```python @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}"} ```