# infrabroker

Брокер доступа к инфраструктуре: агент просит выполнить команду, а сертификат и токен живут в памяти брокера и в контекст модели не попадают.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 13
- Автор: luisgf
- Лицензия: GPL-3.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/luisgf/infrabroker
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/mcp/infrabroker

## Что делает

Агент отправляет действие — запустить команду на хосте, прочитать или изменить состояние кластера. infrabroker сверяет его с политикой, выполняет с одноразовым SSH-сертификатом от собственного CA или короткоживущим привязанным токеном ServiceAccount и возвращает только вывод. Ключи и токены стираются после вызова, поэтому угнать через промпт-инъекцию нечего.

Один бинарник `infrabroker` отдаёт один и тот же движок через три транспорта, выбор — подкомандой. Для локальной работы есть `infrabroker serve-mcp` (stdio, без транспортной аутентификации), для нескольких пользователей — `infrabroker serve-mcp-http` с проверкой OIDC-токена по JWKS издателя, для сетевых агентов — `infrabroker serve-http` с mTLS. Инструменты: `ssh_execute`, `ssh_session_open` и парные к ней, `ssh_list_servers`, `ssh_put_file` и `ssh_get_file`; при настроенных кластерах добавляются `k8s_get`, `k8s_list`, `k8s_logs`, `k8s_apply`, `k8s_delete` и `k8s_list_clusters`.

Права на sudo задаются в подписывающей стороне через `allow_sudo` и `allowed_sudo_users` — скомпрометированный брокер не поднимет привилегии там, где политика это запрещает. CA-ключи можно держать в Azure Key Vault или в ssh-agent с YubiKey PIV, SoftHSM или TPM, тогда приватный ключ не покидает модуль. Каждый сертификат ограничен временем жизни в минуты, адресом источника и, для одноразового вызова, обязательной командой: вне своего хоста и окна он бесполезен.

## Требования
- Нужно: Docker

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add infrabroker -- docker run -i --rm ghcr.io/luisgf/infrabroker:3.1.3
```

### Codex

**Командой платформы**
```bash
codex mcp add infrabroker -- docker run -i --rm ghcr.io/luisgf/infrabroker:3.1.3
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "infrabroker": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/luisgf/infrabroker:3.1.3"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "infrabroker": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/luisgf/infrabroker:3.1.3"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add infrabroker docker run -i --rm ghcr.io/luisgf/infrabroker:3.1.3
```

## Когда брать
- выполнить команду на удалённом хосте, не отдавая агенту приватный ключ
- прочитать логи пода в кластере без kubeconfig
- запретить агенту опасные команды через политику allow/deny
- поднять привилегии только там, где разрешено политикой
- разобрать, кто и что запускал, по цепочке аудита

## Примеры запросов агенту
- Выполни `uptime` на хосте web-01 через infrabroker
- Покажи логи пода `api-7d9f` в кластере prod
- Скопируй `deploy.sh` на хост build-02

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/nevibecode/mcp/oh-my-posh-validator.md) — MCP-сервер · ★ 23643
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727
- [Coder](https://affpapa.org/nevibecode/mcp/coder.md) — MCP-сервер · ★ 17160
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
