Security-first MCP server for TP-Link Omada, with a stdio-first runtime, capability-gated tools, and OpenAPI-based network automation.
{
"mcpServers": {
"omada-mcp": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Security-first MCP server for TP-Link Omada, with a stdio-first runtime, capability-gated tools, and OpenAPI-based network automation.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 3 days ago. 10 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Omada Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Security-focused MCP server for TP-Link Omada Open API workflows.
stdioPull or build an image:
docker pull ghcr.io/gaspareduard/omada-mcp:latest
If you do not publish an image yet, build locally instead:
npm run docker:build
Edit your Claude Desktop MCP config:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd the server entry:
{
"mcpServers": {
"safe-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=true",
"ghcr.io/gaspareduard/omada-mcp:latest"
]
}
}
}
Restart Claude Desktop and verify the server by listing sites or devices.
docker run --rm -it \
--env-file .env \
ghcr.io/gaspareduard/omada-mcp:latest
npm install
npm run build
npm start
The server reads configuration from environment variables. See .env.example for the complete reference.
| Variable | Required | Default | Description |
| --- | --- | --- | --- |
| OMADA_BASE_URL | Yes | - | Base URL of the Omada controller |
| OMADA_CLIENT_ID | Yes | - | OAuth client ID from Omada Platform Integration |
| OMADA_CLIENT_SECRET | Yes | - | OAuth client secret |
| OMADA_OMADAC_ID | Yes | - | Omada controller ID (omadacId) |
| OMADA_SITE_ID | No | - | Optional default site ID |
| OMADA_STRICT_SSL | No | true | Enforce TLS certificate validation |
| OMADA_TIMEOUT | No | 30000 | HTTP timeout in milliseconds |
| Variable | Required | Default | Description |
| --- | --- | --- | --- |
| OMADA_CAPABILITY_PROFILE | No | safe-read | Built-in profile: safe-read, ops-write, admin, compatibility |
| OMADA_TOOL_CATEGORIES | No | profile default | Explicit category override |
| MCP_SERVER_LOG_LEVEL | No | info | debug, info, warn, error, silent |
| MCP_SERVER_LOG_FORMAT | No | plain | plain, json, or gcp-json |
| Profile | Intended use |
| --- | --- |
| safe-read | Default read-only operational visibility |
| ops-write | Limited operational write actions |
| admin | Full documented tool surface, including admin mutations |
| compatibility | Reserved for future controller-specific fallback modules |
The four restore tools (restoreController, restoreControllerFromFileServer, restoreSites, restoreSitesFromFileServer) enforce a two-step confirmation: without confirmDangerous: true the tool returns a warning explaining th