LLM Sandbox MCP
MCP-сервер LLM Sandbox: агент запускает код на семи языках в контейнере Docker, Podman или Kubernetes и получает графики.
- 1 143 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Выполняет код, присланный моделью, в контейнере; изоляция зависит от бэкенда и прав сокета Docker.
- Устанавливает пакеты и может обращаться к сети из контейнера.
Установка
- Работает в
Ручная установка
pip install 'llm-sandbox[mcp-docker]'Для Podman используйте `[mcp-podman]`, для Kubernetes `[mcp-k8s]`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Выполняет код, присланный моделью, в контейнере; изоляция зависит от бэкенда и прав сокета Docker.
- Устанавливает пакеты и может обращаться к сети из контейнера.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
LLM Sandbox — библиотека для безопасного запуска кода, который написала языковая модель. Ее MCP-сервер дает ассистенту три инструмента. `execute_code` принимает код, язык (Python, JavaScript, Java, C++, Go, R, Ruby), список пакетов для установки и таймаут, по умолчанию 30 секунд. `get_supported_languages` перечисляет языки, `get_language_details` описывает один из них: версию, менеджер пакетов, примеры. Рисунки и графики, созданные кодом, сервер собирает и возвращает вместе с выводом. Изоляцию дает выбранный бэкенд: Docker по умолчанию, Podman или Kubernetes. Его задает переменная `BACKEND`, а вместе с ней ставят дополнение `llm-sandbox[mcp-docker]`, `[mcp-podman]` или `[mcp-k8s]`. Лимиты процессора и памяти берутся из переменных окружения вроде `SANDBOX_CPUS`.
Для кого. Разработчикам агентов и аналитикам, которым нужен запуск кода от модели в отдельном контейнере: расчеты, графики, проверка гипотез.
Подходит, если
- Агент считает статистику по данным и возвращает график вместе с таблицей.
- Нужно проверить фрагмент на Go или Ruby без установки языка на машину.
- Для запуска код требует сторонних пакетов, и сервер ставит их внутри контейнера.
- Платформа выдает агентам запуск кода в Kubernetes с лимитами ресурсов.
Не подходит, если
- Нужен прямой доступ к файлам проекта: контейнер видит только свое содержимое.
- На машине нет Docker, Podman или Kubernetes.
- Код нужно запускать прямо на хосте без изоляции.
Пример запроса к агенту
Посчитай среднее и медиану для этого набора чисел на Python в песочнице и верни график распределения.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
BACKEND- Бэкенд контейнеров: docker, podman или kubernetes, по умолчанию docker.
DOCKER_HOST- Адрес сокета Docker или Podman.
COMMIT_CONTAINER- Сохранять состояние контейнера между вызовами, по умолчанию false.
Ограничения
Код, который прислал клиент, считается недоверенным, поэтому сохранение состояния между запросами выключено: `COMMIT_CONTAINER=false`. Если включить, образ коммитится под отдельным тегом, и только Docker с Micromamba это поддерживают. `KEEP_TEMPLATE=true` оставляет базовый образ между запросами и экономит загрузку. Сервер обращается к сокету контейнерного движка (`DOCKER_HOST`), а это широкий доступ к машине, поэтому ограничьте права. Для Kubernetes нужен `KUBECONFIG`, свой манифест пода через MCP не задать.
Как отключить. Удалите запись llm-sandbox из MCP-конфигурации и пакет командой `pip uninstall llm-sandbox`. Образы и контейнеры, которые создал сервер, удаляются средствами Docker, Podman или Kubernetes.
Частые вопросы
Как подключить LLM Sandbox к Claude Desktop?
Поставьте `pip install 'llm-sandbox[mcp-docker]'` и добавьте в `claude_desktop_config.json` сервер `llm-sandbox` с командой `python3`, аргументами `-m llm_sandbox.mcp_server.server` и переменными `BACKEND` и `DOCKER_HOST`.
Как выбрать бэкенд?
Переменная `BACKEND` принимает `docker`, `podman` или `kubernetes`, и значение должно совпадать с установленным дополнением (`mcp-docker`, `mcp-podman`, `mcp-k8s`). Для Podman укажите сокет в `DOCKER_HOST`, для Kubernetes путь к `KUBECONFIG`.
Сохраняются ли установленные пакеты между вызовами?
Нет, по умолчанию контейнер не коммитится. Чтобы пакеты переживали вызовы, включите `COMMIT_CONTAINER=true`: образ сохранится под отдельным тегом вида `llm-sandbox-mcp/<язык>:<хеш>`.
Какие языки доступны?
Python, JavaScript, Java, C++, Go, R и Ruby. Их список и подробности отдают `get_supported_languages` и `get_language_details`.
Как ограничить ресурсы контейнера?
Через переменные окружения, например `SANDBOX_CPUS` и `SANDBOX_CPU_COUNT` для процессора. Сервер превращает их в настройки среды выполнения каждой сессии.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыМост MCP и LSP: агент получает типы, ссылки, диагностику и рефакторинг от языковых серверов, например Pyright.
Мост между языковым сервером LSP и агентом: определения, ссылки, диагностика, подсказки и переименование символов
Локальная песочница для ИИ-агентов: они запускают код и действия в изолированном контейнере, доступном через MCP
Отладчик без среды разработки: агент ставит точки останова, шагает по коду и смотрит переменные в десяти языках
MCP-проверка синтаксиса BSL
1C Syntax Checker
MCP-сервер проверки синтаксиса BSL на BSL Language Server в Docker: передаете код, получаете JSON с ошибками и предупреждениями без установки Java
MCP-сервер agent-lsp собирает языковые серверы в связки для агента: вызовы, безопасная правка, переименование, диагностика.
Коротко о README
MCP-сервер входит в пакет `llm-sandbox` и работает с обеими мажорными версиями Python MCP SDK. Основной продукт репозитория — библиотека с общим API для контейнерных и локальных песочниц Linux и Windows.