Model Context Protocol server for managing Traefik reverse proxy instances
Six tools with basic verb-noun naming (get_, list_) and present descriptions, but significant gaps in parameter documentation and output schema clarity. All tools are READ_ONLY, reducing risk. However, parameter descriptions are minimal or absent for optional fields, and no output schemas are documented. Tool descriptions are adequate (50-100 chars) but lack guidance on when to use each tool vs. alternatives. No error handling guidance visible. Schemas show basic structure but lack depth, optional 'provider' parameters have descriptions, but no guidance on valid values, format, or defaults.
Get detailed configuration for a specific router
Get detailed configuration for a specific service
Get an overview of the Traefik instance configuration
List all HTTP middlewares in Traefik
List all HTTP routers in Traefik
List all HTTP services in Traefik
No output schemas documented. Tools return TextContent with formatted markdown, but LLMs cannot parse structured fields (router names, service URLs, middleware types) for downstream tool chaining. Agents cannot extract router_name from list_routers() output to pass to get_router_details().
Optional 'provider' parameter present in 5 tools but lacks description of valid values, format, or how to discover available providers. No enum constraint or guidance on when filtering by provider is necessary.
No pagination support visible. list_* tools return formatted text with no limit, offset, or total_count. Large Traefik deployments (100+ routers) will produce context-window-exhausting responses.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Tool descriptions lack 'when to use' guidance. No distinction between get_traefik_overview (summary) vs. list_routers (detailed list). Agents cannot reason about which tool to call first or when to use filtering.
No error handling guidance. Code shows TraefikError catch blocks returning plain error text, but no guidance on retryability, user-fixable vs. fatal errors, or recovery steps (e.g., 'Check Traefik API connectivity').