MCP 문서 관리

메뉴

iTerm MCP

iTerm MCP

iTerm MCP 서버는 macOS용 iTerm2 터미널 에뮬레이터와 Claude AI를 통합하여 LLM이 터미널 명령을 실행하고 모니터링할 수 있게 해주는 서버입니다. 이 서버는 터미널 기반 작업의 자동화, 스크립트 실행, 시스템 모니터링, 개발 작업 등을 지원합니다. LLM은 사용자를 대신하여 명령을 작성하고 실행한 후 결과를 분석하여 적절한 후속 조치를 취할 수 있습니다.

특징

  • 터미널 명령 실행: LLM이 iTerm2 터미널에서 명령을 실행 가능
  • 출력 캡처: 터미널 명령 실행 결과 캡처 및 분석
  • 상호작용적 명령 지원: 사용자 입력이 필요한 상호작용적 명령어 처리
  • 세션 관리: 여러 터미널 세션 및 탭 관리
  • 스크립트 실행: 복잡한 스크립트 및 자동화 작업 실행
  • 환경 변수 관리: 터미널 환경 변수 설정 및 관리
  • 프로필 및 구성: 다양한 터미널 프로필 및 구성 지원
  • SSH 연결: 원격 시스템에 대한 SSH 연결 관리
  • 컨트롤 문자 지원: 특수 제어 문자 및 키 조합 전송 기능

API

도구

터미널 명령

  • write_to_terminal: 터미널에 명령 또는 텍스트 입력
  • 입력: 명령 문자열
  • 출력: 성공 여부

  • read_terminal_output: 터미널 출력 읽기

  • 입력: 읽을 줄 수
  • 출력: 터미널 출력 텍스트

  • send_control_character: 제어 문자 전송

  • 입력: 제어 문자(예: 'C'는 Ctrl+C를 의미)
  • 출력: 성공 여부

세션 및 탭 관리

  • get_active_session: 현재 활성 세션 정보 조회
  • 입력: 없음
  • 출력: 활성 세션 ID 및 상태

  • switch_session: 다른 세션으로 전환

  • 입력: 세션 ID 또는 이름
  • 출력: 세션 전환 성공 여부

  • create_new_tab: 새 탭 생성

  • 입력: 프로필 이름(선택적)
  • 출력: 새 탭 ID

환경 및 설정

  • get_environment_variables: 현재 환경 변수 조회
  • 입력: 없음 또는 특정 변수 이름
  • 출력: 환경 변수 목록 또는 특정 변수 값

  • set_environment_variable: 환경 변수 설정

  • 입력: 변수 이름, 값
  • 출력: 설정 성공 여부

사용 방법

설치

# npm을 통한 설치
npm install -g iterm-mcp

# 또는 Smithery를 통한 설치
npx -y @smithery/cli install iterm-mcp --client claude

구성

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

{
  "mcpServers": {
    "iterm": {
      "command": "npx",
      "args": ["iterm-mcp"],
      "env": {}
    }
  }
}

macOS 설정 파일 위치: ~/Library/Application Support/Claude/claude_desktop_config.json

필요 조건

  • macOS: 10.14 이상
  • iTerm2: 3.4 이상 버전
  • Node.js: v14 이상

사용 예시

// 터미널 명령 실행
await write_to_terminal("ls -la");
console.log("명령이 전송되었습니다.");

// 터미널 출력 읽기
const output = await read_terminal_output(10);  // 최대 10줄 읽기
console.log("터미널 출력:", output);

// 제어 문자 전송 (Ctrl+C)
await send_control_character("C");
console.log("명령 중단 시그널이 전송되었습니다.");

// Python 인터프리터 실행 및 상호작용
await write_to_terminal("python3");
await write_to_terminal("print('Hello, World!')");
const result = await read_terminal_output(1);
console.log("Python 출력:", result);
await send_control_character("D");  // Ctrl+D로 Python 종료

연결된 구성 요소