mcpx: Advanced Tool Use для локальных LLM, экономия 40K токенов | AiManual
AiManual Logo Ai / Manual.
19 Янв 2026 Инструмент

Как заставить локальные модели работать умнее: mcpx и экономия 40K токенов контекста

Практическое руководство по реализации паттерна Anthropic Advanced Tool Use с mcpx для локальных моделей. Экономьте 40K токенов контекста, избегайте перегрузки

Проблема, которая сводит с ума: MCP-серверы жрут контекст как голодные свиньи

Вы настраиваете локальную модель через KoboldCpp с MCP или LM Studio MCP. Подключаете инструменты: файловую систему, поиск в интернете, базу данных. И тут начинается кошмар.

Каждый MCP-сервер присылает в контекст десятки тысяч токенов описаний своих инструментов. Файловый сервер — 15K токенов. Поисковый — 12K. SQL-клиент — еще 8K. В сумме легко набирается 40-50K токенов, которые просто лежат мертвым грузом в каждом промпте. А ведь это 80% вашего контекста для 128K моделей!

Типичная ошибка: загружать все инструменты сразу. Модель получает 40K токенов мусора и не может нормально думать. Результат — деградация качества ответов, потеря логики, бессмысленные повторения.

Anthropic знала ответ, но держала его при себе

В документации Claude API есть паттерн Advanced Tool Use. Суть проста: не грузи все инструменты сразу. Дай модели сначала понять задачу, а потом спроси: "Какие инструменты тебе нужны?" И только тогда загрузи их описания.

Звучит логично, правда? Но Anthropic не удосужилась сделать это для MCP. Их Model Context Protocol отлично работает в теории, но на практике превращается в машину по сжиганию токенов.

Локальные модели страдают сильнее всех. У них и так ограниченный контекст, а тут еще 40K токенов на инструменты, которые не используются в 90% запросов.

mcpx: баш-скрипт, который решает проблему за 5 минут

Встречайте mcpx — утилиту, которая реализует паттерн Advanced Tool Use для любых локальных моделей. Работает с любым MCP-хостом: KoboldCpp, LM Studio, Ollama, даже с самописными решениями.

💡
mcpx не требует изменений в коде модели или MCP-серверов. Это прокси-слой, который сидит между вашим клиентом и инструментами, фильтруя ненужные описания.

1 Установка: проще, чем кажется

Клонируем репозиторий и ставим зависимости:

git clone https://github.com/yourusername/mcpx.git
cd mcpx
pip install -r requirements.txt
chmod +x mcpx.sh

Никаких сложных зависимостей. Только стандартный Python и пара библиотек для работы с JSON.

2 Настройка MCP-серверов

Создаем конфигурационный файл servers.json:

{
  "servers": [
    {
      "name": "filesystem",
      "command": "npx",
      "args": ["@modelcontextprotocol/server-filesystem", "/home/user/documents"]
    },
    {
      "name": "duckduckgo",
      "command": "npx",
      "args": ["@modelcontextprotocol/server-duckduckgo-search"]
    },
    {
      "name": "sqlite",
      "command": "python",
      "args": ["sqlite_server.py", "database.db"]
    }
  ]
}

Здесь мы определяем три сервера, но они не запускаются сразу. mcpx будет стартовать их только по требованию.

3 Запуск прокси

Запускаем mcpx как прокси для вашего MCP-хоста:

./mcpx.sh --port 3000 --config servers.json --model-endpoint http://localhost:1234

Теперь вместо прямого подключения к MCP-серверам, ваш клиент (KoboldCpp, LM Studio) подключается к mcpx на порту 3000.

Как это работает на практике: магия ленивой загрузки

Представьте сценарий: вы просите модель "Найди информацию о последних новостях в IT".

Без mcpx С mcpx
Загружаются все 3 сервера (40K токенов) Загружается только список доступных серверов (500 токенов)
Модель видит инструменты для файлов, поиска, SQL Модель видит только названия: "filesystem", "duckduckgo", "sqlite"
Контекст переполнен, качество ответов падает Контекст чист, модель думает только о задаче

