Skip to main content
Glama

Pingo — MCP-сервер для отладки локальной сети

MCP-сервер, предоставляющий полный набор инструментов для отладки вашей локальной сети, построенный на чистой архитектуре «один сервис — одна ответственность», поэтому его легко расширять.

Предоставляемые инструменты

Инструмент

Что делает

get_network_interfaces

Перечисляет локальные IPv4-интерфейсы (имя, IP, маска, MAC)

ping_device

Пингует один IPv4-адрес, сообщает о доступности/задержке

ping_sweep

Сканирует диапазон /24–/32 CIDR для поиска активных хостов (с ограничением параллелизма)

traceroute

Системная трассировка (traceroute/tracert) до хоста или IP

dns_lookup

Разрешает имя хоста в его IPv4/IPv6-адреса

reverse_dns_lookup

Разрешает IP обратно в имена хостов

check_port

Проверяет, открыт ли один TCP-порт

scan_port_range

Сканирует диапазон TCP-портов (до 1024 портов) через raw-сокеты

get_arp_table

Читает ARP-кэш ОС — сопоставления IP→MAC в локальной сети

get_active_connections

Перечисляет активные соединения через netstat, опциональный фильтр по пору

check_http_reachability

Проверяет, отвечает ли HTTP(S)-эндпоинт, со статусом и задержкой

Related MCP server: Network Ops MCP

Заметки по архитектуре

  • Один сервис — одна задача (src/services/*) — каждый сервис делает ровно одну работу и внедряется в контроллер, поэтому добавление новой диагностики (например, MTU discovery, тест пропускной способности) означает добавление одного нового сервиса и одного вызова registerTool — больше ничего менять не нужно.

  • Никакой поверхности для shell-инъекций. Каждана команда ОС выполняется через execFile (массив argv, а не строка shell), и каждый ввод проходит проверку по строогму списку доступных значений (src/utils/validators.ts), прежде чем попасть в команду или сокет.

  • Ограничено по умолчанию. Сканирование портов огра ничено диапозоном из 1024 портов, сканирование подсетей — не более /24, у всего есть тайм-аут, так что некоррекный ввод не может подвесить процесс и не вызовет бесконечного сканирования сети.

  • DNS использует нативный dns/promises от Node, а не shell-команду вообще — одной поверхностью exec меньше для инструмента, который кажется самым рискованным.

Запуск

pnpm install
pnpm dev        # tsx src/index.ts, hot-reload dev mode
pnpm build && pnpm start   # compiled prod run

Сервер слушает http://localhost:3000/mcp.

Расширение

  1. Добавьте src/services/YourService.ts, реализующий интерфейс IYourService (по образцу существующих сервисов — без конструктора, один или два узких метода).

  2. Добавьте его в PingoServices в PingoMcpController.ts и создайте его экземпляр в src/index.ts.

  3. Добавьте один блок server.registerTool(...) в registerTools().

Это вся поверхность расширения — никакие другие файлы менять не нужно.

Related MCP Connectors

Related MCP Servers