Omada MCP服务器
TP-Link Omada SDN控制器的完整CRUD MCP服务器。公开了60多种用于读取、写入和管理站点、设备、客户端、网络、交换机端口、防火墙等的工具,所有这些都是通过模型上下文协议实现的。
快速开始
使用克劳德代码/克劳德桌面(stdio)
添加到MCP客户端配置中:
{
"mcpServers": {
"omada": {
"command": "node",
"args": ["/path/to/omada-mcp/dist/index.js"],
"env": {
"OMADA_BASE_URL": "https://your-omada-controller.local",
"OMADA_CLIENT_ID": "your-client-id",
"OMADA_CLIENT_SECRET": "your-client-secret",
"OMADA_OMADAC_ID": "your-omadac-id",
"OMADA_SITE_ID": "your-site-id",
"OMADA_STRICT_SSL": "false"
}
}
}
}
使用Docker
{
"mcpServers": {
"omada": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "OMADA_BASE_URL=https://your-omada-controller.local",
"-e", "OMADA_CLIENT_ID=your-client-id",
"-e", "OMADA_CLIENT_SECRET=your-client-secret",
"-e", "OMADA_OMADAC_ID=your-omadac-id",
"-e", "OMADA_SITE_ID=your-site-id",
"-e", "OMADA_STRICT_SSL=false",
"jmtvms/tplink-omada-mcp:latest"
]
}
}
}
Docker HTTP服务器
docker run -d \
--env-file .env \
-e MCP_SERVER_USE_HTTP=true \
-e MCP_HTTP_BIND_ADDR=0.0.0.0 \
-p 3000:3000 \
jmtvms/tplink-omada-mcp:latest
可在 http://localhost:3000/mcp (流)或 http://localhost:3000/sse 上海证券交易所
环境变量
Omada控制器
| 变量 | 必填 | 默认 | 描述 |
|---|
OMADA_BASE_URL | 是 | - | Omada控制器URL |
OMADA_CLIENT_ID | 是 | - | OAuth客户端ID |
OMADA_CLIENT_SECRET | 是 | - | OAuth客户端密钥 |
OMADA_OMADAC_ID | 是 | - | 控制器ID(omadacId) |
OMADA_SITE_ID | 否 | - | 默认站点ID |
OMADA_STRICT_SSL | 没有 | true | SSL验证(false 自签名) |
OMADA_TIMEOUT | 没有 | 30000 | 请求超时(ms) |
MCP服务器
| 变量 | 必填 | 默认 | 描述 |
|---|
MCP_SERVER_LOG_LEVEL | 没有 | info | debug, info, warn, error, silent |
MCP_SERVER_LOG_FORMAT | 没有 | plain | plain, json, gcp-json |
MCP_SERVER_USE_HTTP | 没有 | false | 启用HTTP传输 |
MCP_SERVER_STATEFUL | 没有 | false | 有意义的会议 |
MCP_HTTP_PORT | 没有 | 3000 | HTTP端口 |
MCP_HTTP_TRANSPORT | 没有 | stream | stream 或 sse |
MCP_HTTP_BIND_ADDR | 没有 | 127.0.0.1 | 绑定地址 |
工具
阅读工具
| 工具 | 说明 |
|---|
listSites | 列出控制器上的所有站点 |
listDevices | 列出站点的设备 |
listClients | 列出站点的活动客户端 |
getDevice | 获取特定设备的详细信息 |
getClient | 获取特定客户的详细信息 |
getSwitchStackDetail | 获取交换机堆栈配置和状态 |
searchDevices | 在全球范围内搜索所有站点的设备 |
listDevicesStats | 具有分页和过滤功能的设备统计 |
listMostActiveClients | 按流量排序的顶级客户 |
listClientsActivity | 客户活动时间序列数据 |
listClientsPastConnections | 历史客户端连接 |
getThreatList | 具有过滤功能的安全威胁列表 |
getInternetInfo | 互联网/WAN配置 |
getPortForwardingStatus | 端口转发规则(用户/UPnP) |
getLanNetworkList | LAN网络和VLAN设置 |
getLanProfileList | 交换机端口的LAN配置文件 |
getWlanGroupList | WLAN组 |
getSsidList | WLAN组中的SSID |
getSsidDetail | 详细的SSID配置 |
getFirewallSetting | 防火墙规则和策略 |
getSwitchPorts | 交换机的所有端口(状态、PoE、速度、STP) |
getFirmwareDetails | 设备的固件信息 |
listEvents | 分页网站事件 |
listLogs | 分页网站日志 |
listFirewallAcls | 防火墙ACL规则 |
listRoutes | 静态路线 |
getSwitch | 完整的交换机信息,包括portList阵列 |
getCableTestResults | 开关电缆测试结果 |
getSwitchNetworks | 交换机VLAN中继配置 |
写入工具
| 工具 | 说明 |
|---|
createLanNetwork | 创建局域网 |
updateLanNetwork | 更新局域网 |
deleteLanNetwork | 删除局域网 |
createLanProfile | 创建局域网配置文件 |
updateLanProfile | 更新局域网配置文件 |
updateFirewallSetting | 更新防火墙设置 |
createFirewallAcl | 创建防火墙ACL规则 |
deleteFirewallAcl | 删除防火墙ACL规则 |
updateSwitchPort | 更新交换机端口配置(配置文件、PoE、速度、STP) |
updateClient | 更新客户端设置 |
setSwitchNetworks | 设置交换机VLAN中继配置 |
交换机端口工具
| 工具 | 说明 |
|---|
setSwitchPortProfile | 将LAN配置文件分配给单个端口 |
setSwitchPortPoe | 在单个端口上启用/禁用PoE |
setSwitchPortName | 在单个端口上设置名称 |
setSwitchPortStatus | 启用/禁用单个端口 |
setSwitchPortProfileOverride | 在单个端口上启用/禁用配置文件覆盖 |
batchSetSwitchPortProfile | 多个端口上的批处理配置文件覆盖 |
batchSetSwitchPortPoe | 在多个端口上批量PoE |
batchSetSwitchPortStatus | 批量启用/禁用多个端口 |
batchSetSwitchPortName | 在多个端口上批量设置名称 |
startCableTest | 在开关上开始电缆测试 |
行动工具
| 工具 | 说明 |
|---|
rebootDevice | 重新启动设备 |
adoptDevice | 采用一种设备 |
blockClient | 阻止客户端 |
unblockClient | 解锁客户端 |
reconnectClient | 重新连接客户端 |
setDeviceLed | 设置设备LED设置 |
startFirmwareUpgrade | 开始固件升级 |
setGatewayWanConnect | 连接/断开网关广域网端口 |
通用的
| 工具 | 说明 |
|---|
genericApiCall | 直接调用任何Omada OpenAPI端点 |
发展
npm install
npm run dev # Live reload via tsx
npm run build # Compile TypeScript
npm run check # Lint + type check
npm start # Run compiled server (stdio)
码头工人
npm run docker:build # Build image
npm run docker:run # Run with .env file
学分
许可证
麻省理工学院