HS-StoneOS-MCP Server

HS-StoneOS-MCP Server

Provides 129 MCP tools for querying and managing Hillstone StoneOS firewalls, enabling AI assistants to perform network operations through natural language.

Category
访问服务器

README

HS-StoneOS-MCP Server

基于 MCP (Model Context Protocol) 协议的 Hillstone StoneOS 防火墙数据查询服务器。通过 stdio 传输将 129 个防火墙管理工具暴露给 AI 助手,实现自然语言驱动的网络运维。

功能概览

提供 129 个 MCP 工具,覆盖 7 大业务模块:

模块 文件 工具数 典型工具
设备管理 tools/index.ts 1 list_devices
系统管理 tools/system.ts 35 get_system_info、emulate_packet_trace、HA 配置、SNMP、许可证、虚拟系统、抓包、丢包统计
网络配置 tools/network.ts 44 get_interface_list、get_zone_list、路由、VPN(IPSec/SSL/GRE/VXLAN)、DNS、组播、隧道
流量监控 tools/monitor.ts 22 get_app_rank、get_current_session_count、CPU/内存趋势、链路性能、日志
策略管理 tools/policy.ts 11 get_policy_list、SNAT/DNAT/BNAT、get_qos_config、策略统计
威胁安全 tools/threat.ts 7 get_threat_event_list、威胁日志聚合、热点威胁情报
特征库 tools/feature.ts 9 get_signature_config��IPS 模板、URL 过滤、应用类别

完整工具目录见 TOOLS_CATALOG.md,架构细节见 mcp-stdio-server-exploration.md。

快速开始

1. 添加设备配置

创建项目根目录下的 devices.json:

{
  "devices": [
    {
      "id": "fw-192.168.76.188",
      "name": "云界防火墙",
      "host": "192.168.76.188",
      "username": "admin",
      "password": "your_password",
      "protocol": "https",
      "isDefault": true
    }
  ],
  "defaultLocale": "zh_CN"
}

认证方式(二选一):

  • username + password:传统用户名/密码登录
  • api_token:API Token 登录(StoneOS 5.5R12 / 5.5R10F5 以上版本支持,推荐,优先级高于用户名/密码)

password 和 api_token 以明文存储,请注意文件系统权限。配置多台设备时只需在 devices 数组中追加条目。

2. 安装依赖

npm install

3. 构建

npm run build

构建产物为 dist/hs-stoneos-mcp.js,esbuild 打包的单文件 ESM,约 1.7 MB,无需 node_modules 即可独立运行。

4. 运行

npm start          # 开发模式:tsx 直接执行 TypeScript 源码
node dist/hs-stoneos-mcp.js   # 生产模式:运行构建产物

服务启动后将通过 stdio 监听 MCP JSON-RPC 消息。

配置详解

devices.json — 多设备凭据

字段 类型 必填 说明
id string 是 设备唯一标识,各工具通过 device_id 参数引用
name string 是 设备显示名称
host string 是 设备 IP 或域名
username string 否* 用户名(需配合 password)
password string 否* 密码(需配合 username)
api_token string 否* API Token(5.5R12+,优先于 username/password)
protocol string 否 协议,默认 https
isDefault boolean 否 是否为默认设备,不传 device_id 时使用

*username+password 与 api_token 至少提供一种。

tools-config.json — 工具开关

129 个工具默认大多禁用,按需在 src/tools-config.json 中启用:

{
  "tools": [
    { "name": "get_system_info", "description": "...", "enabled": true },
    { "name": "get_threat_event_list", "description": "...", "enabled": false }
  ]
}

修改后重启 MCP Server 生效。可通过环境变量 TOOLS_CONFIG_PATH 指定自定义路径。

环境变量

变量名 说明 默认值
DEVICES_CONFIG_PATH devices.json 的绝对路径 ./devices.json
TOOLS_CONFIG_PATH tools-config.json 的绝对路径 src/tools-config.json

早期版本使用 HILLSTONE_HOST、HILLSTONE_USER 等环境变量存放凭据,已被 devices.json 替代,不再支持。

项目结构

