Skip to main content
Glama
dhks77
by dhks77

NHN Server MCP

Это MCP-сервер (Model Context Protocol) для подключения к серверам и выполнения команд через SSH-шлюз.

Функции

  • Подключение к серверу через SSH-шлюз

  • Поддержка аутентификации Kerberos (kinit)

  • Подтверждение выполнения команд через нативный диалог macOS

  • Автоматическое одобрение идентичных команд с опцией «Всегда разрешать»

  • Получение информации о сервере (ИИ может проверять пути к логам и т.д.)

  • Загрузка/скачивание файлов через SCP с использованием шлюза

  • Предотвращение зависания процессов с помощью тайм-аута удаленных команд

  • Динамическая перезагрузка конфигурации

Установка

npm install
npm run build

Настройка

1. Создание config.json

{
  "gatewayConnection": "user@gateway.example.com:22",
  "gatewayPassword": "your-password",
  "kinitPassword": "your-kerberos-password",
  "allowedHosts": ["server1", "server2"],
  "confirmDialog": true,
  "serverInfo": {
    "서버에 대한 user 정보 필수": "exec 할때 user 를 같이 보냅니다.",
    "나머지는": "원하는 내용으로",
    "ex - logPaths": {
      "app": "/var/log/app.log",
      "nginx": "/var/log/nginx/access.log"
    }
  }
}

2. Настройка клиента

Claude Code (CLI)

Регистрация через команду CLI:

# 프로젝트 단위 (해당 프로젝트에서만 사용)
claude mcp add --scope project nhn-server -e CONFIG_FILE=/path/to/config.json -e DEBUG=false -- node /path/to/nhn-server-mcp/dist/index.js

# 글로벌 (모든 프로젝트에서 사용)
claude mcp add --scope user nhn-server -e CONFIG_FILE=/path/to/config.json -e DEBUG=false -- node /path/to/nhn-server-mcp/dist/index.js

Также можно отредактировать файл конфигурации напрямую.

На уровне проекта — создайте .mcp.json в корне проекта:

{
  "mcpServers": {
    "nhn-server": {
      "command": "node",
      "args": ["/path/to/nhn-server-mcp/dist/index.js"],
      "env": {
        "CONFIG_FILE": "/path/to/config.json",
        "DEBUG": "false"
      }
    }
  }
}

Глобально — добавьте в ~/.claude.json:

{
  "mcpServers": {
    "nhn-server": {
      "command": "node",
      "args": ["/path/to/nhn-server-mcp/dist/index.js"],
      "env": {
        "CONFIG_FILE": "/path/to/config.json",
        "DEBUG": "false"
      }
    }
  }
}

.mcp.json — используется только в данном проекте. Можно закоммитить в git для совместного использования (но будьте осторожны, так как пути к config.json могут отличаться у разных пользователей)

~/.claude.json — используется во всех проектах. Для персональных настроек окружения

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nhn-server": {
      "command": "node",
      "args": ["/path/to/nhn-server-mcp/dist/index.js"],
      "env": {
        "CONFIG_FILE": "/path/to/config.json",
        "DEBUG": "false"
      }
    }
  }
}

Параметры конфигурации

Ключ

Описание

Значение по умолчанию

gatewayConnection

SSH-подключение к шлюзу (user@host:port)

-

gatewayPassword

Пароль SSH для шлюза

-

kinitPassword

Пароль для аутентификации Kerberos

-

allowedHosts

Список разрешенных хостов

[] (разрешены все)

confirmDialog

Показывать диалог подтверждения перед выполнением команды

true

serverInfo

Информация о сервере, доступная ИИ

{}

commandTimeoutSec

Тайм-аут удаленной команды (сек). Обернуто в GNU timeout

300

Переменные окружения

Переменная

Описание

CONFIG_FILE

Путь к файлу config.json

DEBUG

Включение отладочных логов (true/false)

Инструменты MCP

exec

Выполняет команду на сервере.

{
  "host": "server-hostname",
  "user": "appuser",
  "command": "tail -100 /var/log/app.log"
}

Если включен confirmDialog, отображается нативный диалог macOS:

  • Отмена: команда не выполняется

  • Подтвердить: выполнить только сейчас

  • Всегда разрешать: выполнить + последующие идентичные команды без подтверждения (сбрасывается при завершении сессии)

get_config

Получает информацию о конфигурации сервера (разрешенные хосты, информация о сервере).

reload_config

Перезагружает файл конфигурации.

disconnect_server

Завершает подключение к шлюзу.

connection_status

Проверяет текущий статус подключения.

scp_upload

Загружает содержимое файла на сервер. (SCP через шлюз)

{
  "host": "server-hostname",
  "user": "appuser",
  "remotePath": "/path/to/remote/file.txt",
  "content": "파일 내용"
}

scp_download

Скачивает файл с сервера. (SCP через шлюз)

{
  "host": "server-hostname",
  "user": "appuser",
  "remotePath": "/path/to/remote/file.txt",
  "localPath": "/path/to/local/file.txt"
}
  • Если указан localPath, сохраняется в локальный файл

  • Если localPath не указан, возвращается только содержимое файла

Безопасность

  • Не коммитьте config.json в git, так как он содержит конфиденциальную информацию (пароли)

  • Пользователь подтверждает выполнение команд через confirmDialog

  • Доступ к серверам ограничивается через allowedHosts

  • Автоматическое завершение подключения при отсутствии активности в течение 5 минут

  • Автоматическая очистка сессии даже при возникновении исключений

Лицензия

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

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/nhn-server-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server