ToolHive: как безопаснее запускать MCP-серверы для Claude, Codex и Cursor
ToolHive · MCP security · Claude Code · Codex · Cursor

ToolHive: как безопаснее запускать MCP-серверы для Claude, Codex и Cursor

MCP-сервер — это не просто «ещё один плагин для нейросети». Он может получить доступ к файлам, сети, GitHub, БД, облачным API и локальным credentials. ToolHive добавляет между AI-клиентом и MCP-сервером отдельный runtime: запускает сервер в контейнере, управляет разрешениями, secrets, network isolation, proxy, registry и подключением к Claude Code, Codex, Cursor и другим клиентам.

v0.50.0 актуальный release от 18 сентября 2026 года
Apache-2.0 open-source core: CLI, runtime, gateway и Kubernetes Operator
Windows · macOS · Linux CLI и Desktop; container runtime нужен для локальных container MCP
Runtime + gateway + registry

ToolHive не пишет MCP-сервер за вас — он безопаснее запускает и управляет уже существующими

Если FastMCP отвечает на вопрос «как написать MCP server на Python», ToolHive отвечает на другой: как запускать сторонние MCP servers так, чтобы они не получали весь host автоматически.

Claude / Codex / CursorMCP client
ToolHive proxyauth · policy · audit · filtering
MCP containerisolated workload
Разрешённые ресурсыfiles · network · API
01Изоляция процесса

MCP server запускается отдельно от host application.

02Least privilege

Можно явно ограничить filesystem, network и privileged mode.

03Secrets отдельно от config

RunConfig хранит ссылку на secret, а не его plaintext value.

04Один control plane

Start/stop, logs, clients, registry, export/import и policy в одном CLI/UI.

Почему MCP требует отдельной модели доверия

Tool calling расширяет возможности модели до реальных прав локального процесса

Без изоляции npm/uvx process видит host environment

Если server скомпрометирован, последствия ограничиваются только правами пользователя ОС.

Файлы Не нужен весь home directory

Для read-only tool можно смонтировать только конкретный каталог.

Сеть Не каждому MCP нужен весь интернет

Можно разрешить только нужный API-host и порт.

Credentials Не нужно передавать весь environment

Отдельный secret provider выдаёт конкретный token конкретному workload.

Контейнер — не абсолютная sandbox-гарантия.

Он снижает blast radius, но безопасность всё равно зависит от mounts, network policy, privileges, runtime, ToolHive version и самого MCP protocol path.

CLI + container runtime

Установка 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.

CLIthv

Управление workloads, clients, registry, secrets и policies.

DesktopGUI

Более простой discovery/install/manage flow.

RuntimeDocker / Podman / Colima

Нужен для local container MCP.

RemoteProxy existing MCP URL

Контейнер локально не обязателен.

Первый MCP server

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
Permission Profiles

Разрешения описывают filesystem, network и privileged mode отдельно

В ToolHive есть built-in profiles none и network, а для production лучше создавать собственные минимальные profiles.

none Нет filesystem mounts и outbound access

Хорошая стартовая точка для server, которому не нужна сеть.

network Full outbound network

Удобно, но слишком широко для sensitive production workload.

custom Только конкретные paths/hosts/ports

Предпочтительный 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
На Windows host path может быть Windows-style, container path должен быть Linux-style.

Например C:\Users\Ivan\data:/data, а не Windows path справа от двоеточия.

Network isolation

Изоляция сети и разрешение outbound traffic — не одно и то же

Current ToolHive умеет помещать workload во внутреннюю bridge network и пропускать egress через proxy/DNS sidecars. Уже proxy применяет allowlist из permission profile.

MCP containerinternal network
Egress proxyhost/port ACL
Разрешённый APIexample.com:443
isolate_network Трафик проходит через policy path

Для bridge-mode создаётся изолированная сеть и egress layer.

allow_host / allow_port Определяет, куда можно выйти

Лучше whitelist конкретных доменов и портов.

insecure_allow_all Разрешить весь outbound

Удобно для web tools, но это не least privilege.

host networking Отдельная опасная зона

Полноценная isolation policy требует bridge topology.

Не считайте «network isolation enabled» синонимом «интернет запрещён».

Если permission profile разрешает весь outbound, isolation может контролировать путь трафика, но сам доступ к интернету останется широким.

Secrets management

Token хранится отдельно, RunConfig содержит только ссылку на него

Current ToolHive поддерживает три основных secret providers: encrypted local storage, 1Password и environment variables.

encryptedAES-256-GCM

Локальный encrypted store; password хранится через OS keyring.

1PasswordVault integration

Read-only получение secrets через 1Password SDK.

environmentCI/CD

Secret берётся из environment и не перечисляет все переменные.

thv secret setup

В RunConfig reference выглядит концептуально так:

{
  "secrets": [
    "github-token,target=GITHUB_PERSONAL_ACCESS_TOKEN"
  ]
}
Secret всё равно появляется внутри конкретного container как runtime credential.

Secrets management защищает хранение и распространение, но скомпрометированный MCP server, которому вы сами дали token, потенциально сможет использовать этот token в рамках его прав.

AI clients

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 году.

Claude CodeMCP workloads

ToolHive добавляет managed endpoints в client config.

CodexMCP + LLM gateway paths

Current ToolHive также знает Codex config и может не трогать существующие mcp_servers.

CursorManaged local proxy

Подключение без ручного поиска ports.

