MCP 문서 관리

메뉴

code-executor

code-executor

code-executor는 지정된 Conda 환경 내에서 Python 코드를 실행할 수 있는 MCP 서버입니다. 이 서버는 LLM(Large Language Models)이 격리된 환경에서 Python 코드를 작성하고 실행하여 다양한 작업을 수행하고 결과를 확인할 수 있게 해줍니다.

특징

  • Conda 환경 통합: 지정된 Conda 환경 내에서 안전하게 코드 실행
  • Python 코드 실행: 다양한 Python 스크립트 및 코드 조각 실행
  • 실행 결과 캡처: 표준 출력, 오류, 반환 값 등의 실행 결과 수집
  • 패키지 관리: 필요한 패키지 설치 및 환경 구성
  • 에러 처리: 상세한 오류 메시지 및 디버깅 정보 제공
  • 대화형 코드 실행: 단계별 코드 실행 및 결과 피드백

API

도구

코드 실행

  • execute_python: Python 코드를 실행합니다.
  • 입력: Python 코드 문자열
  • 출력: 실행 결과, 표준 출력, 오류 메시지

  • execute_file: Python 파일을 실행합니다.

  • 입력: 파일 경로
  • 출력: 실행 결과, 표준 출력, 오류 메시지

  • execute_notebook: Jupyter Notebook 셀을 실행합니다.

  • 입력: 노트북 셀 코드
  • 출력: 셀 실행 결과 및 출력

환경 관리

  • list_packages: 설치된 패키지 목록을 가져옵니다.
  • 입력: 없음
  • 출력: 설치된 패키지 및 버전 목록

  • install_package: 새 패키지를 설치합니다.

  • 입력: 패키지 이름, 버전(선택적)
  • 출력: 설치 결과

  • get_environment_info: Conda 환경 정보를 가져옵니다.

  • 입력: 없음
  • 출력: Python 버전, Conda 환경 정보, 시스템 정보

파일 관리

  • write_file: 파일을 생성하거나 수정합니다.
  • 입력: 파일 경로, 파일 내용
  • 출력: 쓰기 결과

  • read_file: 파일 내용을 읽습니다.

  • 입력: 파일 경로
  • 출력: 파일 내용

사용 방법

설치

# uv 사용
uv pip install mcp-code-executor

# 또는 pip 사용
pip install mcp-code-executor

구성

Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정 파일에 추가합니다:

{
  "mcpServers": {
    "codeExecutor": {
      "command": "uv",
      "args": ["run", "-m", "mcp_code_executor", "--env", "myenv"],
      "env": {
        "PYTHON_PATH": "/path/to/python"
      }
    }
  }
}

사용 예시

# 간단한 수학 계산
result = 5 * 10 + 25
print(f"계산 결과: {result}")

# 데이터 분석
import pandas as pd
import matplotlib.pyplot as plt

# 샘플 데이터 생성
data = {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
        'Sales': [120, 150, 140, 170, 190]}
df = pd.DataFrame(data)

# 데이터 시각화
plt.figure(figsize=(10, 6))
plt.bar(df['Month'], df['Sales'])
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.savefig('sales_chart.png')

print("차트가 생성되었습니다.")

연결된 구성 요소

주의사항

이 서버는 외부에서 제공된 코드를 실행하므로 보안 위험이 있을 수 있습니다:

  1. 신뢰할 수 있는 코드만 실행하세요.
  2. 격리된 환경에서 실행하여 시스템 파일 및 민감한 데이터에 대한 접근을 제한하세요.
  3. 리소스 사용량 제한을 설정하여 과도한 CPU, 메모리 사용이나 무한 루프를 방지하세요.
  4. 네트워크 접근 제어를 통해 외부 연결을 제한하세요.
  5. 중요한 시스템이나 프로덕션 환경에서 사용을 피하세요.