Repository navigation
Security
MAP is a privileged bridge between MCP callers and panel APIs. Treat any connected MCP client as able to invoke every tool it is permitted to see unless a separate, tested authorization layer restricts it.
- Panel API keys define panel-side authorization; MAP cannot safely elevate their permissions.
- MCP access may enable server power changes, console commands, file writes/deletes, backup deletion, and generic mutating API calls.
- Network egress and signed transfer URLs must be validated to prevent SSRF and credential forwarding.
- Keys, tokens, cookies, session identifiers, and signed URLs must not appear in output or logs.
- Panel-admin API access is not equivalent to SSH or operating-system root access.
- Bind to loopback by default.
- Require TLS and strong authentication before remote access.
- Use least-privilege credentials.
- Restrict generic requests to configured providers and HTTPS origins.
- Bound methods, paths, request sizes, timeouts, responses, and file transfers.
- Validate panel IDs, provider IDs, and server identifiers.
- Disable unsafe redirects where they could forward credentials.
- Trust only exact Wings hostnames controlled by the operator.
- Keep secrets outside Git and restrict environment file permissions.
- Test destructive actions on a disposable panel first.
Signed URLs are credentials. Never expose them to the MCP caller or logs. Only allow HTTPS and explicitly trusted hostnames; reject private/reserved addresses where applicable. Stream downloads and enforce a hard size cap instead of trusting Content-Length alone.
Errors should provide useful diagnostics without echoing secrets, session cookies, signed URLs, authorization headers, or unbounded HTML responses. Sanitize nested JSON and URL query parameters as well as top-level fields.
Use the repository's private vulnerability reporting feature when available. Include affected version/commit, impact, sanitized logs, and safe reproduction steps. Never publish live credentials or exploit details before a fix is available.
Bearer authentication alone may not provide per-user tool authorization or audit identity. Use MAP only within a trusted client boundary and consider network restrictions plus independent panel-side permission controls.