语言模型工具集成系统

一个集成Model Context Protocol (MCP)、Ollama和.NET 9 API的项目,使语言模型能够通过标准化协议访问外部工具。

  • by ekamoto
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ekamoto/mcp-api-ollama

使用说明

MCP Ollama API - Sistema Completo

Um projeto integrado que combina Model Context Protocol (MCP) com Ollama e uma API .NET 9, permitindo que um modelo de linguagem acesse ferramentas externas através de um protocolo padronizado.

🏗️ Arquitetura do Sistema

┌────────────────────────────────────────────────────────────────┐
│                    chat.js (Cliente)                            │
│         - Interface de conversa interativa                      │
│         - Acessa ferramentas via MCP                            │
└──────────────┬─────────────────────────────────────────────────┘
               │
      ┌────────▼──────────────┐
      │   OLLAMA (LLM)        │
      │ llama3.1 ou llama2    │
      └────────┬──────────────┘
               │
      ┌────────▼──────────────────┐
      │   index.js (MCP Server)    │
      │  - Tool Provider           │
      │  - Integração com .NET API │
      └────────┬──────────────────┘
               │
    ┌──────────▼──────────────┐
    │   minha-api (.NET 9)    │
    │  - Weather Forecast     │
    │  - Endpoints customizados
    └─────────────────────────┘

📋 Estrutura do Projeto

mcp-ollama-api/
├── README.md                    # Este arquivo (visão geral)
│
├── mcp-api-gateway/             # Servidor MCP + Chat
│   ├── index.js                 # Servidor MCP
│   ├── chat.js                  # Cliente interativo
│   ├── client.js                # Cliente MCP de teste
│   ├── docker-compose.yml       # Orquestração Ollama
│   ├── package.json
│   └── README.md                # Documentação específica do MCP
│
└── minha-api/                   # API .NET 9
    ├── Program.cs
    ├── Controllers/
    ├── minha-api.csproj
    └── ...

🚀 Quick Start

Pré-requisitos

  • Docker e Docker Compose - para rodar Ollama
  • Node.js 20+ - para MCP gateway e chat
  • .NET 9 - para rodar a API

Verifique as versões instaladas:

docker --version
docker-compose --version
node --version
dotnet --version

1️⃣ Inicie o Ollama (Docker)

Na pasta mcp-api-gateway/:

cd mcp-api-gateway
docker-compose up -d --build

Isso vai subir o Ollama em http://localhost:11434 e baixar o modelo automaticamente.

Dica: Verifique o status:

docker-compose ps
docker-compose logs -f ollama

2️⃣ Inicie a API .NET 9

Em um novo terminal, na pasta minha-api/:

cd minha-api
dotnet run

A API vai rodar em https://localhost:7268 (ou a porta configurada em launchSettings.json).

Dica: Para verificar que está rodando:

curl https://localhost:7268/weatherforecast

3️⃣ Instale dependências do MCP Gateway

Em outro terminal, na pasta mcp-api-gateway/:

npm install

4️⃣ Inicie o Chat

Na mesma pasta:

node chat.js

Agora você pode interagir com o Ollama! Digite suas mensagens:

Chat iniciado. Digite algo (Ctrl+C para sair)

> qual é a previsão do tempo?

[Ollama consulta a ferramenta get_weatherforecast, que chama a API .NET 9]
[Assistente responde com os dados meteorológicos]

📚 Próximas Documentações

Documentações adicionais a serem criadas:

  • minha-api/README.md - Detalhes sobre endpoints, configurações e uso da API .NET 9

🛠️ Comandos Resumidos

Terminal 1 - Ollama + MCP

cd mcp-api-gateway
docker-compose up -d --build # Inicia Ollama
npm install                  # Instala dependências
node chat.js                 # Inicia servidor MCP + Chat

Terminal 2 - API .NET 9

cd minha-api
dotnet run                  # Inicia a API

Parar tudo

# Terminal 1
Ctrl+C                      # Para o chat/MCP
docker-compose down         # Para containers

# Terminal 2
Ctrl+C                      # Para a API .NET

🔄 Fluxo de Funcionamento

  1. Usuário digita mensagem no chat (chat.js)
  2. Ollama recebe a mensagem e processa com LLM
  3. Ollama identifica que precisa usar ferramenta → chama get_weatherforecast
  4. MCP Server (index.js) recebe a chamada
  5. MCP Server chama a API .NET 9 (minha-api)
  6. API .NET retorna dados meteorológicos
  7. MCP Server retorna resultado para Ollama
  8. Ollama gera resposta final
  9. Chat exibe resposta ao Usuário

🔧 Configurações Importantes

Portas Padrão

  • Ollama: http://localhost:11434
  • API .NET 9: https://localhost:7268 (dev)
  • MCP Server: stdio (comunicação local)

Variáveis de Ambiente

Crie um .env em mcp-api-gateway/ se necessário:

OLLAMA_API=http://localhost:11434
DOTNET_API=https://localhost:7268

🐛 Troubleshooting

Ollama não inicia

cd mcp-api-gateway
docker-compose logs ollama
docker-compose down -v
docker-compose build --no-cache
docker-compose up -d

API .NET não inicia

cd minha-api
dotnet clean
dotnet build
dotnet run

Chat não conecta

cd mcp-api-gateway
node client.js  # Teste conexão MCP

Porta já está em uso

Mude a porta em launchSettings.json (.NET) ou docker-compose.yml (Ollama)

📖 Recursos Úteis

🤝 Contribuindo

Sinta-se livre para fazer fork, abrir issues e enviar pull requests!

📄 Licença

MIT