MCP 문서 관리

메뉴

Terminal-Control

Terminal-Control

Terminal-Control MCP 서버는 AI 어시스턴트가 표준화된 인터페이스를 통해 터미널 명령을 안전하게 실행하고, 디렉토리를 탐색하며, 파일 시스템 작업을 수행할 수 있게 해주는 도구입니다. 이 서버는 보안을 최우선으로 하면서도 강력한 터미널 접근성을 제공합니다.

특징

  • 안전한 명령 실행: 허용된 명령어만 실행할 수 있도록 제한하는 안전 메커니즘
  • 표준화된 인터페이스: 다양한 운영체제(Linux, macOS, Windows)에서 일관된 경험 제공
  • 디렉토리 탐색: 파일 시스템을 쉽게 탐색할 수 있는 도구
  • 파일 시스템 작업: 파일 생성, 읽기, 수정, 삭제 등의 기본적인 작업 지원
  • 명령 결과 분석: 실행된 명령의 출력을 구조화된 형식으로 반환
  • 권한 관리: 사용자 지정 가능한 접근 제어 목록을 통한 세밀한 권한 관리
  • 로깅 및 감사: 모든 명령 실행에 대한 상세한 로깅 제공

API

리소스

  • 셸 세션: 현재 활성화된 터미널 세션 정보
  • 환경 변수: 터미널 환경에서 사용 가능한 변수 목록
  • 작업 디렉토리: 현재 작업 중인 디렉토리 정보

도구

execute_command

안전하게 터미널 명령을 실행합니다. - 입력: - command: 실행할 명령어 문자열 - timeout: 명령 실행 제한 시간(초, 선택 사항) - 출력: - stdout: 표준 출력 결과 - stderr: 표준 오류 출력 - exit_code: 종료 코드

list_directory

현재 디렉토리 또는 지정된 경로의 내용을 나열합니다. - 입력: - path: 나열할 디렉토리 경로 (선택 사항, 기본값은 현재 디렉토리) - show_hidden: 숨겨진 파일 표시 여부 (선택 사항) - 출력: - 파일 및 디렉토리 목록 (이름, 타입, 크기, 수정 시간 등 포함)

change_directory

작업 디렉토리를 변경합니다. - 입력: - path: 이동할 디렉토리 경로 - 출력: - success: 이동 성공 여부 - new_path: 새 작업 디렉토리의 절대 경로

read_file

텍스트 파일의 내용을 읽습니다. - 입력: - path: 읽을 파일의 경로 - encoding: 파일 인코딩 (선택 사항, 기본값은 'utf-8') - limit: 읽을 최대 바이트 수 (선택 사항) - 출력: - 파일 내용

write_file

텍스트 파일을 생성하거나 덮어씁니다. - 입력: - path: 쓸 파일의 경로 - content: 파일에 쓸 내용 - encoding: 파일 인코딩 (선택 사항, 기본값은 'utf-8') - 출력: - success: 작업 성공 여부 - bytes_written: 쓰여진 바이트 수

get_environment_variables

현재 셸 세션의 환경 변수를 가져옵니다. - 입력: - filter: 특정 패턴과 일치하는 변수만 필터링 (선택 사항) - 출력: - 환경 변수 맵 (이름: 값)

find_files

특정 패턴과 일치하는 파일을 찾습니다. - 입력: - root_path: 검색을 시작할 루트 디렉토리 - pattern: 검색 패턴 (glob 패턴 지원) - max_depth: 최대 검색 깊이 (선택 사항) - type: 검색할 항목 유형 (파일, 디렉토리, 또는 둘 다, 선택 사항) - 출력: - 일치하는 파일 경로 목록

get_file_info

파일이나 디렉토리에 대한 상세 정보를 가져옵니다. - 입력: - path: 정보를 가져올 파일 또는 디렉토리 경로 - 출력: - 파일 유형, 크기, 소유자, 권한, 생성 및 수정 시간 등의 상세 정보

사용 방법

설치

# npm을 통한 설치
npm install -g terminal-control-mcp

# 또는 소스에서 빌드
git clone https://github.com/example/terminal-control-mcp.git
cd terminal-control-mcp
npm install
npm run build

구성

MCP 클라이언트 구성 예시:

{
  "mcpServers": {
    "terminal": {
      "command": "terminal-control-mcp",
      "args": [
        "--allowed-commands=ls,cd,cat,git,npm",
        "--restricted-paths=/home/user",
        "--log-level=info",
        "--max-execution-time=30"
      ]
    }
  }
}

보안 구성

안전한 사용을 위한 권장 보안 설정:

  1. 허용 명령어 목록 설정: 실행할 수 있는 명령어를 명시적으로 지정하여 잠재적인 위험 명령어를 차단합니다.

    --allowed-commands=ls,cat,grep,find,git,npm,node

  2. 금지 명령어 목록 설정: 특별히 위험한 명령어를 추가로 차단합니다.

    --denied-commands=rm,sudo,chmod,chown,dd

  3. 디렉토리 제한: 접근 가능한 디렉토리를 제한합니다.

    --allowed-paths=/home/user/projects,/tmp/safe
    --denied-paths=/home/user/.ssh,/etc,/var

  4. 명령어 시간 제한: 장시간 실행되는 명령어를 방지합니다.

    --max-execution-time=60

  5. 로깅 활성화: 모든 명령어 실행을 로깅하여 감사 추적을 제공합니다.

    --log-level=info
    --log-file=/var/log/terminal-control.log

활용 사례

  1. 개발 환경 관리: 코드 저장소 복제, 의존성 설치, 빌드 및 테스트 실행 등의 개발 작업 자동화
  2. 시스템 진단: 시스템 상태 확인, 로그 분석, 네트워크 진단 등의 문제 해결 작업
  3. 파일 시스템 관리: 파일 찾기, 정렬, 백업 등의 파일 시스템 관리 작업
  4. 데이터 처리: 텍스트 파일 분석, 데이터 변환, 로그 파싱 등의 데이터 처리 작업
  5. 자동화 스크립트 실행: 사전 정의된 스크립트를 안전하게 실행하여 복잡한 작업 자동화

연결된 구성 요소

  • Golang Filesystem Server - 파일 시스템 작업의 확장된 기능
  • Git - Git 저장소 관리와 통합
  • Docker - 컨테이너화된 환경에서의 명령 실행
  • Neovim - 텍스트 편집기와의 통합