omada-mcp
Provides tools for interacting with the TP-Link Omada Open API, exposing every controller operation across 163 categories — sites, devices, clients, wireless, switching, gateways, VPN, firewall, hotspot, and MSP — enabling AI assistants to search, inspect, and call any Omada operation (including device reboots) with automatic login, token refresh, site-name resolution, and paging.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omada-mcp show me all clients currently connected to my main site"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
omada-mcp
An MCP server for the TP-Link Omada Open API. It exposes every Open API operation (2,450 in the current spec, across 163 categories) to AI assistants such as Claude. The tools are generated from the controller's OpenAPI spec, not hand-written, so nothing is left out.
Documentation: https://shamalawy.github.io/omada-mcp/
Features
Every operation. Sites, devices, clients, wireless, switching, gateways, VPN, firewall, hotspot, MSP and more. The spec is loaded from your controller when possible, so the tools match its firmware.
Works with any MCP client. Seven small tools let the model search, inspect and call any operation. A full one-tool-per-operation mode is available too.
Login handled. Client-credentials and authorization-code modes, automatic token refresh, and a retry when a token expires.
Easy to use. Site names work in place of IDs, the Omada ID is filled in for you, and list calls are paged automatically.
Safe. Read-only mode, category and operation filters, TLS verification, and bearer-token auth for HTTP.
Runs anywhere. stdio, Streamable HTTP, and a multi-arch Docker image.
Related MCP server: tplink-omada-mcp
Quick start
In the controller, go to Settings > Platform Integration > Open API, add an app (Client Credentials mode), and note the Client ID, Client Secret and Interface Access Address.
Build:
git clone https://github.com/shamalawy/omada-mcp.git cd omada-mcp && npm ci && npm run buildAdd it to your MCP client. For Claude Code:
claude mcp add omada \ -e OMADA_BASE_URL=https://192.168.0.10:8043 \ -e OMADA_CLIENT_ID=your-client-id \ -e OMADA_CLIENT_SECRET=your-client-secret \ -e OMADA_VERIFY_SSL=false \ -- node "$PWD/dist/index.js"Ask: "List my Omada sites."
See Getting started for Claude Desktop, Docker, and Cloud-Based Controller.
How it works
By default the server exposes seven tools:
Tool | Purpose |
| Find operations by keywords, category or method |
| List API categories |
| Parameters, body schema, permissions and error codes |
| Run any operation by |
| Expand a named data schema |
| Raw HTTP request with the token attached |
| Show config and test the connection |
{ "operationId": "rebootDevice", "params": { "siteId": "Home", "deviceMac": "AA-BB-CC-DD-EE-FF" } }More in Tools, Configuration and the full API reference.
Contributing
Issues and pull requests are welcome; see CONTRIBUTING.md. Security issues: see SECURITY.md.
License
MIT. This project is not affiliated with or endorsed by TP-Link. Omada is a trademark of TP-Link. The bundled API spec (spec/omada-openapi.json) is TP-Link's published Omada Open API document.
Available Tools
7 toolsomada_call_operationCall an Omada API operationADestructive
Run any Omada Open API operation by operationId. params: path and query parameters by name (e.g. {"siteId": "Home", "page": 1, "pageSize": 100}). omadacId/mspId are filled in automatically; siteId accepts a site ID or a site name; page/pageSize default to 1/100 when required. body: JSON request body. files: uploads for multipart operations. Reply is the controller's JSON: {errorCode, msg, result}; errorCode 0 means success.
Inputs: operationId (required), body, files, params.
omada_describe_operationDescribe an Omada API operationARead-only
Show everything needed to call one operation: method, path, path/query parameters, request body JSON schema, required permissions and error codes. Optionally the response schema.
Inputs: operationId (required), includeResponseSchema.
omada_get_schemaShow an Omada data schemaARead-only
Expand a named schema from the Omada spec (used when another schema says "call omada_get_schema"). $refs are inlined.
Inputs: name (required), maxDepth.
omada_list_tagsList Omada API categoriesARead-only
List the categories (tags) of the Omada Open API with how many operations each has. Use a tag with omada_search_operations to browse one area (e.g. Site, Device, Client, Wireless, Ap, Switch, Gateway).
Inputs: filter.
omada_requestRaw Omada API requestADestructive
Send a raw HTTP request to the controller with the access token attached, for anything not covered by the spec. Path is relative to the base URL, e.g. /openapi/v1/{omadacId}/sites; {omadacId}/{mspId} are replaced automatically and {siteId} with the default site.
Inputs: path (required), method (required), body, query.
omada_search_operationsSearch Omada API operationsARead-only
Find Omada Open API operations by keywords (matches operationId, summary, category, path, description). Returns operationId, HTTP method, path and summary. Next: omada_describe_operation, then omada_call_operation.
Inputs: tag, limit, query, method.
omada_statusOmada connection statusBRead-only
Show the server's configuration (no secrets), which spec is loaded, and test the connection by getting an access token.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
The set follows a clear discover→describe→call pipeline (list_tags, search_operations, describe_operation, call_operation) with get_schema, request and status as distinct support tools. The only real overlap is between omada_request and omada_call_operation, since both can hit arbitrary endpoints, but the descriptions clearly frame request as a raw escape hatch for things outside the spec.
All seven tools share an omada_ prefix and snake_case, with a predictable verb_noun shape (list_tags, search_operations, describe_operation, call_operation, get_schema). omada_request and omada_status are noun-only outliers, but they read naturally and do not break the pattern.
Seven tools is tightly scoped for a spec-driven API gateway: two for discovery, two for introspection, two for execution (typed and raw), one for diagnostics. Each tool has a non-redundant role, with no padding and no missing seam.
The surface covers the full lifecycle of generic API operation: browse categories, search operations, inspect parameters/body/schema, expand $refs, invoke with path/query/body/files, fall back to raw HTTP, and verify connectivity. Because the toolset proxies an external spec, it inherits that spec's breadth, so no CRUD gaps remain.
Maintenance
Related MCP Connectors
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to manage UniFi network infrastructure through 50+ tools covering devices, clients, networks, WiFi, firewall rules, and guest access using the official UniFi Network API.5221 npm5MIT
- AlicenseCqualityDmaintenanceExposes TP-Link Omada controller APIs to AI copilots, enabling listing of sites, devices, and clients, and executing arbitrary Omada API calls via natural language.8429MIT
- AlicenseCqualityBmaintenanceEnables managing TP-Link Omada SDN controllers through MCP, exposing 72 tools for sites, devices, clients, networks, switch ports, firewalls, schedules, and site settings, including reboot and PoE scheduling.721MIT
- AlicenseAqualityCmaintenanceLets an AI assistant inspect and adjust TP-Link Omada WiFi networks by searching, describing, and calling any of roughly 1,650 Omada Open API operations through nine tools. It is read-only by default, refusing every non-GET request unless writes are explicitly unlocked, and even then returning a dry-run preview until a change is confirmed.94MIT