{"name":"io.github.AIops-tools/proxy-aiops","slug":"aiops-tools-proxy-aiops","title":"Proxy AIops","description":"Governed Traefik + Caddy + HAProxy ops: routes, upstreams, certs, 5xx RCA. 28 tools.","url":"https://mcp.market/server/aiops-tools-proxy-aiops","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":29,"stars":0,"forks":0,"downloads_week":621,"last_push_at":"2026-09-16T23:27:26.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AIops-tools/Proxy-AIops","website":null,"version":"0.9.4","remotes":[],"packages":[{"registryType":"pypi","identifier":"proxy-aiops","version":"0.9.4","transport":{"type":"stdio"}}],"tools":[{"name":"backend_health_rca","description":"[READ] Down upstreams grouped per service, each mapped to cause + action.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cert_expiry_sweep","description":"[READ] TLS cert inventory bucketed by days-to-expiry + renewal hints.","write_action":false,"price_micros":0,"input_schema":null},{"name":"config_snapshot","description":"[READ] The live config tree (caddy /config/) or merged dynamic state (traefik /api/rawdata), sanitised and bounded. haproxy returns the support matrix's teaching note.","write_action":false,"price_micros":0,"input_schema":null},{"name":"delete_config_path","description":"[WRITE][risk=high] Delete a caddy config subtree; reversible — the subtree is captured first and the undo re-creates it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"error_counters","description":"[READ] Per-service request/status-code counters (feeds error_rate_rca).","write_action":false,"price_micros":0,"input_schema":null},{"name":"error_rate_rca","description":"[READ] Rank services by 5xx share vs the fleet baseline, cause + action.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_route","description":"[READ] Which routes would serve a host/path (static match, best first).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_config_value","description":"[READ] One value out of the caddy config tree by config path (e.g. apps/http/servers/srv0/routes/0). Off-caddy platforms return the support matrix's teaching note.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_certificates","description":"[READ] TLS domain inventory for a traefik/caddy target; optionally handshake-probe each domain for its live expiry.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_entrypoints","description":"[READ] Listeners: traefik entrypoints / caddy server listen addresses / haproxy frontends — where traffic enters this proxy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_middlewares","description":"[READ] Middlewares (traefik). On caddy/haproxy this returns the support matrix's teaching note (their equivalents live inside routes / haproxy.cfg).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_routes","description":"[READ] Routes normalised across platforms: {name, hosts, paths, priority, service, tls, enabled, redirectTo}.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_services","description":"[READ] Services / backends with per-service server-up counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_upstreams","description":"[READ] Server-level upstream health rows: {service, server, address, status(up/down/maint/drain), checkInfo, weight}. Feeds backend_health_rca.","write_action":false,"price_micros":0,"input_schema":null},{"name":"load_config","description":"[WRITE][risk=high] Replace caddy's FULL running config; reversible — the prior config is snapshotted first and the undo re-loads it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"main","description":"Run the MCP server over stdio.","write_action":true,"price_micros":0,"input_schema":null},{"name":"proxy_overview","description":"[READ] One-shot summary: platform/version + route/service counts + upstream up/down health.","write_action":false,"price_micros":0,"input_schema":null},{"name":"route_conflict_analysis","description":"[READ] Shadowed routes, dead routes, and redirect loops (static).","write_action":false,"price_micros":0,"input_schema":null},{"name":"route_detail","description":"[READ] One route's full detail by name (from list_routes).","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_config","description":"[READ] Search the config tree for a string; returns matching config paths (on caddy, directly usable by get/set_config_value).","write_action":false,"price_micros":0,"input_schema":null},{"name":"service_detail","description":"[READ] One service/backend's full detail by name (from list_services).","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_config_value","description":"[WRITE][risk=medium] Set a caddy config subtree (e.g. a route's upstreams); reversible — the prior subtree is fetched first and the undo restores it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_server_state","description":"[WRITE][risk=medium] Set an haproxy server's admin state (ready / drain / maint); reversible — the prior admin state is fetched first and the undo restores it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_server_weight","description":"[WRITE][risk=medium] Set an haproxy server's load-balancing weight (0-256); reversible — the prior weight is fetched first and the undo restores it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"traffic_stats","description":"[READ] Per-service traffic snapshot: requests, latency/rate/sessions where the platform exposes it (traefik /metrics, haproxy stats; caddy returns the support matrix's teaching note).","write_action":false,"price_micros":0,"input_schema":null},{"name":"undo_apply","description":"[WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"undo_list","description":"[READ] List recorded, not-yet-applied undo tokens (most recent first).","write_action":false,"price_micros":0,"input_schema":null},{"name":"upstream_detail","description":"[READ] One upstream server's health/state row.","write_action":false,"price_micros":0,"input_schema":null},{"name":"version_info","description":"[READ] Version / build info (traefik /api/version, haproxy /v2/info; caddy returns a teaching note — its admin API has no version endpoint).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-19T19:42:34.791Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:42:34.753Z","components":{"code":{"score":25,"max":25,"notes":["62 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"proxy-aiops","version":"0.9.4","found":true,"weeklyDownloads":621,"license":"MIT","dependencyCount":6,"publishedAt":"2026-09-16T23:25:20.496592Z"}],"repo":{"found":true,"owner":"AIops-tools","repo":"Proxy-AIops","archived":false,"pushedAt":"2026-09-16T23:27:26Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/295714335?v=4","ownerCreatedAt":"2026-06-22T02:46:57Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":621,"license":"MIT","lastPushAt":"2026-09-16T23:27:26.000Z","score":29}}}},"grade_history":[],"reviews":[]}