HS-StoneOS-MCP-20260506/
├── src/
│   ├── index.ts                  # 入口:DeviceManager + ToolFilter + 工具注册 + Stdio 启动
│   ├── .env                      # 环境变量(凭据已迁移至 devices.json)
│   ├── tools-config.json         # 工具启用/禁用开关
│   ├── client/
│   │   ├── fw-client.ts          # StoneOS API 客户端(双重认证、session 管理、自动重登录)
│   │   └── device-manager.ts     # 多设备管理器(配置加载、FwClient 懒加载、缓存)
│   ├── tools/
│   │   ├── index.ts              # 工具注册编排器 + list_devices
│   │   ├── system.ts             # 系统管理(35 工具)
│   │   ├── network.ts            # 网络配置(44 工具)
│   │   ├── monitor.ts            # 流量监控(22 工具)
│   │   ├── policy.ts             # 策略/NAT/QoS(11 工具)
│   │   ├── threat.ts             # 威胁/安全(7 工具)
│   │   └── feature.ts            # 特征库(9 工具)
│   └── utils/
│       ├── response.ts           # MCP 响应构造器(ok / err / pickFields)
│       ├── traffic-utils.ts      # Zod schema + 流量字段白名单
│       └── tool-filter.ts        # 工具启用/禁用运行时过滤器
├── scripts/
│   ├── build.ts                  # esbuild 打包 + 静态资源复制
│   └── list-tools.ts             # 工具枚举脚本
├── dist/                         # 构建产物(git ignored)
│   └── hs-stoneos-mcp.js         # 单文件 ESM,~1.7 MB
├── devices.json                  # 多设备凭据配置
├── package.json
├── tsconfig.json
├── README.md
├── TOOLS_CATALOG.md              # 完整工具目录
└── mcp-stdio-server-exploration.md  # 架构/实现文档

MCP Client 集成

WorkBuddy

在 ~/.workbuddy/mcp.json 中添加:

{
  "mcpServers": {
    "hs-stoneos": {
      "command": "node",
      "args": ["F:/Workbuddy_path/StoneOS MCP/HS-StoneOS-MCP-20260506/dist/hs-stoneos-mcp.js"],
      "env": {
        "DEVICES_CONFIG_PATH": "F:/Workbuddy_path/StoneOS MCP/HS-StoneOS-MCP-20260506/devices.json"
      }
    }
  }
}

Claude Code

claude mcp add --transport stdio hs-stoneos -- node "F:/Workbuddy_path/StoneOS MCP/HS-StoneOS-MCP-20260506/dist/hs-stoneos-mcp.js" --scope user

然后在 ~/.claude.json 的对应条目中添加 env 字段:

"env": {
  "DEVICES_CONFIG_PATH": "F:/Workbuddy_path/StoneOS MCP/HS-StoneOS-MCP-20260506/devices.json"
}

MCP Inspector(调试)

npx @modelcontextprotocol/inspector
  • Transport Type: STDIO
  • Command: node
  • Arguments: dist/hs-stoneos-mcp.js

注意:Inspector 的工作目录需能访问 devices.json,或通过 DEVICES_CONFIG_PATH 环境变量指定绝对路径。

可用脚本

命令 说明
npm start 使用 tsx 直接运行 TypeScript 源码(开发模式)
npm run build esbuild 构建:单文件打包 + 复制静态资源
npm run typecheck TypeScript 类型检查(tsc --noEmit,不输出文件)

技术栈

组件 技术 说明
运行时 Node.js 20+ / TypeScript 6.x ESM 模块系统
MCP SDK @modelcontextprotocol/sdk ^1.29.0 stdio 传输
HTTP 客户端 axios ^1.15.2 StoneOS REST API 调用
Schema 验证 zod ^4.3.6 工具参数校验
构建 esbuild ^0.28.0 单文件 ESM 打包
目标 API StoneOS REST API 5.5R12P2 100+ API 路径

相关文档

文档 内容
TOOLS_CATALOG.md 完整工具目录(按 StoneOS API 层级结构,113 条)
mcp-stdio-server-exploration.md 架构设计、认证流程、FwClient 实现、工具注册机制

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选