ToolHive: как безопаснее запускать MCP-серверы для Claude, Codex и Cursor
MCP-сервер — это не просто «ещё один плагин для нейросети». Он может получить доступ к файлам, сети, GitHub, БД, облачным API и локальным credentials. ToolHive добавляет между AI-клиентом и MCP-сервером отдельный runtime: запускает сервер в контейнере, управляет разрешениями, secrets, network isolation, proxy, registry и подключением к Claude Code, Codex, Cursor и другим клиентам.
ToolHive не пишет MCP-сервер за вас — он безопаснее запускает и управляет уже существующими
Если FastMCP отвечает на вопрос «как написать MCP server на Python», ToolHive отвечает на другой: как запускать сторонние MCP servers так, чтобы они не получали весь host автоматически.
MCP server запускается отдельно от host application.
Можно явно ограничить filesystem, network и privileged mode.
RunConfig хранит ссылку на secret, а не его plaintext value.
Start/stop, logs, clients, registry, export/import и policy в одном CLI/UI.
Tool calling расширяет возможности модели до реальных прав локального процесса
Если server скомпрометирован, последствия ограничиваются только правами пользователя ОС.
Для read-only tool можно смонтировать только конкретный каталог.
Можно разрешить только нужный API-host и порт.
Отдельный secret provider выдаёт конкретный token конкретному workload.
Он снижает blast radius, но безопасность всё равно зависит от mounts, network policy, privileges, runtime, ToolHive version и самого MCP protocol path.
Установка ToolHive
Для локальных container-based MCP понадобится Docker, Podman или совместимый runtime. Remote MCP через ToolHive можно proxy'ровать без локального container.
Windows
winget install stacklok.thv
thv version
macOS / Homebrew
brew tap stacklok/tap
brew install thv
thv version
Linux
Для Linux можно скачать готовый binary из GitHub Releases,
распаковать и положить thv в PATH.
thvУправление workloads, clients, registry, secrets и policies.
Более простой discovery/install/manage flow.
Нужен для local container MCP.
Контейнер локально не обязателен.
Registry → run → client setup
thv registry list
thv registry info toolhive-doc-mcp
thv run toolhive-doc-mcp
thv list
ToolHive скачает image, применит workload configuration, запустит container и локальный proxy. Port выбирается автоматически, если вы не задали его явно.
Подключить AI client
thv client setup
thv client status
После setup нужно перезапустить клиент, если он не перечитывает MCP configuration на лету.
Остановить и удалить
thv stop toolhive-doc-mcp
thv rm toolhive-doc-mcp
Разрешения описывают filesystem, network и privileged mode отдельно
В ToolHive есть built-in profiles none и network,
а для production лучше создавать собственные минимальные profiles.
Хорошая стартовая точка для server, которому не нужна сеть.
Удобно, но слишком широко для sensitive production workload.
Предпочтительный least-privilege вариант.
Пример custom profile
{
"name": "docs-reader",
"read": [
"D:\\Projects\\docs:/data"
],
"write": [],
"network": {
"outbound": {
"insecure_allow_all": false,
"allow_host": [
"api.example.com"
],
"allow_port": [
443
]
}
},
"privileged": false
}
thv run my-server \
--permission-profile ./docs-reader.json
Например C:\Users\Ivan\data:/data, а не Windows path справа от двоеточия.
Изоляция сети и разрешение outbound traffic — не одно и то же
Current ToolHive умеет помещать workload во внутреннюю bridge network и пропускать egress через proxy/DNS sidecars. Уже proxy применяет allowlist из permission profile.
Для bridge-mode создаётся изолированная сеть и egress layer.
Лучше whitelist конкретных доменов и портов.
Удобно для web tools, но это не least privilege.
Полноценная isolation policy требует bridge topology.
Если permission profile разрешает весь outbound, isolation может контролировать путь трафика, но сам доступ к интернету останется широким.
Token хранится отдельно, RunConfig содержит только ссылку на него
Current ToolHive поддерживает три основных secret providers: encrypted local storage, 1Password и environment variables.
Локальный encrypted store; password хранится через OS keyring.
Read-only получение secrets через 1Password SDK.
Secret берётся из environment и не перечисляет все переменные.
thv secret setup
В RunConfig reference выглядит концептуально так:
{
"secrets": [
"github-token,target=GITHUB_PERSONAL_ACCESS_TOKEN"
]
}
Secrets management защищает хранение и распространение, но скомпрометированный MCP server, которому вы сами дали token, потенциально сможет использовать этот token в рамках его прав.
ToolHive умеет автоматически регистрировать MCP endpoints в поддерживаемых клиентах
thv client setup
thv client status
Архитектура ToolHive поддерживает client discovery/configuration для Claude Code, Cursor, VS Code/GitHub Copilot, Cline, Windsurf и других clients. Codex также был добавлен как MCP-client target в 2026 году.
ToolHive добавляет managed endpoints в client config.
Current ToolHive также знает Codex config и может не трогать существующие mcp_servers.
Подключение без ручного поиска ports.
Поддерживается автоматический client setup.
Отдельно: LLM Gateway
Это уже другая функция ToolHive:
thv llm setup настраивает Claude Code, Codex, Cursor,
VS Code и другие AI tools на корпоративный/self-hosted LLM gateway через OIDC.
Не путайте её с обычной регистрацией MCP server через thv client setup.
Вместо копирования случайной npm-команды можно работать через curated catalog
thv registry list
thv registry info <server-name>
thv run <server-name>
Registry metadata может описывать container/remote endpoint, transport, required env vars, permissions и другие параметры. Для организации можно поднять собственный registry server.
Server definitions собраны в одном каталоге.
Пользователь видит ожидаемый security profile до запуска.
В новых releases развивается signing/verification server, plugin и skill artifacts.
Организация может не давать разработчикам случайно ставить всё подряд.
ToolHive умеет containerize package reference сам
thv run uvx://some-python-mcp-package
thv run npx://some-node-mcp-package
thv run go://github.com/example/mcp-server
ToolHive генерирует container build path вокруг package manager. Current defaults в architecture docs используют Python 3.14 slim, Node 24 alpine и Go 1.27 alpine как builder/runtime baselines для соответствующих protocol schemes.
ToolHive v0.45.0 отдельно закрыл command-injection path, где вредоносное имя package могло попасть в generated Dockerfile. Используйте текущую версию и фиксируйте доверенные package sources/versions.
Настроенный workload можно экспортировать, проверить и перенести на другую машину
thv export my-server ./my-server.json
thv run --from-config ./my-server.json
Export включает runtime parameters, permissions и middleware configuration, но secret values не должны попадать в portable RunConfig — там остаются только secret references.
Экспорт в Kubernetes resource
thv export my-server ./my-server.yaml --format k8s
Так изменение filesystem/network permissions проходит обычный code review и не превращается в скрытую настройку на одном ноутбуке.
GUI делает тот же lifecycle доступным без постоянной работы в terminal
ToolHive Studio работает на Windows, macOS и Linux: позволяет искать MCP servers, запускать их в containers, настраивать permissions/secrets и подключать clients.
Не нужно вручную искать package/image.
Permissions, secrets и server settings через UI.
Управление workloads без отдельных Docker commands.
Подключение MCP к поддерживаемым AI applications.
Для среды с жёсткими privacy requirements отдельно проверьте telemetry policy и используемый deployment mode.
Kubernetes Operator переносит те же идеи на командный/enterprise deployment
ToolHive Operator использует CRD для MCP servers, registries, groups, authorization, telemetry и virtual MCP aggregation. Platform team может централизовать OIDC, policies и observability.
Server описывается как Kubernetes resource.
Access policy можно привязать к IdP.
Audit и operational telemetry.
Несколько backends объединяются в один controlled endpoint.
Local CLI/Desktop закрывает основной сценарий значительно проще.
ToolHive создан для снижения MCP-рисков, но сам является частью security perimeter
В 2026 проект закрывал несколько security issues в auth, SSRF и management API.
Read-only mounts, narrow egress, без privileged mode.
Проверяйте image/package provenance и реальную необходимость permissions.
Token MCP-сервера должен иметь минимальные API permissions.
Auth discovery выполняет host-side code path и требует SSRF protection.
Используйте local socket/loopback или защищённый reverse proxy.
CVE-2026-58196: host-side SSRF через remote MCP auth discovery
Уязвимость затрагивала ToolHive <0.31.0.
Вредоносный remote MCP мог направить host-side authentication discovery
к внутренним/private URL, обходя container isolation.
Исправлено в 0.31.0.
CVE-2026-54450: NAT64 bypass в SSRF guard
Версии до 0.29.0 включительно не учитывали IPv6 NAT64 prefixes
в private-IP validation.
Исправлено в 0.29.1.
v0.45.0: management API и build-path hardening
Августовский release закрыл cross-origin attack на
thv serve management API,
package-name command injection в generated Dockerfiles
и authorization bypass через BOM-prefixed MCP list responses.
Старый plaintext-secrets bug
В очень ранних версиях <=0.0.32 secret values
могли попадать в runconfig state files.
Исправлено в 0.0.33.
Current secret architecture хранит references отдельно
и предлагает encrypted local provider.
Текущий v0.50.0 существенно новее перечисленных patched ranges. Но Fast-moving MCP infrastructure всё равно требует контролируемого обновления и review release notes.
FastMCP создаёт server, ToolHive запускает его как managed workload
Практическая связка выглядит так: вы пишете internal tool через FastMCP, собираете image, запускаете его через ToolHive с read-only mount и allowlist network, затем подключаете к Claude/Codex.
Дополнительный security layer добавляет и дополнительную сложность
Для local container workloads Docker/Podman — ещё один обязательный компонент.
Ошибочный broad profile может свести часть isolation к минимуму.
ToolHive быстро меняется; старые инструкции быстро устаревают.
MCP может злоупотребить credential, который ему легально передали.
Не все риски находятся внутри container sandbox.
Для одного ПК CLI/Desktop проще.
Для одного полностью доверенного read-only server ручной Docker setup может быть достаточен. Но registry, secrets, client config и reusable policies окупаются при росте количества tools.
Как я бы запускал новый неизвестный MCP server
Не запускать package только по красивому README.
Проверить tools/list и реальную функцию server.
Добавлять filesystem/network только по фактической необходимости.
Write давать только конкретному output path.
Один API host:443 лучше «весь интернет».
Отдельный read-only token для этого MCP.
AI должен понимать side effects до вызова.
Version-control разрешений и повторяемый deployment.
ToolHive v0.50.0: runtime, permissions, secrets, clients и security
Latest ToolHive release — v0.50.0 от 18 сентября 2026 года.
Проект лицензируется по Apache-2.0.
ToolHive полезен, когда MCP перестаёт быть «случайной командой из README» и становится частью инфраструктуры
Главная ценность — не контейнер сам по себе. Это комбинация isolation, permission profiles, secrets, registry, proxy и client configuration. В результате MCP server можно описать как воспроизводимый workload, а не как непрозрачный процесс с доступом ко всему пользовательскому окружению.
Для домашнего AI-сервера или рабочего ПК разумный старт: ToolHive CLI/Desktop, минимальный custom permission profile, отдельные scoped secrets и private local access.
Частые вопросы про ToolHive
Что такое ToolHive простыми словами?
Open-source manager/runtime для MCP servers: запускает их в containers или proxy'рует remote endpoints, добавляет permissions, secrets, client setup, registry и security controls.
ToolHive сам является MCP server?
Нет в обычном смысле. Он управляет workloads и proxy layer вокруг MCP servers, хотя платформа также имеет Virtual MCP/Gateway функции.
Чем ToolHive отличается от FastMCP?
FastMCP помогает написать MCP server. ToolHive помогает безопаснее его запустить, подключить к клиентам и управлять permissions/secrets.
Работает ли ToolHive на Windows?
Да. CLI устанавливается через winget install stacklok.thv; ToolHive Studio также поддерживает Windows. Для container servers обычно нужен Docker/Podman-compatible runtime.
Работает ли с Claude Code?
Да. ToolHive умеет обнаруживать/конфигурировать поддерживаемые MCP clients, включая Claude Code.
Работает ли с Codex?
Да. В 2026 Codex был добавлен и в MCP-client integration, и в отдельный LLM-gateway setup path.
Контейнер полностью защищает компьютер от плохого MCP?
Нет. Защита зависит от mounts, network, privileges, credentials и самого ToolHive. Контейнер снижает blast radius, но не является абсолютной sandbox-гарантией.
Как хранить API keys?
Через ToolHive secrets provider. Current architecture поддерживает encrypted local storage, 1Password и environment provider, а RunConfig хранит только secret references.
Можно ли запретить MCP весь интернет?
Да. Используйте profile без outbound access либо custom allowlist. Для server, которому нужен один API, разумнее разрешить только нужный host/port.
Какая версия актуальна?
На 21 сентября 2026 года latest release — ToolHive v0.50.0.
Планируете подключать к Claude/Codex сторонние MCP-серверы с доступом к файлам, GitHub или API?
Перед этим стоит определить каждому server отдельный permission profile, ограничить egress, вынести tokens в secret store и только затем подключать workload к AI-клиенту.