Модель анализирует задачу и говорит: "Мне нужен поисковой сервер". mcpx получает этот запрос, запускает только duckduckgo-сервер, загружает его инструменты (12K токенов вместо 40K) и передает модели.

Экономия: 28K токенов на одном запросе. За день работы с автоматизированным агентом это сотни тысяч сэкономленных токенов.

Бонус: интеллектуальное кэширование инструментов

mcpx не просто лениво загружает инструменты. Он их кэширует. Если модель второй раз запросит тот же сервер, инструменты берутся из кэша, а не перезагружаются.

Но есть нюанс: некоторые MCP-серверы динамически меняют список инструментов в зависимости от состояния. Например, файловый сервер может показывать разные инструменты для разных директорий.

mcpx умеет обнаруживать такие серверы и отключать для них кэширование. Файловый сервер всегда загружается свежим, поисковый — кэшируется.

Сравнение с альтернативами: почему не подходят другие решения

Вы могли слышать про mcp-context-proxy. Он решает похожую проблему, но по-другому. Вместо ленивой загрузки он пытается обрезать описания инструментов, удаляя "лишние" детали.

Проблема в том, что он часто удаляет важные части. Модель получает урезанное описание, не понимает, как правильно использовать инструмент, и выдает ошибки.

Решение Принцип работы Проблемы
mcp-context-proxy Обрезает описания инструментов Теряет важную информацию, вызывает ошибки
Ручная фильтрация Самостоятельно выбираете инструменты Трудоемко, требует перезапуска при смене задачи
mcpx Ленивая загрузка по требованию Требует настройки конфигурации

Для кого mcpx станет спасением

  • Разработчики локальных агентов, которые используют небольшие модели вроде AgentCPM-Explore с ограниченным контекстом
  • Исследователи, тестирующие разные комбинации инструментов и не желающие каждый раз перезагружать 40K токенов
  • Пользователи KoboldCpp и LM Studio, которые устали от деградации качества при подключении MCP-серверов
  • Те, кто работает с длинными документами через файловые MCP-серверы и не может позволить себе тратить контекст на описания инструментов

Ограничения, о которых нужно знать заранее

mcpx не волшебная таблетка. Есть нюансы:

  1. Задержка при первом запросе: запуск MCP-сервера занимает 1-3 секунды. Последующие запросы к тому же серверу быстрые
  2. Требует настройки: нужно правильно описать все серверы в конфигурации
  3. Несовместимость с некоторыми клиентами: если ваш MCP-клиент ожидает сразу все инструменты, а не запрашивает их по мере необходимости, mcpx не поможет

Что дальше: будущее умных инструментов для локальных LLM

mcpx — только первый шаг. Следующая версия будет анализировать не только какие инструменты нужны, но и как их использовать наиболее эффективно.

Представьте: модель запрашивает поиск в интернете. mcpx видит, что предыдущие 5 поисковых запросов возвращали слишком много результатов. Он автоматически добавляет в инструмент параметр "max_results: 5", экономя еще несколько тысяч токенов на выводе.

Или другой сценарий: вы работаете с GLM-4.7 Flash через MCP. Модель часто ошибается в формате вызова инструментов. mcpx учится на этих ошибках и автоматически корректирует запросы, прежде чем отправить их серверу.

💡
Самый неочевидный совет: используйте mcpx даже если у вас модель с большим контекстом. Экономия токенов — это не только возможность обрабатывать больше текста, но и снижение нагрузки на GPU, увеличение скорости генерации, уменьшение вероятности ошибок из-за переполнения контекста.

Пока Anthropic размышляет, как улучшить MCP для корпоративных клиентов, сообщество open-source уже решает реальные проблемы. mcpx — один из таких решений. Не идеальный, но работающий здесь и сейчас.

Попробуйте. Ваши локальные модели скажут спасибо.