MCP сервер для работы с локальной LLM Ollama. Позволяет интегрировать AI-модели в ваши проекты через стандартный MCP протокол.
| Инструмент | Описание |
|---|---|
chat |
Отправить запрос к модели и получить ответ |
chat_with_history |
Чат с поддержкой контекста (мультитурновый диалог) |
list_models |
Получить список установленных моделей |
pull_model |
Загрузить новую модель из registry |
get_model_info |
Получить информацию о модели (параметры, шаблон) |
embed_text |
Получить векторное представление текста |
delete_model |
Удалить модель из локального хранилища |
# Запуск контейнера с Ollama
docker compose up -d ollama
# Проверка что API работает
curl http://localhost:11434/api/tags# Загрузить Llama 3.2
docker exec ollama-server ollama pull llama3.2
# Или использовать скрипт
.\setup.bat# Создание виртуального окружения
python -m venv venv
venv\Scripts\activate
# Установка зависимостей
pip install -r requirements.txt
# Запуск MCP сервера
python server.pyСоздайте файл .env (скопируйте из .env.example):
# URL Ollama API
OLLAMA_BASE_URL=http://localhost:11434
# Модель по умолчанию
DEFAULT_MODEL=llama3.5
# Timeout для запросов (секунды)
REQUEST_TIMEOUT=120
# --- Cloud Models (OpenRouter / OpenAI-compatible)
# API ключ для cloud моделей
CLOUD_API_KEY=your_api_key_here
# Базовый URL cloud API
CLOUD_API_BASE_URL=https://openrouter.ai/api/v1
# Модель cloud по умолчанию
CLOUD_DEFAULT_MODEL=openai/gpt-4o-miniДля Docker: используйте
http://host.docker.internal:11434если MCP сервер работает в контейнере.
Если CLOUD_API_KEY и CLOUD_API_BASE_URL указаны, chat, chat_with_history и embed_text могут работать с cloud-моделями вида openai/gpt-4o-mini или anthropic/claude-3.5.
Добавьте в конфигурацию MCP клиента:
{
"mcpServers": {
"ollama": {
"command": "python",
"args": ["c:/Users/sergey.petrov/Documents/Project/MCP_server/server.py"],
"env": {
"OLLAMA_BASE_URL": "http://localhost:11434"
}
}
}
}Простой чат:
chat(prompt="Объясни что такое рекурсия", model="llama3.2", temperature=0.7)
Чат с историей:
chat_with_history(
messages='[
{"role": "system", "content": "Ты помощник разработчика"},
{"role": "user", "content": "Какие паттерны проектирования ты знаешь?"},
{"role": "assistant", "content": "Я знаю Singleton, Factory, Observer..."},
{"role": "user", "content": "Расскажи подробнее про Observer"}
]'
)
Список моделей:
list_models()
Загрузка модели:
pull_model(model_name="mistral")
Эмбеддинг текста:
embed_text(text="Это пример текста для векторизации", model="nomic-embed-text")
docker compose up -d ollamadocker compose up -d
# WebUI доступен на http://localhost:3000.\stop.bat
# или
docker compose downdocker compose down -vПопулярные модели для загрузки:
| Модель | Размер | Описание |
|---|---|---|
llama3.2 |
~2GB | Легковесная версия Llama, быстрее работает |
llama3.1 |
~4.7GB | Полная Llama от Meta |
mistral |
~4.1GB | Mistral 7B, хорошая для кода |
codellama |
~3.8GB | Специализирована для программирования |
phi3 |
~2.3GB | Компактная модель от Microsoft |
gemma2 |
~2.6GB | Лёгкая модель от Google |
nomic-embed-text |
~274MB | Для эмбеддингов (векторных представлений) |
Для использования GPU (NVIDIA) раскомментируйте секцию deploy в docker-compose.yml:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]Windows WSL2: GPU должен быть настроен автоматически через WSL2 GPU Paravirtualization.
MCP_server/
├── server.py # MCP сервер с инструментами
├── requirements.txt # Python зависимости
├── docker-compose.yml # Docker конфигурация
├── .env.example # Пример конфигурации
├── setup.bat # Скрипт установки
├── stop.bat # Скрипт остановки
└── README.md # Документация
// lib/ollama.ts
export async function askOllama(prompt: string) {
const response = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'llama3.5',
prompt,
stream: false
})
});
const data = await response.json();
return data.response;
}MCP сервер можно подключить к любому MCP-совместимому клиенту:
- Qwen Code
- Claude Desktop
- Cursor
- Continue (VS Code extension)
- И другие
Ollama не отвечает:
docker ps | grep ollama
docker logs ollama-serverМодель не загружается:
docker exec ollama-server ollama pull llama3.2Ошибка подключения из MCP:
- Проверьте что Ollama запущен:
curl http://localhost:11434/api/tags - Проверьте
OLLAMA_BASE_URLв.env