Skip to main content
Glama
svngoku

MCP Docker Sandbox Interpreter

by svngoku

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 )

설치

  1. 이 저장소를 복제하세요:

    git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter
  2. 가상 환경을 만들고 활성화하세요.

    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 종속성 설치:

    pip install -r requirements.txt

용법

MCP 서버 시작

다음을 실행하여 서버를 시작합니다.

# For Colima users: export DOCKER_HOST="unix:///Users/username/.colima/default/docker.sock" # Run the server uv run mcp dev main.py

AI 어시스턴트에 연결하기

이 MCP 서버를 모델 컨텍스트 프로토콜을 지원하는 AI 어시스턴트에 연결할 수 있습니다.

커서

커서에서 MCP 설정에 다음을 추가합니다.

{ "mcpServers": { "docker-sandbox": { "command": "python", "args": ["/absolute/path/to/your/main.py"], "env": { "DOCKER_HOST": "unix:///path/to/your/docker.sock" } } } }

해당 경로를 실제 파일 경로로 바꾸세요.

클로드 데스크탑

커서와 비슷하게 Claude Desktop의 MCP 설정에 구성을 추가합니다.

MCP 도구

이 MCP 서버는 세 가지 주요 도구를 제공합니다.

  1. initialize_sandbox : 코드 실행을 위한 새로운 Docker 컨테이너를 생성합니다.

    Arguments: - image: The Docker image to use (default: "alpine:latest")
  2. execute_code : 초기화된 샌드박스에서 코드를 실행합니다.

    Arguments: - code: The code string to execute - language: Programming language (default: "python")
  3. stop_sandbox : 컨테이너를 중지하고 제거합니다.

    No arguments needed

작동 원리

  1. initialize_sandbox 가 호출되면 시스템은 다음을 수행합니다.

    • Alpine Linux 기반 Docker 컨테이너를 생성합니다.

    • Python 및 기타 종속성을 설치합니다.

    • 보안 제한을 설정합니다

  2. execute_code 호출되면:

    • 코드는 격리된 컨테이너 내에서 실행됩니다.

    • 표준 출력 및 오류가 캡처됩니다.

    • 결과는 호출 애플리케이션으로 반환됩니다.

  3. stop_sandbox 가 호출되면:

    • 컨테이너가 정지되어 제거됩니다.

    • 모든 리소스가 해제됩니다

보안 고려 사항

이 샌드박스는 여러 가지 보안 조치를 구현합니다.

  • 컨테이너는 CPU 및 메모리 사용량이 제한되어 있습니다.

  • 컨테이너는 최소한의 권한으로 실행됩니다.

  • 네트워크 액세스는 기본적으로 비활성화되어 있습니다.

  • 용기는 일회용이며 사용 후 세척합니다.

개발

프로젝트 구조

mcp-docker-interpreter/ ├── main.py # Main implementation of MCP server and Docker sandbox ├── requirements.txt # Project dependencies └── README.md # This file

새로운 언어 지원 추가

새로운 프로그래밍 언어에 대한 지원을 추가하려면 DockerSandbox 클래스의 run_code 메서드를 수정하여 새 언어를 처리합니다.

문제 해결

일반적인 문제

  1. Docker 연결 오류 :

    • Docker가 실행 중인지 확인하세요

    • Docker 설치에 대해 DOCKER_HOST 환경 변수가 올바르게 설정되었는지 확인하세요.

  2. 컨테이너 생성 실패 :

    • Docker 컨테이너를 생성할 수 있는 권한이 있는지 확인하세요

    • 지정된 기본 이미지에 액세스할 수 있는지 확인하세요.

  3. 코드 실행이 실패했습니다 .

    • 컨테이너에 언어 런타임이 제대로 설치되었는지 확인하세요.

    • 지정된 언어에 대해 코드가 유효한지 확인하세요.

특허

MIT 라이센스

감사의 말

-
security - not tested
F
license - not found
-
quality - not tested

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/svngoku/mcp-docker-code-interpreter'

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