Token导航 LogoToken导航TokenDH.com
Iot MCP Claude logo
运维云端未说明官方级别未说明来源级核验

Iot MCP Claude

MCP Server

IoT MCP Server是一个通过Claude AI管理物联网设备和网络的服务器,支持SSH、REST API和Serial协议,提供135种工具覆盖17种设备类型。

工具数

135

提示词数

0

GitHub Stars

1

资源数

0
设备控制TypeScriptClaude网络工具Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

monthop-gmail

提供方

monthop-gmail

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

IoT MCP Server

MCP (Model Context Protocol) Server สำหรับจัดการอุปกรณ์ IoT และ Network ผ่าน Claude AI

รองรับ 135 tools สำหรับ 17 ประเภทอุปกรณ์ ผ่าน 3 protocols: SSH, REST API, Serial

Supported Devices

DeviceProtocolTools
Cisco SwitchSSH CLI8 tools - interfaces, VLANs, MAC table, ARP, CDP, spanning-tree
HP SwitchSSH CLI8 tools - interfaces, VLANs, MAC table, ARP, LLDP, spanning-tree
FortigateREST API + SSH8 tools - firewall policies, routes, VPN, DHCP, sessions
MikrotikREST API + SSH8 tools - interfaces, routes, firewall, DHCP, wireless, queues
ThingsBoardREST API (JWT)6 tools - devices, telemetry, attributes, RPC, alarms, dashboards
ESPHomeREST API6 tools - devices, states, services, logs, compile
ESPConnectREST API4 tools - devices, status, command, OTA
TuyaCloud API (HMAC)5 tools - devices, status, commands, scenes
Sonoff/eWeLinkCloud API (v2)4 tools - devices, toggle, power usage
QNAP NASREST API (QTS)8 tools - system info, volumes, disks, shared folders, apps, logs
Synology NASREST API (DSM)9 tools - system info, storage, disks, shared folders, packages, docker
Proxmox VEREST API (PVE)10 tools - nodes, VMs, LXC containers, storage, cluster resources
VMware ESXiREST API (vSphere)13 tools - VMs, power, snapshots, host, datastores, networks
Dahua NVR/DVRHTTP CGI API8 tools - system info, channels, storage, alarms, recording, PTZ
Dahua DSSREST API (token)9 tools - server info, devices, channels, alarms, organizations
OpenStack/MicroStackREST API (Keystone v3)12 tools - servers, flavors, hypervisors, images, networks, volumes
Hi-Flying Serial ServerAT Commands (TCP)9 tools - device info, serial config, network, WiFi, AT command, serial data

Plus 8 cross-device tools: list devices, status, test connection, execute command, get config, serial ports, VPN status

Architecture

