Skip to main content
Glama

omada-mcp

CI Docs License: MIT

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

  1. 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.

  2. Build:

    git clone https://github.com/shamalawy/omada-mcp.git
    cd omada-mcp && npm ci && npm run build
  3. Add 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"
  4. 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

omada_search_operations

Find operations by keywords, category or method

omada_list_tags

List API categories

omada_describe_operation

Parameters, body schema, permissions and error codes

omada_call_operation

Run any operation by operationId

omada_get_schema

Expand a named data schema

omada_request

Raw HTTP request with the token attached

omada_status

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 tools
omada_call_operationCall an Omada API operationA
Destructive

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 operationA
Read-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 schemaA
Read-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 categoriesA
Read-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 requestA
Destructive

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 operationsA
Read-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 statusB
Read-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

    A3.9/5.0

    Scored across 7 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables 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.
      52
      21 npm
      5
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      Enables 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.
      72
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Lets 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.
      9
      4
      MIT