Skip to main content
Glama

infra-guard

MCP-сервер, который сканирует Terraform и Dockerfile файл for real security misconfigurations — открыт groups безопасности, public S3 бакеты, publicly diss. Globally injection... I need to think.

Let's_write final clean Russian:

infra-guard

MCP-сервер, который сканирует Terraform и Dockerfile-файлы на реальные проблемы безопаности — открытые группы безопаности, публичные S3 бакеты, wildcard IAM-полис, захардкодженные секреты, контейнеры работающие под root — и возвращает структурированные находки, а не догадку.

Он подключается к Claude Code, Claude Desktop или Cursor как инструмент. Попросите вашемого ИИ-ассистента проверить инфраструктурный код, и он вызовет infra-guaard, получит реальные находки от Checkov и объяснит их вам.

Попробуйте в браузере: infra-guaard-frontend-production.up.railway.app — вставьте Terraform, нажмите Scan, посмотрите реальные результаты. Установка не требуется.

MCP-эндпоинт: https://infra-guaard-production.up.railway.app/mcp

Зачем это существует

Я занимался облачной инфраструктурой в A.P. Moller–Maersk — Terraform, Docker, AWS provisioning в реальном масштабе. Большинство портфолио-проектов — типовые веб-приложения; этот — инструмент, который мне действительно хотелось: то, что превращает «есть ли в моём Terraform очевидные дыры в безопасности» в настоящий структурированный ответ, а не в догадку ИИ-ассистента.

infra-gard не гадает. Он прогоняет ваш файл через Checkov — настоящий движок статического анализа с сотнями встроенных проверок — и возвращает реальные находки: ID проверки, severity, диапазон строк и фрагмент кода. LLM, которая ведёт сессию (Claude или кто угодно на другом конце MCP-соединения), объясняет находки простыми словами. Задача инструмента — просто быть точным.

Related MCP server: MCP Security Scanner

Как это работает

scanner.py   → core engine: scan_terraform(...) / scan_dockerfile(...) -> structured dict
server.py    → wraps both as MCP tools, served over stdio or Streamable HTTP
api.py       → wraps both as a plain REST API (POST /api/scan, POST /api/scan-dockerfile)
frontend/    → React + Vite playground that calls api.py, with a Terraform/Dockerfile toggle

scanner.py вызывает CLI Checkov, разбирает его JSON-вывод и возвращает результаты в едином формате независимо от того, какой фреймворк его запускает:

{
  "summary": { "passed": 14, "failed": 34, "total_checks": 48 },
  "findings": [
    {
      "check_id": "CKV_AWS_24",
      "title": "Ensure no security groups allow ingress from 0.0.0.0:0 to port 22",
      "resource": "aws_security_group.app_sg",
      "start_line": 6,
      "end_line": 24,
      "code_snippet": "resource \"aws_security_group\" \"app_sg\" { ... }"
    }
  ]
}

server.py предоставляет два MCP-инструмента: scan_terraform_file(file_content, filename) и scan_dockerfile_file(file_content, filename) — без собственного слоя интерпретации: структурированные данные уходят напрямую LLM, которая ведёт сессию.

В insecure_example.tf намеренно заложены четыре проблемы Terraform (открытый SSH-вход, публичный незашифрован S3-бакет, обычный IAM-полисы, захардкоженный пароль RDS) — 14 passed / 34 failed checks. В insecure_example.Dockerfile — пять (незакрелённый базовый образ, ADD вместо COPY, открытый порт 22, отсутствие HEALTHCHECK, запуск под root) — 26 passed / 5 failed checks.

Запуск локально

Требуется uv.

git clone https://github.com/SanjanaJanardhan/infra-guard.git
cd infra-guard
uv sync

Запустите сканер напрямую:

uv run python3 scanner.py

Запустите MCP-сервер через stdio (для локальных клиентов вроде Claude Code/Desktop):

uv run python3 server.py

Запустите его через Streamable HTTP (для удалённых клиентов или для воспроизведения развёрнутого окружения):

uv run python3 server.py --transport streamable-http --port 8000

Подключение к MCP-клиенту

Claude Code / Claude Desktop — добавьте в .mcp.json (на уровне проекта) или в глобальный MCP-конфиг:

{
  "mcpServers": {
    "infra-guard": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/infra-guard", "run", "python3", "server.py"]
    }
  }
}

Любой Streamable HTTP-клиент (включая боевой деплой выше) — направьте его на:

https://infra-guard-production.up.railway.app/mcp

Запуск playground локально

# terminal 1 — API
uv run python3 api.py

# terminal 2 — frontend
cd frontend
npm install
npm run dev

Фронтенд читает базовый URL API из VITE_API_URL (см. frontend/.env.local); по умолчанию используется http://localhost:8001.

Развёртывание

Три сервиса на Railway, все собраны из Docker/Nixpacks без ручной настройки сервера:

  • MCP-серверDockerfile, Streamable HTTP

  • REST APIDockerfile.api, то же ядро scanner.py, обеспечивает работу playground

  • Frontend — допустимый сборщик Nixpacks автоматически находит Vite-приложение в frontend/; VITE_API_URL задаётся на этапе сборки и указывает на URL развёрнутого API

Оба Python-сервиса читают PORT из окружения, поэтому они подстраиваются под любой порт, который назначит Railway, без изменений конфигурации.

Стек

Python · Checkov · MCP Python SDK · FastAPI · React · Vite · uv · Docker · Railway

Дорожная карта

  • Основной движок сканирования Terraform

  • MCP-сервер через stdio

  • Транспорт Streamable HTTP

  • Деплой на Railway

  • Веб-фронтенд с живым playground

  • Сканирование Dockerfile, включая переключатель Terraform/Dockerfile в playground

  • Оценка влияния находок на стоимость

Лицензия

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.

  • CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.

  • CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SanjanaJanardhan/infra-guard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server