genai-mcp-server-demo

tiagonpsilva/genai-mcp-server-demo

3.1

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

  1. Clone o repositório:
git clone https://github.com/seu-usuario/mcp-server-demo.git
cd mcp-server-demo
  1. Crie um ambiente virtual (opcional, mas recomendado):
python -m venv venv
source venv/bin/activate  # No Windows: venv\Scripts\activate
  1. 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}"}