src/
├── index.ts                    # stdio transport
├── server-sse.ts               # Streamable HTTP transport
├── config.ts                   # env + devices.json loader
├── types.ts                    # shared interfaces
├── device-registry.ts          # singleton device registry
├── connectors/
│   ├── base-connector.ts       # abstract base class
│   ├── ssh-connector.ts        # SSH base (ssh2)
│   ├── rest-connector.ts       # REST base (native fetch)
│   ├── serial-connector.ts     # Serial base (serialport)
│   ├── cisco-connector.ts      # Cisco Switch
│   ├── hp-connector.ts         # HP Switch
│   ├── fortigate-connector.ts  # Fortigate (REST + SSH)
│   ├── mikrotik-connector.ts   # Mikrotik (REST + SSH)
│   ├── thingsboard-connector.ts
│   ├── esphome-connector.ts
│   ├── espconnect-connector.ts
│   ├── tuya-connector.ts       # Tuya Cloud (HMAC signing)
│   ├── sonoff-connector.ts     # eWeLink API v2
│   ├── qnap-connector.ts      # QNAP QTS API
│   ├── synology-connector.ts  # Synology DSM API
│   ├── proxmox-connector.ts   # Proxmox VE API
│   ├── esxi-connector.ts     # VMware vSphere REST API
│   ├── dahua-nvr-connector.ts # Dahua NVR/DVR/IPC CGI API
│   ├── dahua-dss-connector.ts # Dahua DSS Pro/Express REST API
│   ├── openstack-connector.ts # OpenStack/MicroStack (Keystone v3)
│   ├── hiflying-connector.ts  # Hi-Flying Serial Server (AT+TCP)
│   └── index.ts                # connector factory
└── tools/
    ├── index.ts                # 135 tool definitions + dispatcher
    ├── device-tools.ts         # cross-device operations
    ├── network-switch-tools.ts # Cisco + HP
    ├── firewall-tools.ts       # Fortigate
    ├── mikrotik-tools.ts       # Mikrotik
    ├── thingsboard-tools.ts    # ThingsBoard
    ├── esphome-tools.ts        # ESPHome
    ├── espconnect-tools.ts     # ESPConnect
    ├── tuya-tools.ts           # Tuya
    ├── sonoff-tools.ts         # Sonoff
    ├── qnap-tools.ts          # QNAP
    ├── synology-tools.ts      # Synology
    ├── proxmox-tools.ts       # Proxmox
    ├── esxi-tools.ts          # ESXi
    ├── dahua-nvr-tools.ts     # Dahua NVR
    ├── dahua-dss-tools.ts     # Dahua DSS
    ├── openstack-tools.ts     # OpenStack
    └── hiflying-tools.ts      # Hi-Flying

Connector Pattern

BaseConnector (abstract)
├── SSHConnector (ssh2 with legacy algo support)
│   ├── CiscoConnector
│   └── HPConnector
├── RESTConnector (native fetch)
│   ├── FortigateConnector (+SSH helper)
│   ├── MikrotikConnector (+SSH helper)
│   ├── ThingsBoardConnector (JWT auth)
│   ├── ESPHomeConnector
│   ├── ESPConnectConnector
│   ├── TuyaConnector (HMAC-SHA256 signing)
│   ├── SonoffConnector (eWeLink v2)
│   ├── QnapConnector (QTS API)
│   ├── SynologyConnector (DSM API)
│   ├── ProxmoxConnector (PVE API)
│   ├── ESXiConnector (vSphere REST API)
│   ├── DahuaNvrConnector (HTTP CGI, Basic auth)
│   ├── DahuaDssConnector (REST API, token auth)
│   ├── OpenStackConnector (Keystone v3 + Nova/Neutron/Cinder/Glance)
│   └── HiFlyingConnector (AT commands + TCP transparent)
└── SerialConnector (serialport)

Quick Start

1. Configure devices

cp devices.json.example devices.json
cp .env.example .env

Edit devices.json with your device inventory. Passwords use ${ENV_VAR} references resolved from .env:

{
  "devices": [
    {
      "id": "cisco-sw-core",
      "name": "Cisco Core Switch",
      "type": "cisco",
      "transport": ["ssh"],
      "host": "192.168.1.1",
      "port": 22,
      "username": "admin",
      "password": "${CISCO_PASSWORD}",
      "tags": ["core", "network"]
    }
  ]
}

2. Docker (Recommended)

docker compose up -d

Server runs at http://localhost:3300 (MCP endpoint: /mcp, health: /health)

3. Standalone

npm install
npm run build
npm run start:sse   # Streamable HTTP mode (port 3000)
npm start           # stdio mode (for Claude Desktop)

4. Connect to Claude Code

.mcp.json is pre-configured:

{
  "mcpServers": {
    "iot": {
      "url": "http://localhost:3300/mcp"
    }
  }
}

MCP Tools Reference

Device Management (iot_*)

ToolDescription
iot_list_devicesList all devices (filter by type/tag/search)
iot_device_statusGet device status (connects to check)
iot_test_connectionTest connectivity
iot_all_statusHealth dashboard - all devices
iot_execute_commandExecute CLI command on SSH device
iot_get_configRetrieve running config
iot_serial_list_portsList available serial ports
vpn_statusCheck all VPN connections status

