링크된 문서
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"
]
}
}
}
보안 구성
안전한 사용을 위한 권장 보안 설정:
-
허용 명령어 목록 설정: 실행할 수 있는 명령어를 명시적으로 지정하여 잠재적인 위험 명령어를 차단합니다.
--allowed-commands=ls,cat,grep,find,git,npm,node -
금지 명령어 목록 설정: 특별히 위험한 명령어를 추가로 차단합니다.
--denied-commands=rm,sudo,chmod,chown,dd -
디렉토리 제한: 접근 가능한 디렉토리를 제한합니다.
--allowed-paths=/home/user/projects,/tmp/safe --denied-paths=/home/user/.ssh,/etc,/var -
명령어 시간 제한: 장시간 실행되는 명령어를 방지합니다.
--max-execution-time=60 -
로깅 활성화: 모든 명령어 실행을 로깅하여 감사 추적을 제공합니다.
--log-level=info --log-file=/var/log/terminal-control.log
활용 사례
- 개발 환경 관리: 코드 저장소 복제, 의존성 설치, 빌드 및 테스트 실행 등의 개발 작업 자동화
- 시스템 진단: 시스템 상태 확인, 로그 분석, 네트워크 진단 등의 문제 해결 작업
- 파일 시스템 관리: 파일 찾기, 정렬, 백업 등의 파일 시스템 관리 작업
- 데이터 처리: 텍스트 파일 분석, 데이터 변환, 로그 파싱 등의 데이터 처리 작업
- 자동화 스크립트 실행: 사전 정의된 스크립트를 안전하게 실행하여 복잡한 작업 자동화
연결된 구성 요소
- Golang Filesystem Server - 파일 시스템 작업의 확장된 기능
- Git - Git 저장소 관리와 통합
- Docker - 컨테이너화된 환경에서의 명령 실행
- Neovim - 텍스트 편집기와의 통합