# infrahub-mcp

Подключает ИИ-ассистента к Infrahub, чтобы искать устройства и IP-адреса запросами на естественном языке. Записи уходят на отдельную ветку и ждут подтверждения.

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

## Что делает

Сервер даёт агенту доступ к вашей инфраструктурной базе Infrahub: он ищет устройства, интерфейсы и IP-адреса по атрибутам и частичному совпадению, показывает схему, карты атрибутов и фильтров по каждому типу, а также GraphQL SDL как ресурсы MCP. Если готовых инструментов мало, можно выполнить произвольный GraphQL-запрос или мутацию.

Записи не попадают в основную ветку. Сервер сам создаёт сессионную ветку вида `mcp/session-YYYYMMDD-<hex>`, а для слияния нужно вызвать `propose_changes` и открыть Proposed Change на проверку человеком. Это удобно, когда правки в топологию или IP-пространство делает агент, а не инженер.

Перед запуском задайте `INFRAHUB_ADDRESS` и `INFRAHUB_API_TOKEN` — без них сервер не подключится к инстансу. Транспорт по умолчанию stdio, для удалённых клиентов есть streamable HTTP с флагами `--transport streamable-http --host 0.0.0.0 --port 8001`. Ставится через `pip install infrahub-mcp` или `uv pip install infrahub-mcp`, есть образ `registry.opsmill.io/opsmill/infrahub-mcp:latest`.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `INFRAHUB_ADDRESS`, `INFRAHUB_API_TOKEN` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add infrahub-mcp -e INFRAHUB_ADDRESS=<INFRAHUB_ADDRESS> -e INFRAHUB_API_TOKEN=<INFRAHUB_API_TOKEN> -- uvx infrahub-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from infrahub-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add infrahub-mcp --env INFRAHUB_ADDRESS=<INFRAHUB_ADDRESS> --env INFRAHUB_API_TOKEN=<INFRAHUB_API_TOKEN> -- uvx infrahub-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from infrahub-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "infrahub-mcp": {
            "command": "uvx",
            "args": [
                "infrahub-mcp"
            ],
            "env": {
                "INFRAHUB_ADDRESS": "<INFRAHUB_ADDRESS>",
                "INFRAHUB_API_TOKEN": "<INFRAHUB_API_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from infrahub-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "infrahub-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "infrahub-mcp"
            ],
            "env": {
                "INFRAHUB_ADDRESS": "<INFRAHUB_ADDRESS>",
                "INFRAHUB_API_TOKEN": "<INFRAHUB_API_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from infrahub-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e INFRAHUB_ADDRESS=<INFRAHUB_ADDRESS> -e INFRAHUB_API_TOKEN=<INFRAHUB_API_TOKEN> infrahub-mcp uvx infrahub-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from infrahub-mcp <команда>

## Когда брать
- найти устройство или интерфейс по части имени прямо в диалоге с агентом
- посмотреть схему Infrahub и доступные фильтры, не открывая отдельную панель
- внести правки в топологию на изолированной ветке
- отправить изменения на ревью через Proposed Change
- выполнить свой GraphQL-запрос к API Infrahub

## Примеры запросов агенту
- Найди в Infrahub все интерфейсы со скоростью 100G на устройстве `edge-01`
- Создай на сессионной ветке новый IP-префикс и предложи изменения на ревью
- Покажи схему для типа устройства и какие у него есть фильтры

## Похожие
- [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