Network Switch (switch_*)

ToolDescription
switch_show_interfacesInterface status/brief
switch_show_vlansVLAN configuration
switch_show_mac_tableMAC address table (filter by VLAN)
switch_show_arpARP table
switch_show_neighborsCDP (Cisco) / LLDP (HP)
switch_show_spanning_treeSpanning tree status
switch_show_port_securityPort security
switch_show_logsLog buffer

Fortigate Firewall (fortigate_*)

ToolDescription
fortigate_get_policiesFirewall policies
fortigate_get_routesRouting table
fortigate_get_interfacesInterface config
fortigate_vpn_statusIPSec VPN tunnels
fortigate_system_statusCPU/memory/resource usage
fortigate_get_dhcp_leasesDHCP leases
fortigate_get_sessionsActive sessions
fortigate_execute_cliFortiOS CLI via SSH

Mikrotik Router (mikrotik_*)

ToolDescription
mikrotik_get_interfacesInterfaces with traffic stats
mikrotik_get_routesIP routing table
mikrotik_get_firewallFilter + NAT rules
mikrotik_get_dhcp_leasesDHCP leases
mikrotik_get_wirelessWireless clients
mikrotik_get_queuesBandwidth queues
mikrotik_system_resourcesCPU/memory/uptime
mikrotik_execute_commandRouterOS command via SSH

ThingsBoard (tb_*)

ToolDescription
tb_list_devicesList registered devices
tb_device_telemetryLatest telemetry data
tb_device_attributesDevice attributes
tb_send_rpcSend RPC command
tb_get_alarmsActive alarms
tb_get_dashboardsList dashboards

ESPHome (esphome_*)

ToolDescription
esphome_list_devicesList managed devices
esphome_device_infoDevice details
esphome_get_statesEntity states
esphome_call_serviceCall service (turn on/off, etc.)
esphome_get_logsDevice logs
esphome_compileTrigger OTA compile

ESPConnect (espconnect_*)

ToolDescription
espconnect_list_devicesList devices
espconnect_device_statusDevice status
espconnect_send_commandSend command
espconnect_ota_updateOTA firmware update

Tuya Cloud (tuya_*)

ToolDescription
tuya_list_devicesList cloud devices
tuya_device_statusDevice properties
tuya_send_commandsControl commands
tuya_get_scenesSmart scenes
tuya_trigger_sceneTrigger scene

Sonoff/eWeLink (sonoff_*)

ToolDescription
sonoff_list_devicesList devices
sonoff_device_statusDevice status
sonoff_toggleOn/off control
sonoff_get_power_usagePower monitoring

QNAP NAS (qnap_*)

ToolDescription
qnap_system_infoSystem info (model, firmware, uptime)
qnap_get_volumesStorage volumes/pools (RAID, capacity)
qnap_get_disksPhysical disks (SMART, health, temp)
qnap_get_shared_foldersShared folders
qnap_get_networkNetwork interfaces
qnap_get_appsRunning applications/packages
qnap_get_logsSystem logs
qnap_resource_usageCPU/memory/disk usage

Synology NAS (synology_*)

ToolDescription
synology_system_infoSystem info (model, DSM version, uptime)
synology_get_storageStorage volumes/pools (RAID, capacity)
synology_get_disksPhysical disks (SMART, health, temp)
synology_get_shared_foldersShared folders
synology_get_networkNetwork interfaces
synology_get_packagesInstalled packages
synology_system_utilizationCPU/memory/network/disk utilization
synology_get_logsSystem logs
synology_get_dockerDocker containers

Proxmox VE (proxmox_*)

