McpServer

by Adriano-Severino

261 downloads
Not rated
GitHub

Description

# 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…

About

# 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…

Details

Author
Adriano-Severino
Downloads
261
Categories
Other

- Book CRUD tools: create, read, update books via API.
- Ollama integration: list models and generate AI responses.
- Connectivity and configuration diagnostic utilities.
- HTTP API with OpenAPI documentation at /api/openapi.json.
- Docker Compose orchestration for single-command deployment.
- Works with Open WebUI for chat-based tool invocation.

Deploy using Docker Compose (recommended) or run locally with .NET 9. After startup, access the server at http://localhost:5500 and call tools via POST /api/execute. Integrate with Open WebUI by setting MCP_SERVER_URL environment variable.

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)

1. Clone o repositório:

   git clone https://github.com/Adriano-Severino/McpServer.git
cd McpServer

2. Execute o sistema usando Docker Compose:

   docker-compose up -d

3. Verifique se todos os serviços estão rodando:

   docker-compose ps

Método 2: Executando localmente (para desenvolvimento)

1. Clone o repositório:

   git clone https://github.com/Adriano-Severino/McpServer.git
cd McpServer

2. Execute o Ollama localmente ou via Docker:

   docker run -d -p 11434:11434 -v ollama_data:/root/.ollama --name ollama ollama/ollama

3. Execute a API de Livros:

   cd Livros
dotnet run

4. Configure as variáveis de ambiente para o McpServer:

   set OLLAMA_BASE_URL=http://localhost:11434
set API_BASE_ADDRESS=http://localhost:5000/api/

5. 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:

1. 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

2. Acesse o Open WebUI em: http://localhost:3000

3. Configure a conexão com o MCP Server:
- URL: http://localhost:5500/api/openapi.json

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:

1. Verifique se todos os contêineres estão em execução:

   docker-compose ps

2. Use a ferramenta de verificação de conectividade:

   // POST para http://localhost:5500/api/execute
{
"tool": "VerificarConectividade",
"parameters": {}
}

3. 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:

1. Verifique se o Ollama está em execução
2. Verifique se o modelo está disponível no Ollama:

   docker exec -it ollama ollama list

3. 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:

1. Faça um fork do repositório
2. Crie uma branch para sua feature (git checkout -b feature/nome-da-feature)
3. Faça commit das alterações (git commit -am 'Adiciona funcionalidade X')
4. Faça push para a branch (git push origin feature/nome-da-feature)
5. Crie um Pull Request

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.