NHN Server MCP
The NHN Server MCP is a Model Context Protocol server that provides secure SSH gateway access to remote servers with Kerberos authentication and command execution capabilities.
Core Capabilities:
Execute Remote Commands (
exec) - Run commands on specified servers through an SSH gateway with required host, user, and command parametersView Server Configuration (
get_config) - Query current settings including allowed hosts, whitelisted commands, and server information like log pathsReload Configuration (
reload_config) - Dynamically reload the configuration file without restartingCheck Connection Status (
connection_status) - Monitor the current SSH gateway connection stateDisconnect from Gateway (
disconnect_server) - Manually terminate the SSH gateway connection
Security Features:
Kerberos (kinit) authentication support
Host allowlist to restrict server access
Command whitelisting
macOS native confirmation dialogs with "always allow" option for trusted commands (session-scoped)
Automatic session cleanup after 5 minutes of inactivity
Prevents sensitive config file commits
Use Cases:
Access servers behind SSH gateways from AI assistants
Retrieve and analyze server logs
Execute maintenance commands with approval workflows
Enable AI to understand server topology and log locations
Configure for project-specific or global use across Claude CLI, Desktop, and other MCP clients
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NHN Server MCPshow me the last 50 lines of the app log on server1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gw-ssh
SSH Gateway를 경유하여 원격 서버에 명령을 실행하고 파일을 전송하는 CLI 도구입니다.
기능
SSH Gateway를 경유한 원격 서버 명령 실행 (실시간 스트리밍 출력)
여러 호스트 병렬 실행 (Gateway 인증 1회 + 내부 fan-out)
Gateway 경유 SCP 파일 업로드/다운로드 (바이너리 무결성 보장)
Kerberos 인증 (kinit) 지원
원격 명령어 타임아웃으로 프로세스 hang 방지
호스트 허용 목록으로 접속 제한
설치
npm install
npm run build
npm link # gw-ssh 명령어 글로벌 등록설정
config.json 생성
{
"gatewayConnection": "user@gateway.example.com:22",
"gatewayPassword": "your-password",
"kinitPassword": "your-kerberos-password",
"allowedHosts": ["server1", "server2"],
"commandTimeoutSec": 300,
"serverInfo": {
"user": "default-ssh-user",
"logPaths": {
"app": "/var/log/app"
}
}
}설정 파일 경로 지정
# 방법 1: 환경변수 (~/.zshrc 등에 추가)
export CONFIG_FILE=/path/to/config.json
# 방법 2: --config 옵션
gw-ssh -c /path/to/config.json <command>설정 옵션
키 | 설명 | 기본값 |
| Gateway SSH 연결 (user@host:port) | 필수 |
| Gateway SSH 비밀번호 | 필수 |
| Kerberos 인증 비밀번호 (미설정 시 kinit 생략) | - |
| 접속 허용 호스트 목록 | [] (모두 허용) |
| 원격 명령어 타임아웃 (초). GNU timeout으로 래핑 | 300 |
| 서버 메타 정보 (user, logPaths 등) | {} |
환경변수
변수 | 설명 |
| config.json 파일 경로 |
| 디버그 로그 활성화 ( |
사용법
명령 실행
gw-ssh exec <host> <command> [-u user] [-j jobs] [--buffered]# 단일 호스트
gw-ssh exec server1 "hostname"
gw-ssh exec server1 "uptime" -u appuser
# 로그 조회
gw-ssh exec server1 "tail -100 /var/log/app/app.log"
gw-ssh exec server1 "grep ERROR /var/log/app/app.log | tail -20"-u를 생략하면 serverInfo.user 값을 사용합니다.
여러 호스트 병렬 실행
<host> 에 쉼표로 구분한 CSV 를 넘기면 자동으로 병렬 모드로 동작합니다. Gateway 인증/Kerberos ticket 은 1회만 수행되고, gateway→target 구간에서 fan-out 됩니다.
# 3개 호스트에서 동시에 실행 (기본 동시성 5)
gw-ssh exec server1,server2,server3 "hostname && uptime"
# [server1] server1
# [server1] 15:02:31 up 42 days, ...
# [server2] server2
# [server2] 15:02:31 up 12 days, ...
# [server3] server3
# [server3] 15:02:31 up 7 days, ...
# ✓ 3/3 성공
# 동시성 제한 변경 (gateway 부하 고려해 3~10 권장)
gw-ssh exec h1,h2,h3,h4,h5,h6,h7,h8 "uptime" -j 10
# 호스트별로 출력을 모아 순서대로 표시 (스트리밍 대신 버퍼드 모드)
gw-ssh exec h1,h2 "cat /etc/hostname" --buffered일부 호스트만 실패하면 종료 코드 1 로 실패 요약이 stderr 에 출력됩니다.
파일 업로드
gw-ssh upload <host> <remotePath> [options] [-u user] [-j jobs]# 텍스트 내용 직접 업로드
gw-ssh upload server1 /tmp/hello.txt --content "hello world"
# 로컬 파일 업로드 (바이너리 포함 - gzip, zip, 실행파일 등)
gw-ssh upload server1 /tmp/app.tar.gz --file ./app.tar.gz
# 여러 호스트에 같은 파일 동시 배포 (CSV 지정 시 병렬 모드)
gw-ssh upload server1,server2,server3 /tmp/app.tar.gz --file ./app.tar.gz다중 호스트 업로드 시 로컬→gateway 전송은 1회, gateway→각 target 은 병렬로 fan-out. 파일이 크거나 호스트 수가 많을수록 로컬 대역폭 절감 효과가 큼.
파일 다운로드
gw-ssh download <host> <remotePath> [options] [-u user] [-j jobs]# 표준 출력으로 내용 확인
gw-ssh download server1 /etc/hosts
# 로컬 파일로 저장
gw-ssh download server1 /etc/hosts -o ./downloaded-hosts.txt
# 바이너리 파일도 무결성 유지 (gzip, zip, 실행파일 등)
gw-ssh download server1 /var/app/release.tar.gz -o ~/Downloads/release.tar.gz
# 여러 호스트에서 동시에 다운로드 — -o 에 디렉토리 지정, 파일명 앞에 호스트 접두
gw-ssh download server1,server2 /var/log/app.log -o ~/Downloads/
# → ~/Downloads/server1-app.log
# → ~/Downloads/server2-app.log-o 는 단일 호스트일 때 파일 경로, 다중 호스트일 때 이미 존재하는 디렉토리 경로여야 합니다.
다중 호스트 다운로드에서 일부 호스트만 실패한 경우, 성공한 호스트의 파일은 -o 디렉토리에 그대로 남습니다. 전체 rollback 이 필요하면 수동 삭제.
설정 확인
gw-ssh config연결 테스트
gw-ssh status보안
config.json에 민감한 정보(비밀번호)가 포함되므로 git에 커밋하지 마세요
allowedHosts로 접속 가능한 서버를 제한합니다Base64 인코딩 + 셸 인젝션 방지 패턴으로 명령어 안전성 확보
예외 발생 시에도 SSH 세션 자동 정리
라이선스
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dhks77/gw-ssh'
If you have feedback or need assistance with the MCP directory API, please join our Discord server