ToolDescription
proxmox_get_nodesList cluster nodes
proxmox_node_statusNode status (CPU, memory, uptime)
proxmox_list_vmsList QEMU VMs on a node
proxmox_vm_statusVM status details
proxmox_list_containersList LXC containers on a node
proxmox_container_statusLXC container status details
proxmox_get_storageStorage pools on a node
proxmox_get_networkNetwork configuration
proxmox_cluster_resourcesCluster-wide resource overview
proxmox_get_tasksRecent tasks/operations

VMware ESXi (esxi_*)

ToolDescription
esxi_list_vmsList all VMs with power state
esxi_get_vmVM details (by ID or name)
esxi_power_onPower on VM
esxi_power_offPower off VM (graceful/force)
esxi_restart_vmRestart VM
esxi_suspend_vmSuspend VM
esxi_host_infoHost info (CPU, memory, version)
esxi_list_datastoresDatastores with capacity/usage
esxi_list_networksNetworks and port groups
esxi_list_snapshotsVM snapshots
esxi_create_snapshotCreate VM snapshot
esxi_delete_snapshotDelete VM snapshot
esxi_revert_snapshotRevert VM to snapshot

Dahua NVR/DVR/IPC (dahua_nvr_*)

ToolDescription
dahua_nvr_system_infoSystem info (model, firmware, serial number)
dahua_nvr_get_channelsCamera channels list
dahua_nvr_channel_statusVideo input status
dahua_nvr_storage_infoHDD/storage info
dahua_nvr_networkNetwork configuration
dahua_nvr_alarmsAlarm/event history
dahua_nvr_recording_statusRecording mode/status
dahua_nvr_ptzPTZ camera control (pan, tilt, zoom, preset)

Dahua DSS Pro/Express (dss_*)

ToolDescription
dss_server_infoDSS server information
dss_list_devicesList managed devices
dss_device_infoDevice details by code
dss_list_channelsVideo channels (all or by device)
dss_channel_statusChannel online/offline status
dss_list_alarmsAlarm events (with time filter)
dss_list_organizationsOrganization groups
dss_record_statusChannel recording status
dss_device_online_statusDevice online/offline check

OpenStack / MicroStack (openstack_*)

ToolDescription
openstack_list_serversList compute instances (VMs)
openstack_server_detailServer/instance details
openstack_server_actionStart/stop/reboot/pause/suspend/resume server
openstack_list_flavorsAvailable VM flavors (sizes)
openstack_list_hypervisorsHypervisors with resource stats
openstack_list_imagesAvailable images (Glance)
openstack_list_networksNetworks (Neutron)
openstack_list_subnetsSubnets (Neutron)
openstack_list_routersRouters (Neutron)
openstack_list_floating_ipsFloating IPs (Neutron)
openstack_list_volumesBlock storage volumes (Cinder)
openstack_list_projectsProjects/tenants (Keystone)

Hi-Flying Serial Server (hf_*)

ToolDescription
hf_device_infoDevice info (firmware, MAC address)
hf_get_serial_configSerial port settings (baud, parity)
hf_set_serial_configChange serial port parameters
hf_get_networkNetwork config (IP, gateway, TCP port)
hf_get_wifiWiFi SSID and security (WiFi models)
hf_tcp_statusTCP link status
hf_at_commandSend raw AT command
hf_serial_sendSend data through serial port (TCP transparent)
hf_rebootReboot device

VPN Support

Container รองรับ 5 VPN protocols เพื่อเข้าถึงอุปกรณ์ที่อยู่หลัง VPN:

