SD

sivasaikrishnasuryadevara/docker-mcp-guardian

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

109 stars 109 forks 품질 85 트렌드 35MIT

읽기 전용 기본값, 재시작 거부 목록, 비밀 검열 기능이 있는 Docker용 보안 강화 MCP 서버

개요

FastMCP로 파이썬으로 작성된 보안 강화된 모델 컨텍스트 프로토콜(MCP) 서버로, 로컬 LLM 에이전트(클로드 데스크톱, 클로드 코드)를 엄격한 제로 트러스트 경계로 도커 데몬에 연결합니다. - 돌연변이 도구(safe_restart_container)는 GUARDIAN_ALLOW_WRITE=true가 명시적으로 설정되지 않은 한 도커 소켓에 닿기 전에 호출을 거부합니다. - 컨테이너 ID를 도커의 내부 정식 이름으로 해석하여 정규식 부정자를 평가하여 16진 ID를 통한 회피를 방지합니다. - inspect_container 모든 환경 변수 값을 제거하고 변수 키만 반환하여 LLM 프롬프트 누수를 방지합니다. - 엄격한 로그 분리를 통해 비구조화된 stdout 쓰기가 0회로 보장되어 MCP 클라이언트에서 JSON-RPC 스트림 손상을 방지합니다. - 모든 Docker API 호출은 기본 5개로 GUARDIAN_DOCKER_TIMEOUT제한되어 있어, 쐐기형이나 누락된 데몬은 세션을 중단하는 대신 구조화된 daemon_unavailable 오류를 반환합니다. - Python 3.10+ - Docker 엔진 / Docker 데스크톱 - mcp>=1.0.

개요(AI 번역)

FastMCP로 파이썬으로 작성된 보안 강화된 모델 컨텍스트 프로토콜(MCP) 서버로, 로컬 LLM 에이전트(클로드 데스크톱, 클로드 코드)를 엄격한 제로 트러스트 경계로 도커 데몬에 연결합니다.

핵심 역량 및 안전장치

  • 기본적으로 읽기 전용: 뮤테이션 도구(safe_restart_container)는 GUARDIAN_ALLOW_WRITE=true가 명시적으로 설정되지 않은 한 도커 소켓에 닿기 전에 호출을 거부합니다.
  • **정규 ID 해석(Canonical ID Resolution): 컨테이너 ID를 도커 내부 정규 이름으로 해석하여 정규 표현식 부정자 평가 전에 해결하여 16진 ID를 통한 회피를 방지합니다.
  • 자격 증명 및 비밀 편집: inspect_container는 모든 환경 변수 값을 제거하고 변수 키만 반환하여 LLM 프롬프트 유출을 방지합니다.
  • 고립된 Stdio JSON-RPC: 엄격한 로그 분리는 비구조화된 stdout 쓰기가 0을 보장하여 MCP 클라이언트에서 JSON-RPC 스트림 손상을 방지합니다.
  • 제한된 데몬 타임아웃: 모든 Docker API 호출은 GUARDIAN_DOCKER_TIMEOUT(기본 5초)로 제한되어 있어, 쐐기나 누락된 데몬은 세션을 중단하는 대신 구조화된 daemon_unavailable 오류를 반환합니다.

퀵스타트

전제 조건

  • 파이썬 3.10+
  • Docker 엔진 / Docker 데스크톱
  • 'MCP>=1.0.

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

Docker MCP Guardian

A security-hardened Model Context Protocol (MCP) server written in Python with FastMCP that connects local LLM agents (Claude Desktop, Claude Code) to the Docker daemon with strict zero-trust boundaries.

Core Capabilities & Safeguards

  • Read-Only by Default: Mutation tools (safe_restart_container) reject calls before touching the Docker socket unless GUARDIAN_ALLOW_WRITE=true is explicitly set.
  • Canonical ID Resolution: Resolves container IDs to Docker’s internal canonical name before evaluating regex denylists, preventing evasion via hex IDs.
  • Credential & Secret Redaction: inspect_container strips all environment variable values, returning only variable keys to prevent LLM prompt leakage.
  • Isolated Stdio JSON-RPC: Strict logging separation ensures zero unstructured stdout writes, preventing JSON-RPC stream corruption in MCP clients.
  • Bounded Daemon Timeouts: Every Docker API call is capped by GUARDIAN_DOCKER_TIMEOUT (default 5s), so a wedged or missing daemon returns a structured daemon_unavailable error instead of hanging the session.

Quickstart

Prerequisites

  • Python 3.10+
  • Docker Engine / Docker Desktop
  • mcp>=1.0.0,<2 (pinned to FastMCP API)

Local Installation

git clone https://github.com/SivaSaiKrishnaSuryadevara/docker-mcp-guardian.git
cd docker-mcp-guardian
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pytest tests/ -v

Connect to Claude Code

claude mcp add docker-guardian -- "$PWD/.venv/bin/python" "$PWD/server.py"

For Claude Desktop, add the same interpreter and script paths (absolute) under mcpServers in claude_desktop_config.json.

Configuration

Variable Default Purpose
GUARDIAN_ALLOW_WRITE false Must be true for safe_restart_container to do anything
GUARDIAN_RESTART_DENY_REGEX ^(prod|db|kube|vault)-.* Containers that can never be restarted (always wins)
GUARDIAN_RESTART_ALLOW_REGEX (unset) If set, only matching containers can be restarted
GUARDIAN_ANOMALY_REGEX error/exception/fatal/… Pattern the log scanner flags
GUARDIAN_REGEX_TIMEOUT 1 Total seconds one log scan may spend matching; slower scans return regex_timeout
GUARDIAN_DOCKER_TIMEOUT 5 Seconds per Docker API call
GUARDIAN_LOG_LEVEL INFO Log level (logs go to stderr only)
DOCKER_HOST (unset) Docker endpoint to use; always wins when set
GUARDIAN_ALLOW_ROOTFUL false Allow falling back to the rootful /var/run/docker.sock

Docker endpoint resolution

GitHub에서 전체 README 보기

설치

This server does not publish a one-line install command.

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "docker-guardian": { "command": "/path/to/docker-mcp-guardian/.venv/bin/python", "args": ["/path/to/docker-mcp-guardian/server.py"], "env": { "DOCKER_HOST": "unix:///run/user/1000/docker.sock" } } } }