MCP Docker 샌드박스 인터프리터
모델 컨텍스트 프로토콜(MCP)을 위한 안전한 Docker 기반 코드 실행 환경입니다.
개요
이 프로젝트는 MCP(Model Context Protocol)를 통해 코드를 실행할 수 있는 안전한 샌드박스를 제공합니다. AI 비서가 호스트 시스템에 직접 접근하지 않고도 모든 코드를 격리된 Docker 컨테이너 내에서 실행하여 안전하게 코드를 실행할 수 있도록 지원합니다.
지엑스피1
Related MCP server: Python MCP Sandbox
특징
안전한 실행 : 코드는 엄격한 보안 제한이 있는 격리된 Docker 컨테이너에서 실행됩니다.
다국어 지원 : 현재 다른 언어로 쉽게 확장 가능한 Python을 지원합니다.
리소스 제한 : 남용을 방지하기 위한 CPU 및 메모리 제한
MCP 통합 : 모델 컨텍스트 프로토콜과 완벽하게 호환
자동 설정 : 컨테이너 생성, 종속성 설치 및 정리를 처리합니다.
요구 사항
Docker(데스크톱 또는 엔진)
파이썬 3.10+
MCP SDK(
pip install mcp)Docker Python SDK(
pip install docker)
설치
이 저장소를 복제하세요:
git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter가상 환경을 만들고 활성화하세요.
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate종속성 설치:
pip install -r requirements.txt
용법
MCP 서버 시작
다음을 실행하여 서버를 시작합니다.
AI 어시스턴트에 연결하기
이 MCP 서버를 모델 컨텍스트 프로토콜을 지원하는 AI 어시스턴트에 연결할 수 있습니다.
커서
커서에서 MCP 설정에 다음을 추가합니다.
해당 경로를 실제 파일 경로로 바꾸세요.
클로드 데스크탑
커서와 비슷하게 Claude Desktop의 MCP 설정에 구성을 추가합니다.
MCP 도구
이 MCP 서버는 세 가지 주요 도구를 제공합니다.
initialize_sandbox : 코드 실행을 위한 새로운 Docker 컨테이너를 생성합니다.
Arguments: - image: The Docker image to use (default: "alpine:latest")execute_code : 초기화된 샌드박스에서 코드를 실행합니다.
Arguments: - code: The code string to execute - language: Programming language (default: "python")stop_sandbox : 컨테이너를 중지하고 제거합니다.
No arguments needed
작동 원리
initialize_sandbox가 호출되면 시스템은 다음을 수행합니다.Alpine Linux 기반 Docker 컨테이너를 생성합니다.
Python 및 기타 종속성을 설치합니다.
보안 제한을 설정합니다
execute_code호출되면:코드는 격리된 컨테이너 내에서 실행됩니다.
표준 출력 및 오류가 캡처됩니다.
결과는 호출 애플리케이션으로 반환됩니다.
stop_sandbox가 호출되면:컨테이너가 정지되어 제거됩니다.
모든 리소스가 해제됩니다
보안 고려 사항
이 샌드박스는 여러 가지 보안 조치를 구현합니다.
컨테이너는 CPU 및 메모리 사용량이 제한되어 있습니다.
컨테이너는 최소한의 권한으로 실행됩니다.
네트워크 액세스는 기본적으로 비활성화되어 있습니다.
용기는 일회용이며 사용 후 세척합니다.
개발
프로젝트 구조
새로운 언어 지원 추가
새로운 프로그래밍 언어에 대한 지원을 추가하려면 DockerSandbox 클래스의 run_code 메서드를 수정하여 새 언어를 처리합니다.
문제 해결
일반적인 문제
Docker 연결 오류 :
Docker가 실행 중인지 확인하세요
Docker 설치에 대해 DOCKER_HOST 환경 변수가 올바르게 설정되었는지 확인하세요.
컨테이너 생성 실패 :
Docker 컨테이너를 생성할 수 있는 권한이 있는지 확인하세요
지정된 기본 이미지에 액세스할 수 있는지 확인하세요.
코드 실행이 실패했습니다 .
컨테이너에 언어 런타임이 제대로 설치되었는지 확인하세요.
지정된 언어에 대해 코드가 유효한지 확인하세요.
특허
감사의 말
이 프로젝트에서는 모델 컨텍스트 프로토콜을 사용합니다.
Python용 Docker SDK 로 구축됨