Зачем подключать MCP к веб-интерфейсу? (И почему это не так просто)
Вы настроили локальную LLM через llama-server, запустили веб-интерфейс, и все работает. Но чего-то не хватает. Модель отвечает на вопросы, но не может узнать текущее время, поискать в интернете или прочитать файл с диска. Звучит знакомо?
MCP (Model Context Protocol) – это протокол, который позволяет LLM взаимодействовать с внешними инструментами. По сути, это глаза и руки для вашей модели. Но стандартный llama-server Web UI не имеет встроенной поддержки MCP. Вот и приходится изобретать велосипед.
В этой статье я покажу, как подключить MCP-серверы к llama-server Web UI. Не обещаю, что это будет в один клик, но после этого гайда вы сможете заставить свою локальную модель работать с временем, поиском, файловой системой и другими инструментами.
Важно: Этот гайд актуален на март 2026 года. Версии инструментов меняются, но принципы остаются. Используйте самые свежие релизы.
Что нам понадобится: инструменты и предварительные условия
Перед началом убедитесь, что у вас уже работает llama-server с веб-интерфейсом. Если нет, посмотрите мою статью про настройку llama.cpp RPC-server.
Из нового:
- uv – современный менеджер пакетов Python. Да, мы будем использовать Python, даже если llama-server на C++. Без паники.
- mcp-proxy – прокси-сервер, который соединяет MCP-серверы с клиентами.
- Парочка MCP-серверов для примера (например, сервер времени и поиска).
- Терпение и 15 минут свободного времени.
Если вы не знакомы с MCP, рекомендую сначала прочитать гайд по настройке MCP для локальных моделей.
1 Установка uv: новый стандарт для Python
uv – это быстрый менеджер пакетов Python, написанный на Rust. Он стал де-факто стандартом к 2026 году. Устанавливается одной командой.
curl -LsSf https://astral.sh/uv/install.sh | sh
После установки перезагрузите терминал или выполните:
source ~/.bashrc # или ~/.zshrc, в зависимости от оболочки
Проверьте установку:
uv --version
Должна появиться версия, например, uv 0.3.0 (или новее).
2 Установка и запуск mcp-proxy
mcp-proxy – это ключевой компонент. Он выступает посредником между MCP-серверами и клиентами (в нашем случае, llama-server Web UI). Установим его с помощью uv.
Создадим виртуальное окружение и установим mcp-proxy:
mkdir mcp-proxy && cd mcp-proxy
uv venv
source .venv/bin/activate
uv pip install mcp-proxy
Теперь запустим proxy. Но сначала нам нужны MCP-серверы. Для примера возьмем два простых сервера: время и поиск. Установим их:
uv pip install mcp-server-time mcp-server-search
Теперь создадим конфигурационный файл для proxy. Назовите его config.json:
{
"servers": [
{
"name": "time",
"command": "uv",
"args": ["run", "mcp-server-time"]
},
{
"name": "search",
"command": "uv",
"args": ["run", "mcp-server-search"]
}
],
"port": 8000
}
Запустим proxy с этим конфигом:
uv run mcp-proxy --config config.json
Если все хорошо, вы увидите сообщение, что proxy запущен на порту 8000 и подключил серверы.
Внимание: Если порт 8000 занят, измените его в конфиге. И помните, что proxy должен работать постоянно, пока вы используете MCP.
3 Настройка llama-server Web UI для работы с MCP
Теперь нужно сказать llama-server Web UI о том, что есть MCP proxy. К сожалению, веб-интерфейс не имеет графической настройки для этого. Придется лезть в конфигурационные файлы.
Найдите конфигурационный файл llama-server. Обычно он называется config.yaml или settings.json и находится в директории с llama-server. Если вы используете стандартную установку, посмотрите в ~/.llama-server/ или в директории, откуда запускаете сервер.
Откройте конфиг и добавьте секцию для MCP. Пример для config.yaml:
# Другие настройки llama-server
model: "путь/к/модели"
# ... остальные параметры ...
mcp:
enabled: true
proxy_url: "http://localhost:8000"
tools: ["time", "search"] # имена серверов из config.json proxy
Если ваш конфиг в формате JSON:
{
"model": "путь/к/модели",
"mcp": {
"enabled": true,
"proxy_url": "http://localhost:8000",
"tools": ["time", "search"]
}
}
Сохраните конфиг и перезапустите llama-server. Убедитесь, что mcp-proxy все еще работает.
Теперь в веб-интерфейсе, при запросе к модели, она должна иметь доступ к инструментам MCP. Попробуйте спросить: "Который сейчас час?" или "Найди информацию о MCP".
4 Тестирование подключения
После перезапуска llama-server, откройте веб-интерфейс (обычно по адресу http://localhost:8080 или другому, в зависимости от вашей настройки).
Создайте новый чат и спросите модель что-то, что требует внешнего инструмента. Например:
- "Скажи, сколько сейчас времени в Лондоне?"
- "Поищи последние новости о локальных LLM"
Если модель отвечает с использованием данных из MCP-серверов, все работает. Если нет, проверьте логи.
Логи llama-server должны показывать, что MCP подключен. Логи mcp-proxy покажут запросы к серверам.
Для отладки, можно использовать curl чтобы проверить proxy:
curl http://localhost:8000/tools
Должен вернуться список доступных инструментов.
Возможные ошибки и как их исправить
В теории все просто, но на практике всегда что-то идет не так. Вот частые проблемы:
| Ошибка | Причина | Решение |
|---|---|---|
| MCP proxy не запускается | Порт занят или отсутствуют зависимости | Измените порт в config.json. Убедитесь, что uv и серверы установлены правильно. |
| Llama-server не видит MCP | Неправильный формат конфига или устаревшая версия | Проверьте синтаксис конфига. Обновите llama-server до версии, поддерживающей MCP. |
| Модель не использует инструменты | Модель не обучена для использования инструментов или неправильные имена | Убедитесь, что в конфиге llama-server в tools указаны правильные имена из proxy. Некоторые модели требуют тонкой настройки. |
| Ошибки при запросе к инструментам | MCP-серверы не отвечают или возвращают ошибки | Проверьте логи mcp-proxy. Убедитесь, что серверы запускаются правильно. Возможно, нужно настроить API ключи для поиска и т.д. |
Частые вопросы (FAQ)
Можно ли использовать другие MCP-серверы?
Конечно. Есть серверы для файловой системы, баз данных, API и т.д. Установите их через uv и добавьте в config.json mcp-proxy. Только убедитесь, что llama-server знает об их именах.
А если я не хочу использовать uv?
uv рекомендован, но можно использовать pip и virtualenv. Однако uv быстрее и проще. Если вы настаиваете, замените uv run на python -m в конфиге proxy.
Llama-server Web UI не имеет настроек MCP в интерфейсе. Это нормально?
Да, к сожалению, графического интерфейса для MCP нет. Придется редактировать конфиг вручную. Если вы используете другие веб-интерфейсы, процесс может отличаться.
MCP proxy должен работать на том же компьютере?
Не обязательно. Можно запустить proxy на другом сервере и указать его URL в конфиге llama-server. Но тогда нужно обеспечить сетевую доступность.
Что дальше?
После настройки базовых MCP-серверов, можно расширять функциональность. Например, подключить сервер для работы с файлами, чтобы модель могла читать и писать документы. Или сервер для управления системой, как в статье про автоматизацию с MCP.
Если вы планируете использовать несколько MCP-серверов в разных проектах, посмотрите MCP Hangar для централизованного управления.
И помните: MCP – это мощный протокол, но он все еще развивается. Возможно, к моменту чтения этой статьи, llama-server Web UI уже имеет встроенную поддержку MCP. Но если нет, этот гайд поможет вам не ждать, а сделать все самостоятельно.
Совет напоследок: Если вы работаете в команде, настройте mcp-proxy как системный сервис, чтобы он запускался автоматически. И не забудьте про безопасность: не выставляйте proxy в интернет без аутентификации.
Удачи в эксперименте с локальным AI! Если что-то не работает – пишите в комментариях, постараюсь помочь.