About McpServer
McpServer is a .NET MCP server that connects Ollama models with a book-management API. It is suited to AI applications that need book operations and model-generated responses through HTTP tools.
Key features
- 01Search books by title or author
- 02Create and update book records
- 03List Ollama models
- 04Generate responses with Ollama
- 05Check service connectivity
Use cases
- 01Search a book catalog by title or author
- 02Add or edit book records through tools
- 03Generate text with an available Ollama model
MCP support
Implements MCP and exposes tools through an HTTP API, including endpoints to list and execute tools. It connects to the books API and Ollama.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMcpServer
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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.