VPNConfig LocationAuto-connect
OpenVPNvpn/openvpn/*.ovpnทุก .ovpn file
WireGuardvpn/wireguard/*.confทุก .conf file
TailscaleTS_AUTHKEY in .envเมื่อมี authkey
Cloudflare TunnelCF_TUNNEL_TOKEN in .envเมื่อมี token
ZeroTierZT_NETWORKS in .envเมื่อมี network IDs

Setup OpenVPN

วาง .ovpn config files ไว้ใน vpn/openvpn/:

cp your-vpn-config.ovpn vpn/openvpn/

Setup WireGuard

วาง WireGuard config ไว้ใน vpn/wireguard/:

cp wg0.conf vpn/wireguard/

Setup Tailscale

สร้าง auth key จาก https://login.tailscale.com/admin/settings/keys แล้วใส่ใน .env:

TS_AUTHKEY=tskey-auth-xxxxxxxxxxxxx

Setup ZeroTier

สร้าง network ที่ my.zerotier.com แล้วใส่ network ID ใน .env (หลาย network คั่นด้วย comma):

ZT_NETWORKS=af78bf9436abcdef

อย่าลืม authorize member ใน ZeroTier Central หลัง container join แล้ว

Setup Cloudflare Tunnel

สร้าง Tunnel จาก Cloudflare Zero Trust Dashboard -> Networks -> Tunnels แล้วคัดลอก token ใส่ .env:

CF_TUNNEL_TOKEN=eyJhIjoixxxxxxx...

กำหนด Private Network routes ใน Cloudflare Dashboard เพื่อให้ tunnel route traffic ไปยัง subnet ของอุปกรณ์

Device VPN Annotation

ระบุ VPN ที่อุปกรณ์ใช้ใน devices.json ด้วย field vpn (optional, ช่วยให้ Claude รู้ว่าอุปกรณ์อยู่หลัง VPN ไหน):

{
  "id": "cisco-remote",
  "name": "Cisco Remote Switch",
  "type": "cisco",
  "host": "10.8.0.100",
  "vpn": "openvpn",
  "tags": ["remote"]
}

Check VPN Status

ใช้ tool vpn_status เพื่อดูสถานะ VPN interfaces ทั้งหมด

Configuration

Device Types

TypeRequired Fields
cisco, hphost, username, password
fortigatehost, apiUrl, apiKey (REST) + username, password (SSH)
mikrotikhost, apiUrl, username, password
thingsboardapiUrl, username, password
esphomeapiUrl, optional apiKey
espconnectapiUrl, optional apiKey
tuyaapiUrl, extra.clientId, extra.clientSecret
sonoffapiUrl, extra.appId, extra.appSecret, username, password
qnapapiUrl, username, password
synologyapiUrl, username, password
proxmoxapiUrl, username, password (or apiKey for API token)
esxihost, username, password (vSphere REST API, ESXi 6.5+)
dahua-nvrapiUrl, username, password (HTTP CGI API, Basic auth)
dahua-dssapiUrl, username, password (REST API, token auth)
openstackapiUrl (Keystone), username, password, extra.project, extra.domain
hiflyinghost, apiUrl, username, password, extra.atPort (49000), extra.serialPort (8899)

Docker Serial Port

Uncomment in docker-compose.yml for serial device access:

devices:
  - "/dev/ttyUSB0:/dev/ttyUSB0"

Environment Variables

VariableDefaultDescription
SSE_HOST0.0.0.0SSE server bind address
SSE_PORT3000SSE server port (internal)
DEVICES_FILE./devices.jsonPath to device inventory
NODE_TLS_REJECT_UNAUTHORIZED-Set to 0 for self-signed certs
TS_AUTHKEY-Tailscale auth key (auto-connect)
CF_TUNNEL_TOKEN-Cloudflare Tunnel token (auto-connect)
ZT_NETWORKS-ZeroTier network IDs (comma-separated)

Tech Stack

  • Runtime: Node.js 22 (ES2022)
  • Language: TypeScript (NodeNext modules)
  • MCP SDK: @modelcontextprotocol/sdk ^1.0.0
  • SSH: ssh2 (pure JS, legacy algorithm support)
  • Serial: serialport (native bindings)
  • HTTP: Native fetch (Node 22 built-in)
  • Docker: node:22-slim multi-stage build
  • VPN: OpenVPN, WireGuard, Tailscale, Cloudflare Tunnel, ZeroTier (built into container)

目录标签

目录标签

设备控制TypeScriptClaude网络工具物联网管理本地部署自动化运维AI集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

135

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP