{"name":"io.github.Ilmar7786/marzban-mcp","slug":"ilmar7786-marzban-mcp","title":"Marzban MCP","description":"Manage Marzban panels through the Model Context Protocol.","url":"https://mcp.market/server/ilmar7786-marzban-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":38,"stars":25,"forks":3,"downloads_week":67,"last_push_at":"2026-09-11T04:17:43.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Ilmar7786/marzban-sdk","website":null,"version":"0.3.0","remotes":[],"packages":[{"registryType":"npm","identifier":"marzban-mcp","version":"0.3.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"URL of the Marzban panel.","isRequired":true,"format":"string","name":"MARZBAN_BASE_URL"},{"description":"Marzban administrator username.","isRequired":true,"format":"string","name":"MARZBAN_USERNAME"},{"description":"Marzban administrator password.","isRequired":true,"format":"string","isSecret":true,"name":"MARZBAN_PASSWORD"}]},{"registryType":"oci","identifier":"docker.io/ilmar7786/marzban-mcp:0.3.0","runtimeHint":"docker","transport":{"type":"stdio"},"environmentVariables":[{"description":"URL of the Marzban panel.","isRequired":true,"format":"string","name":"MARZBAN_BASE_URL"},{"description":"Marzban administrator username.","isRequired":true,"format":"string","name":"MARZBAN_USERNAME"},{"description":"Marzban administrator password.","isRequired":true,"format":"string","isSecret":true,"name":"MARZBAN_PASSWORD"}]}],"tools":[{"name":"marzban_config_get","description":"Reads the Xray core configuration. Defaults to a structural summary (inbound/outbound tags, ports, protocols, routing rule count) \\u2014 the full config can be tens of KB and this is usually all that's needed. Pass `section` (e.g. \"inbounds\") for one key's raw JSON, or `section: \"raw\"` for the entire config.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_config_update","description":"Overwrites the entire Xray core configuration and restarts the core \\u2014 this is the single most disruptive operation on the whole panel, dropping every active connection while it restarts. Replaces the config wholesale, not a patch. Set `dryRun: true` first to preview the diff against the current config without writing or restarting anything (no confirmation needed for a dry run). Requires conf","write_action":true,"price_micros":0,"input_schema":null},{"name":"marzban_core_restart","description":"Restarts the Xray core and every connected node, dropping all active connections. Use marzban_config_update instead if the goal is to apply a config change \\u2014 it restarts the core as part of applying, so a separate restart is rarely needed. Requires confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_hosts_get","description":"Lists proxy host settings grouped by inbound tag. Flags host fields (remark/address/host/sni/path) that reference an unknown `{VARIABLE}` template token \\u2014 almost always a typo, since Marzban leaves unknown tokens un-substituted rather than erroring.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_hosts_update","description":"Overwrites the entire proxy host configuration (all inbound tags at once) \\u2014 this replaces the whole map, not a per-tag patch, so include every tag you want to keep. May change subscription links/configs for affected users. Requires confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"marzban_nodes_list","description":"Lists all connected nodes with their status and Xray version, plus bandwidth usage (uplink/downlink) over the given period. `start`/`end` (ISO datetimes) narrow the usage window; omit both for all-time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_subscription_info","description":"Reads subscription status/usage/expiry using the token from a subscription URL (the same public, unauthenticated endpoint client apps use) \\u2014 for diagnosing a broken subscription link without needing the username. For an admin-side lookup by username, use marzban_users_get instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_system_inbounds","description":"Lists configured inbound proxies grouped by protocol, with tag, network, TLS mode, and port for each. For the raw Xray inbound JSON (routing, stream settings, etc.) use marzban_config_get with section: \"inbounds\" instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_system_stats","description":"Reports panel-wide stats: CPU/memory usage, user counts by status, and bandwidth totals/speeds, plus the Xray core version and whether it is currently running.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_activate","description":"Sets a user's status to active.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_create","description":"Creates a new user. `dataLimit` accepts a human size (\"10GB\"), `expire` a relative duration (\"30d\") or absolute date \\u2014 both default to unlimited when omitted. `templateId` fills dataLimit/inbounds/expire from a user template; any field also given explicitly overrides the template value.","write_action":true,"price_micros":0,"input_schema":null},{"name":"marzban_users_deactivate","description":"Sets a user's status to disabled, immediately blocking their access without deleting them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_delete","description":"Permanently deletes a user, along with their subscription link and traffic history. Irreversible \\u2014 requires confirmation. Prefer marzban_users_deactivate if you only need to block access without losing their data.","write_action":true,"price_micros":0,"input_schema":null},{"name":"marzban_users_extend","description":"Renews a user: adds addDuration to their current expiration (or to now, if they have none or it already passed) and/or addData on top of their current data limit. If the user was expired or limited, status is moved back to active. Use this instead of marzban_users_update for renewals \\u2014 it reads the current expire/limit first so the increment is relative, not an absolute overwrite.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_get","description":"Fetches one user by username, with a computed summary: data left, days left, usage percent, and whether they are effectively expired (covers the case where status has not caught up with an already-past expire yet).","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_hold","description":"Sets a user's status to on_hold \\u2014 inactive until their first connection, at which point the on-hold timer starts. Useful for provisioning an account ahead of time without starting its clock.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_list","description":"Lists users, optionally filtered by status or a search term (matches username/note). Paginated \\u2014 default 25, max 100 per call; prefer `search` over paging through everyone. For one known username, use marzban_users_get instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_reset_traffic","description":"Resets used traffic back to zero for one user, or for every user at once when `all: true`. Does not change data_limit or expire. Irreversible \\u2014 requires confirmation; `all: true` affects every user on the panel in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_revoke_subscription","description":"Issues a new subscription link for a user and invalidates the old one. Use when a link has leaked or needs rotating \\u2014 not for routine renewals (use marzban_users_extend for those). Requires confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"marzban_users_update","description":"Partially updates a user \\u2014 only fields you provide are changed, everything else is left as-is. For status changes prefer marzban_users_activate/deactivate/hold (clearer intent, no need to know the raw status enum). For renewing an expiring/expired user prefer marzban_users_extend.","write_action":true,"price_micros":0,"input_schema":null},{"name":"marzban_users_usage","description":"Reports how much data a user has used: total, lifetime total, their current limit, and a breakdown by node. `start`/`end` (ISO datetimes) narrow the per-node breakdown to a period; omit both for all-time.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T05:06:25.701Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:06:25.647Z","components":{"code":{"score":25,"max":25,"notes":["2 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":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 9 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"marzban-mcp","version":"0.3.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-06T12:51:43.567Z","repositoryUrl":"git+https://github.com/Ilmar7786/marzban-sdk.git","weeklyDownloads":67}],"repo":{"found":true,"owner":"Ilmar7786","repo":"marzban-sdk","archived":false,"pushedAt":"2026-09-11T04:17:43Z","stars":25,"forks":3,"openIssues":9,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/84752977?v=4","ownerCreatedAt":"2021-05-25T00:30:42Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/84752977?v=4&s=128","source":"github"},"presence":{"stars":25,"forks":3,"downloadsWeek":67,"license":"MIT","lastPushAt":"2026-09-11T04:17:43.000Z","score":38}}}},"grade_history":[],"reviews":[]}