Skip to main content
Glama

Pingo - 本地局域网调试 MCP 服务器

一个 MCP 服务器,以清晰的按服务划分职责的架构提供整套本地网络调试工具,便于扩展。

提供的工具

工具

说明

get_network_interfaces

列出本地 IPv4 接口(名称、IP、子网掩码、MAC)

ping_device

Ping 单个 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 个端口)

get_arp_table

读取操作系统 ARP 缓存,获取局域网内的 IP 到 MAC 映射

get_active_connections

通过 netstat 列出活动连接,可选端口过滤

check_http_reachability

检查 HTTP(S) 端点是否响应,返回状态码与延迟

Related MCP server: Network Ops MCP

设计说明

  • 每个关注点对应一个服务(src/services/*)——每个服务只做一件事,并被注入到 controller 中。因此,添加新的诊断功能(例如 MTU 发现、带宽测试)只需新增一个服务 + 一次 registerTool 调用,其他均无需改动。

  • 无 shell 注入面。 每条操作系统命令都通过 execFile 执行(argv 数组方式,绝不使用 shell 字符串),所有输入在到达命令或套接字之前,都会经过严格的白名单验证(src/utils/validators.ts)。

  • 默认有界。 端口扫描跨度上限为 1024 个端口,网段扫描上限为 /24,所有操作都有超时——因此,任一看似的输入都不会挂起进程,也不会演变成无限制的网络扫描。

  • DNS 使用 Node 原生的 dns/promises,完全不借助 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. 将其加入 PingoMcpController.ts 中的 PingoServices,并在 src/index.ts 中实例化。

  3. 在 registerTools() 中添加一个 server.registerTool(...) 代码块。

这就是全部的扩展入口——其他文件无需任何改动。

Related MCP Connectors

Related MCP Servers