Adriano-Severino/McpServer
If you are the rightful owner of McpServer 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.
McpServer is a comprehensive solution for integrating AI models with a book management API using the Model Context Protocol (MCP).
McpServer
Um servidor de implementação do Model Context Protocol (MCP) para integração com modelos de IA e gerenciamento de livros.
Visão Geral
O McpServer é uma solução completa para integrar modelos de IA do Ollama com uma API de gerenciamento de livros. O projeto implementa o protocolo MCP (Model Context Protocol) e oferece uma interface HTTP para execução de ferramentas via API.
O sistema é composto por três componentes principais:
- McpServer: Implementação do protocolo MCP em .NET
- Livros API: API para gerenciamento de dados de livros
- Ollama: Serviço para execução de modelos de IA
Requisitos do Sistema
- Docker e Docker Compose
- .NET 9.0 (para desenvolvimento)
- Pelo menos 8GB de RAM (recomendado 16GB para modelos de IA maiores)
- 10GB de espaço em disco
Instalação e Execução
Método 1: Usando Docker Compose (Recomendado)
-
Clone o repositório:
git clone https://github.com/Adriano-Severino/McpServer.git cd McpServer
-
Execute o sistema usando Docker Compose:
docker-compose up -d
-
Verifique se todos os serviços estão rodando:
docker-compose ps
Método 2: Executando localmente (para desenvolvimento)
-
Clone o repositório:
git clone https://github.com/Adriano-Severino/McpServer.git cd McpServer
-
Execute o Ollama localmente ou via Docker:
docker run -d -p 11434:11434 -v ollama_data:/root/.ollama --name ollama ollama/ollama
-
Execute a API de Livros:
cd Livros dotnet run
-
Configure as variáveis de ambiente para o McpServer:
set OLLAMA_BASE_URL=http://localhost:11434 set API_BASE_ADDRESS=http://localhost:5000/api/
-
Execute o McpServer:
cd McpServer dotnet run
Uso do Sistema
Uma vez que o sistema esteja em execução, você pode acessar:
Endpoints da API
-
Servidor MCP: http://localhost:5500
- Lista de ferramentas: http://localhost:5500/api/tools
- Documento OpenAPI: http://localhost:5500/api/openapi.json
- Execução de ferramentas: http://localhost:5500/api/execute (POST)
-
API de Livros: http://localhost:5000
- API REST para gerenciamento de livros
Integração com Open WebUI
Para integrar com o Open WebUI:
-
Inicie o Open WebUI (se não estiver usando o docker-compose completo):
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://localhost:11434 -e MCP_SERVER_URL=http://localhost:5500 ghcr.io/open-webui/open-webui:cuda
-
Acesse o Open WebUI em: http://localhost:3000
-
Configure a conexão com o MCP Server:
Ferramentas Disponíveis
O MCP Server oferece as seguintes ferramentas:
Gerenciamento de Livros
- ObterAsync: Buscar livros com filtro opcional por título
- ObterPorAutor: Buscar livros com filtro por autor
- CadastrarAsync: Criar/cadastrar um novo livro
- AtualizarAsync: Atualizar dados de um livro existente
Integração com Ollama
- ListModels: Lista os modelos disponíveis no Ollama
- GenerateResponse: Gera uma resposta usando um modelo do Ollama
Utilidades do Sistema
- VerificarConectividade: Verifica a conectividade entre os componentes
- ExibirConfiguracao: Exibe as configurações de conexão do MCP Server
Exemplos de Uso
Exemplo 1: Listar Livros
// POST para http://localhost:5500/api/execute
{
"tool": "ObterAsync",
"parameters": {
"titulo": "O Senhor dos Anéis"
}
}
Exemplo 2: Cadastrar um Livro
// POST para http://localhost:5500/api/execute
{
"tool": "CadastrarAsync",
"parameters": {
"livro": {
"titulo": "O Hobbit",
"autor": "J.R.R. Tolkien",
"anoPublicacao": 1937,
"genero": "Fantasia"
}
}
}
Exemplo 3: Gerar Resposta com Ollama
// POST para http://localhost:5500/api/execute
{
"tool": "GenerateResponse",
"parameters": {
"model": "llama3",
"prompt": "Escreva um resumo sobre O Senhor dos Anéis"
}
}
Configuração
Variáveis de Ambiente
- OLLAMA_BASE_URL: URL base para o serviço Ollama (padrão: http://ollama:11434)
- API_BASE_ADDRESS: Endereço base da API de Livros (padrão: http://livros-api:5000/api/)
Solução de Problemas
Problemas de Conectividade
Se encontrar problemas de conectividade entre os serviços:
-
Verifique se todos os contêineres estão em execução:
docker-compose ps
-
Use a ferramenta de verificação de conectividade:
// POST para http://localhost:5500/api/execute { "tool": "VerificarConectividade", "parameters": {} }
-
Verifique os logs dos contêineres:
docker-compose logs mcpserver docker-compose logs livros-api docker-compose logs ollama
Problemas com Modelos Ollama
Se os modelos não estiverem carregando:
- Verifique se o Ollama está em execução
- Verifique se o modelo está disponível no Ollama:
docker exec -it ollama ollama list
- Baixe um modelo se necessário:
docker exec -it ollama ollama pull llama3
Arquitetura do Sistema
┌─────────────┐ ┌──────────────┐ ┌───────────┐
│ Open WebUI │────►│ MCP Server │────►│ Ollama │
└─────────────┘ └──────────────┘ └───────────┘
│
▼
┌──────────────┐
│ Livros API │
└──────────────┘
Desenvolvimento
Para contribuir com o projeto:
- Faça um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/nome-da-feature
) - Faça commit das alterações (
git commit -am 'Adiciona funcionalidade X'
) - Faça push para a branch (
git push origin feature/nome-da-feature
) - Crie um Pull Request