local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides access to Git Bash shell for executing Git commands and scripts on Windows, allowing repository management and version control operations.
Supports SSH connections to Raspberry Pi devices for remote command execution, configured through the SSH connection profiles.
Enables controlled execution of shell commands across PowerShell, CMD, and Git Bash with security restrictions, command blocking, and history tracking.
Windows CLI MCP 서버
Windows 시스템에서 안전한 명령줄 상호작용을 위한 MCP 서버로 , SSH를 통해 PowerShell, CMD, Git Bash 셸 및 원격 시스템에 대한 제어된 액세스를 지원합니다. MCP 클라이언트(예: Claude Desktop )가 Open Interpreter 와 유사하게 시스템에서 작업을 수행할 수 있도록 지원합니다.
[!중요] 이 MCP 서버는 SSH를 통해 시스템의 명령줄 인터페이스와 원격 시스템에 직접 액세스할 수 있도록 합니다. 활성화하면 파일, 환경 변수, 명령 실행 기능 및 원격 서버 관리에 액세스할 수 있습니다.
- 허용된 경로 및 SSH 연결을 검토하고 제한합니다.
- 디렉토리 제한 활성화
- 명령 블록 구성
- 보안 영향을 고려하세요
자세한 내용은 구성을 참조하세요.
특징
- 멀티 셸 지원 : PowerShell, 명령 프롬프트(CMD), Git Bash에서 명령 실행
- SSH 지원 : SSH를 통해 원격 시스템에서 명령 실행
- 리소스 노출 : SSH 연결, 현재 디렉토리 및 구성을 MCP 리소스로 보기
- 보안 제어 :
- 명령어 및 SSH 명령어 차단(전체 경로, 대소문자 변형)
- 작업 디렉토리 검증
- 최대 명령 길이 제한
- 명령 로깅 및 기록 추적
- 스마트한 인수 검증
- 구성 가능 :
- 사용자 정의 보안 규칙
- 셸별 설정
- SSH 연결 프로필
- 경로 제한
- 차단된 명령 목록
MCP 클라이언트에 서버가 제공하는 도구와 리소스에 대한 자세한 내용은 API 섹션을 참조하세요.
참고 : 서버는 구성된 디렉토리 내에서 허용된 명령을 사용하고 구성된 SSH 연결을 통해서만 작업을 허용합니다.
Claude Desktop과 함께 사용
claude_desktop_config.json
에 다음을 추가하세요:
지엑스피1
특정 구성 파일과 함께 사용하려면 --config
플래그를 추가하세요.
구성 후 다음을 수행할 수 있습니다.
- 사용 가능한 도구를 사용하여 명령을 직접 실행합니다.
- 리소스 섹션에서 구성된 SSH 연결 및 서버 구성을 확인하세요.
- 제공된 도구를 통해 SSH 연결을 관리합니다.
구성
서버는 JSON 구성 파일을 사용하여 동작을 사용자 지정합니다. 보안 제어, 셸 구성 및 SSH 연결에 대한 설정을 지정할 수 있습니다.
- 기본 구성 파일을 만들려면 다음 중 하나를 수행하세요.
a) config.json.example
config.json
에 복사하거나
b) 실행:
- 그런 다음 Claude Desktop 사용 섹션에 설명된 대로
--config
플래그를 설정하여 구성 파일을 가리키도록 합니다.
구성 위치
서버는 다음 위치에서 구성을 찾습니다(순서대로).
--config
플래그로 지정된 경로- 현재 디렉토리의 ./config.json
- 사용자 홈 디렉토리의 ~/.win-cli-mcp/config.json
구성 파일을 찾을 수 없는 경우 서버는 기본(제한된) 구성을 사용합니다.
기본 구성
참고 : 기본 구성은 제한적이고 안전하게 설계되었습니다. 각 설정에 대한 자세한 내용은 구성 설정 섹션에서 확인하세요.
구성 설정
구성 파일은 security
, shells
, ssh
세 가지 주요 섹션으로 나뉩니다.
보안 설정
셸 구성
SSH 구성
API
도구
- 실행 명령
- 지정된 셸에서 명령을 실행합니다.
- 입력:
shell
(문자열): 사용할 셸("powershell", "cmd" 또는 "gitbash")command
(문자열): 실행할 명령workingDir
(선택적 문자열): 작업 디렉토리
- 실행에 실패하면 명령 출력을 텍스트로 반환하거나 오류 메시지를 반환합니다.
- 명령 기록 가져오기
- 실행된 명령의 기록을 가져옵니다
- 입력:
limit
(선택적 숫자) - 출력과 함께 타임스탬프가 지정된 명령 기록을 반환합니다.
- ssh_execute
- SSH를 통해 원격 시스템에서 명령 실행
- 입력:
connectionId
(문자열): 사용할 SSH 연결의 IDcommand
(문자열): 실행할 명령
- 실행에 실패하면 명령 출력을 텍스트로 반환하거나 오류 메시지를 반환합니다.
- ssh_disconnect
- SSH 서버에서 연결 해제
- 입력:
connectionId
(문자열): 연결을 끊을 SSH 연결의 ID
- 확인 메시지를 반환합니다.
- ssh_연결 생성
- 새로운 SSH 연결을 만듭니다
- 입력:
connectionId
(문자열): 새 SSH 연결에 대한 IDconnectionConfig
(객체): 호스트, 포트, 사용자 이름, 비밀번호 또는 privateKeyPath를 포함한 연결 구성 세부 정보
- 확인 메시지를 반환합니다.
- ssh_연결 읽기
- 구성된 모든 SSH 연결을 읽습니다.
- 구성에서 모든 SSH 연결 목록을 반환합니다.
- 업데이트_ssh_연결
- 기존 SSH 연결 업데이트
- 입력:
connectionId
(문자열): 업데이트할 SSH 연결의 IDconnectionConfig
(객체): 새로운 연결 구성 세부 정보
- 확인 메시지를 반환합니다.
- ssh_연결 삭제
- SSH 연결 삭제
- 입력:
connectionId
(문자열): 삭제할 SSH 연결의 ID
- 확인 메시지를 반환합니다.
- get_current_directory
- 서버의 현재 작업 디렉토리를 가져옵니다
- 현재 작업 디렉토리 경로를 반환합니다.
자원
- SSH 연결
- URI 형식:
ssh://{connectionId}
- 민감한 정보가 가려진 연결 세부 정보가 포함되어 있습니다.
- 구성된 각 SSH 연결에 대한 하나의 리소스
- 예:
ssh://raspberry-pi
"raspberry-pi" 연결에 대한 구성을 보여줍니다.
- URI 형식:
- SSH 구성
- URI:
ssh://config
- 전체 SSH 구성 및 모든 연결(암호는 마스크됨)이 포함되어 있습니다.
- defaultTimeout, maxConcurrentSessions 및 연결 목록과 같은 설정을 표시합니다.
- URI:
- 현재 디렉토리
- URI:
cli://currentdir
- CLI 서버의 현재 작업 디렉토리를 포함합니다.
- 기본적으로 명령이 실행되는 경로를 표시합니다.
- URI:
- CLI 구성
- URI:
cli://config
- CLI 서버 구성(민감한 데이터 제외)이 포함되어 있습니다.
- 보안 설정, 셸 구성 및 SSH 설정을 표시합니다.
- URI:
보안 고려 사항
내장 보안 기능(항상 활성화)
다음 보안 기능은 서버에 하드코딩되어 있어 비활성화할 수 없습니다.
- 대소문자 구분 없이 명령 차단 : 모든 명령 차단은 대소문자를 구분하지 않습니다(예: "del"이 blockedCommands에 있으면 "DEL.EXE", "del.cmd" 등이 모두 차단됨)
- 스마트 경로 구문 분석 : 서버는 우회 시도를 방지하기 위해 전체 명령 경로를 구문 분석합니다("rm"이 차단된 경우 "C:\Windows\System32\rm.exe" 차단).
- 명령어 구문 분석 인텔리전스 : 거짓 양성 반응이 방지됩니다(예: "rm"이 blockedCommands에 있다는 이유만으로 "warm_dir"이 차단되지 않음)
- 입력 검증 : 모든 사용자 입력은 실행 전에 검증됩니다.
- Shell 프로세스 관리 : 실행 또는 시간 초과 후 프로세스가 정상적으로 종료됩니다.
- 민감한 데이터 마스킹 : 비밀번호는 리소스에서 자동으로 마스킹됩니다(********로 대체됨)
구성 가능한 보안 기능(기본적으로 활성화됨)
이러한 보안 기능은 config.json 파일을 통해 구성할 수 있습니다.
- 명령 차단 :
blockedCommands
배열에 지정된 명령이 차단됩니다(기본값에는 rm, del, format과 같은 위험한 명령이 포함됩니다) - 인수 차단 :
blockedArguments
배열에 지정된 인수가 차단됩니다(기본값에는 잠재적으로 위험한 플래그가 포함됨) - 명령 주입 보호 : 명령 체이닝을 방지합니다(기본적으로
enableInjectionProtection: true
통해 활성화됨) - 작업 디렉토리 제한 : 명령 실행을 지정된 디렉토리로 제한합니다(기본적으로
restrictWorkingDirectory: true
를 통해 활성화됨) - 명령 길이 제한 : 최대 명령 길이를 제한합니다(기본값: 2000자)
- 명령 시간 초과 : 너무 오래 실행되는 명령을 종료합니다(기본값: 30초)
- 명령 로깅 : 명령 기록을 기록합니다(기본적으로
logCommands: true
를 통해 활성화됨)
중요 보안 경고
이는 기능이 아니지만 알아두어야 할 중요한 보안 고려 사항입니다.
- 환경 액세스 : 명령은 민감한 정보를 포함할 수 있는 환경 변수에 액세스할 수 있습니다.
- 파일 시스템 액세스 : 명령은 허용된 경로 내에서 파일을 읽고 쓸 수 있습니다. 민감한 데이터에 대한 액세스를 방지하려면
allowedPaths
신중하게 구성하세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
You must be authenticated.
Tools
Claude Desktop과 같은 MCP 클라이언트가 구성 가능한 보안 제어를 통해 PowerShell, CMD 및 Git Bash 셸에서 명령을 안전하게 실행할 수 있도록 하는 Windows 시스템에 대한 안전한 명령줄 액세스를 제공하는 모델 컨텍스트 프로토콜 서버입니다.