VS CodeGitHub Copilot ecosystem

Поддерживается автоматический 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.

Registry

Вместо копирования случайной 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.

DiscoveryЧто вообще доступно

Server definitions собраны в одном каталоге.

PolicyКакие permissions требуются

Пользователь видит ожидаемый security profile до запуска.

ProvenanceSupply-chain controls

В новых releases развивается signing/verification server, plugin и skill artifacts.

Internal catalogТолько approved MCP

Организация может не давать разработчикам случайно ставить всё подряд.

Не обязательно иметь готовый Docker image

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.

Package reference всё равно остаётся supply-chain input.

ToolHive v0.45.0 отдельно закрыл command-injection path, где вредоносное имя package могло попасть в generated Dockerfile. Используйте текущую версию и фиксируйте доверенные package sources/versions.

RunConfig

Настроенный 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
RunConfig стоит хранить в Git, secret values — нет.

Так изменение filesystem/network permissions проходит обычный code review и не превращается в скрытую настройку на одном ноутбуке.

ToolHive Studio

GUI делает тот же lifecycle доступным без постоянной работы в terminal

ToolHive Studio работает на Windows, macOS и Linux: позволяет искать MCP servers, запускать их в containers, настраивать permissions/secrets и подключать clients.

DiscoverКаталог MCP

Не нужно вручную искать package/image.

InstallGuided configuration

Permissions, secrets и server settings через UI.

ManageStart/stop/logs

Управление workloads без отдельных Docker commands.

ClientsAuto-config

Подключение MCP к поддерживаемым AI applications.

Desktop использует Sentry для error/performance monitoring.

Для среды с жёсткими 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.

MCPServerDeclarative deployment

Server описывается как Kubernetes resource.

OIDC/OAuthIdentity

Access policy можно привязать к IdP.

OTel/PrometheusObservability

Audit и operational telemetry.

Virtual MCPAggregation

Несколько backends объединяются в один controlled endpoint.

Для домашнего одного пользователя Kubernetes обычно избыточен.

Local CLI/Desktop закрывает основной сценарий значительно проще.

Security reality check

ToolHive создан для снижения MCP-рисков, но сам является частью security perimeter

1Update aggressively

В 2026 проект закрывал несколько security issues в auth, SSRF и management API.

2Начинать с минимальных permissions

Read-only mounts, narrow egress, без privileged mode.

3Registry ≠ автоматическое доверие

Проверяйте image/package provenance и реальную необходимость permissions.

4Secrets scoped narrowly

Token MCP-сервера должен иметь минимальные API permissions.

5Remote MCP тоже недоверенный

Auth discovery выполняет host-side code path и требует SSRF protection.

6Management API не публиковать напрямую

Используйте 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.

На 21.09.2026 использовать старые pre-0.31 releases для remote MCP нельзя считать разумным baseline.

Текущий v0.50.0 существенно новее перечисленных patched ranges. Но Fast-moving MCP infrastructure всё равно требует контролируемого обновления и review release notes.

Не конкуренты

FastMCP создаёт server, ToolHive запускает его как managed workload

ИнструментОсновная задачаПример
FastMCPНаписать свой MCP serverPython functions → tools/resources
ToolHiveИзолированно запустить/manage MCPcontainer + policy + secrets + proxy
Context7Готовый специализированный MCPFresh library documentation
Claude/CodexMCP clientВызывает предоставленные tools

Практическая связка выглядит так: вы пишете internal tool через FastMCP, собираете image, запускаете его через ToolHive с read-only mount и allowlist network, затем подключаете к Claude/Codex.

Ограничения

Дополнительный security layer добавляет и дополнительную сложность

01Нужен container runtime

Для local container workloads Docker/Podman — ещё один обязательный компонент.

02Policy требует понимания

Ошибочный broad profile может свести часть isolation к минимуму.

03Fast-moving releases

ToolHive быстро меняется; старые инструкции быстро устаревают.

04Container не спасает от выданного token

MCP может злоупотребить credential, который ему легально передали.

05Remote MCP имеет host-side paths

Не все риски находятся внутри container sandbox.

06Kubernetes может быть избыточен

Для одного ПК CLI/Desktop проще.

ToolHive особенно полезен, когда MCP-серверов становится несколько.

Для одного полностью доверенного read-only server ручной Docker setup может быть достаточен. Но registry, secrets, client config и reusable policies окупаются при росте количества tools.

Практический baseline

Как я бы запускал новый неизвестный MCP server

1Изучить source/image

Не запускать package только по красивому README.

2Стартовать без secrets

Проверить tools/list и реальную функцию server.

3Profile none

Добавлять filesystem/network только по фактической необходимости.

4Read-only mounts

Write давать только конкретному output path.

5Allowlist egress

Один API host:443 лучше «весь интернет».

6Scoped secret

Отдельный read-only token для этого MCP.

7Проверить tool descriptions

AI должен понимать side effects до вызова.

8Export RunConfig

Version-control разрешений и повторяемый deployment.

Первоисточники

ToolHive v0.50.0: runtime, permissions, secrets, clients и security

Материал проверен 21 сентября 2026 года.

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.

FAQ

Частые вопросы про 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.

MCP без полного доверия host

Планируете подключать к Claude/Codex сторонние MCP-серверы с доступом к файлам, GitHub или API?

Перед этим стоит определить каждому server отдельный permission profile, ограничить egress, вынести tokens в secret store и только затем подключать workload к AI-клиенту.