Mcp Server For 3x Ui MCP Server

MCP (Model Context Protocol) server for 3x-ui — an Xray/V2Ray proxy management panel. Exposes the 3x-ui HTTP API as MCP tools so LLMs can manage inbounds, clients, routing rules, Xray service, and…

Local server

What is the Mcp Server For 3x Ui MCP Server?

Mcp Server For 3x Ui is an MCP project maintained in the pyworkload/3x-ui-mcp repository. The maintainer describes its purpose as “MCP (Model Context Protocol) server for 3x-ui — an Xray/V2Ray proxy management panel. Exposes the 3x-ui HTTP API as MCP tools so LLMs can manage…”. Read the project documentation for the complete scope.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
list_inboundsList all inbound connections
get_inboundGet inbound by ID
create_inboundCreate a new inbound
update_inboundUpdate an existing inbound
delete_inboundDelete an inbound
set_inbound_enableEnable/disable an inbound without rewriting its settings
reset_inbound_trafficZero one inbound's traffic counters
delete_all_inbound_clientsRemove every client from an inbound, keeping the inbound
bulk_delete_inboundsDelete several inbounds in one call
get_all_inbound_linksCounts the connection URLs and links to the full list (full=true inlines them)
list_inbounds_slimInbounds with client arrays trimmed — the cheap listing for large panels
get_inbound_optionsPicker projection: id, remark, tag, protocol, port, capability flags
get_inbound_fallbacksFallback rules on a master VLESS/Trojan TCP-TLS inbound
set_inbound_fallbacksReplace the whole fallback list (restarts Xray)
set_inbound_sub_sort_indexSet an inbound's position in subscription output
add_clientCreate a client and attach it to one or more inbounds (inbound_ids)
update_clientUpdate a client by email (only supplied fields change; UUID preserved)
delete_clientDelete a client by email (optional keep_traffic)
get_clientGet a client's full config and its inbound attachments, by email
list_clientsPaged, searchable, filterable client list
attach_clientAttach an existing client to more inbounds
detach_clientDetach a client from given inbounds
bulk_create_clientsCreate many clients across the same inbounds
bulk_delete_clientsDelete many clients by email
get_client_trafficGet client traffic stats by email
get_client_ipsGet IPs used by a client
clear_client_ipsClear recorded client IPs
reset_client_trafficReset traffic counters for a client by email
reset_all_trafficsReset all inbound traffic counters
reset_all_client_trafficsReset traffic for every client (panel-wide)
bulk_reset_trafficReset traffic for a specific set of clients
delete_depleted_clientsDelete clients with exhausted traffic/expired (panel-wide)
get_online_clientsList currently connected clients
get_last_onlineLast-online timestamp for every client
update_client_trafficSet specific upload/download byte counters for a client
get_subscription_linksConnection URLs served under a subscription ID, as JSON
get_client_linksConnection URLs for one client by email, one per inbound
get_happ_linkEncrypted happ://crypt5 link wrapping a client's subscription, for the Happ app
preview_client_renewalWhen a quota renewal schedule fires next, in the panel's time zone; saves nothing
get_clients_by_telegram_idFind clients by Telegram user ID
list_client_devicesHWID devices registered for a client
delete_client_deviceRemove one registered device, freeing an HWID slot
clear_client_devicesDrop every registered device for a client
bulk_enable_clientsEnable many clients, one rewrite per owning inbound
bulk_disable_clientsDisable many clients, one rewrite per owning inbound
bulk_adjust_clientsShift expiry and quota for many clients — the bulk renewal
delete_orphan_clientsDelete clients attached to no inbound, with their records
export_clientsCounts the clients and links to the full export (full=true inlines it)
import_clientsCreate clients from an exported array; existing emails are skipped
set_client_external_linksReplace a client's external links and subscriptions
list_clients_pagedServer-side filtering, sorting and paging over clients
bulk_attach_clientsAttach many clients to many inbounds at once
bulk_detach_clientsDetach many clients from many inbounds at once
get_active_inboundsInbound tags that carried traffic, grouped by node
get_online_clients_by_nodeOnline clients grouped by the node serving them
get_client_ips_by_nodePer-client source IPs grouped by the node that saw them
server_statusGet server system status (CPU, RAM, disk, uptime)
restart_xrayRestart Xray service
stop_xrayStop Xray service
get_xray_configSummarizes the running Xray config and links to the full JSON (full=true inlines it)
get_xray_versionsList available Xray versions
install_xrayInstall a specific Xray version
get_logsGet panel service logs
get_xray_logsGet Xray core logs
get_settingsGet panel settings
get_default_xray_configGet default Xray configuration
restart_panelRestart the 3x-ui panel
generate_keyGenerate key material: UUID, X25519 (Reality), VLESS encryption, ML-KEM-768, ML-DSA-65
scan_reality_targetProbe one REALITY candidate and report whether it is usable
scan_reality_targetsProbe domains, IPs or CIDR ranges, ranked by feasibility and latency
get_xray_templateSummarizes the template and links to the full JSON (full=true inlines it)
update_xray_templateUpdate Xray JSON template
get_routing_rulesList all routing rules (and the balancers they reference)
add_routing_ruleAdd a routing rule
remove_routing_ruleRemove a routing rule by index
update_routing_ruleUpdate a routing rule by index
get_outboundsList all outbounds
get_outbounds_trafficGet outbound traffic statistics
reset_outbound_trafficReset traffic for an outbound tag
test_outboundTest connectivity of an outbound
get_balancersBalancer definitions plus their live state in the running core
set_balancer_overridePin a balancer to one outbound, or release it back to its strategy
test_routeAsk the core which outbound it would pick for a synthetic connection
list_outbound_subsList outbound subscriptions — remote URLs supplying extra outbounds
preview_outbound_subParse a subscription URL without saving it
create_outbound_subAdd an outbound subscription
update_outbound_subUpdate a subscription (only supplied fields change)
refresh_outbound_subRe-fetch a subscription now and return its outbounds
move_outbound_subMove a subscription up/down in priority
delete_outbound_subDelete an outbound subscription
list_hostsEvery host group across all inbounds
get_host_groupOne group by its ID
get_inbound_hostsThe groups attached to one inbound
list_host_tagsDistinct tags used across the groups
add_host_groupCreate a group over a set of inbounds
update_host_groupUpdate a group, keeping the fields you omit
delete_host_groupDelete a group and its hosts
set_host_group_enableEnable or disable one group
reorder_host_groupsSet the order groups appear in
bulk_delete_host_groupsDelete several groups at once
bulk_set_host_groups_enableFlip several groups at once
list_sub_balancersEvery subscription balancer in sort order
create_sub_balancerAdd one over a set of inbounds
update_sub_balancerUpdate one, keeping the fields you omit
delete_sub_balancerRemove one
list_api_tokensToken metadata; the values themselves are never returned
create_api_tokenMint a scoped token — the plaintext is shown only once
set_api_token_enabledDisable or re-enable a token without deleting it
delete_api_tokenDelete a token permanently
get_warp_dataWarp account state or the stored WireGuard config
manage_warpRegister, rotate the IP, apply a license, set rotation, or erase
get_nordvpn_dataCountries, servers in a country, or the stored account
manage_nordvpnRegister with a token, set a key, or erase
get_pia_dataRegions, servers in a region, or the stored account
manage_piaLog in, register a key against a server, or erase
get_fail2ban_statusWhether per-client IP limits can be enforced on this host
get_web_cert_filesThis panel's own TLS certificate and key paths
get_cert_hashSHA-256 of a certificate, for pinning
get_remote_cert_hashSHA-256 of a remote server's live certificate
generate_ech_certAn ECH keypair and config list for one SNI
update_geofileDownload fresh GeoIP/GeoSite data files
get_panel_update_statusHow the last panel self-update ended
set_update_channelSwitch between the stable and dev channels
update_panelSelf-update the panel (it restarts)
get_amneziawg_logsLive AmneziaWG peer activity and events
get_node_descendantsThe nodes below this panel in the cluster tree
get_client_ips_tableThe aggregated client-IP table behind IP limits
backup_to_telegramSend a database backup to the admin Telegram chats
test_smtpTest SMTP with stage-by-stage reporting
test_telegram_botSend a test message through the configured bot
validate_regexCompile a pattern with the panel's Go RE2 engine
get_default_settingsPreview what a fresh install would compute
get_factory_defaultsThe shipped default per setting key
update_admin_credentialsChange the panel admin username and password
list_nodesConfigured nodes with health, counts and last heartbeat
get_nodeOne node's connection details and sync state
get_node_historyCPU or memory history for one node
get_node_web_certThe certificate and key paths that exist on the node
test_nodeProbe connection details without saving them
list_node_inboundsThe inbounds available on a node, for selective sync
get_node_cert_fingerprintSHA-256 of the node's leaf certificate, for pinning
add_nodeRegister a node (probed before it is saved)
update_nodeUpdate a node, keeping the fields you omit
set_node_enablePause or resume traffic sync with a node
probe_nodeProbe a registered node and refresh its cached health
delete_nodeDelete a node; its inbounds are not migrated
get_node_mtls_caThis panel's node-auth CA, minted on first call
set_node_mtls_trust_caThe CA this panel trusts when acting as a node
reload_node_mtls_clientApply a rotated client certificate without a restart
update_node_panelsRun the 3x-ui self-updater on the given nodes
list_client_groupsEvery group with its member count, including empty ones
get_client_group_emailsEmails in one group — the input for a bulk action
create_client_groupCreate an empty, selectable group
rename_client_groupRename a group and repoint every member
delete_client_groupDrop a group, keeping its clients
add_clients_to_groupLabel many clients with one group
remove_clients_from_groupClear the group label on many clients
reset_client_group_trafficZero the group counter, leaving per-client counters running
get_metrics_historyTime-series for one host metric (cpu, mem, netUp/Down, online, load)
get_xray_metricsXray runtime metrics state and current expvar values
get_xray_metrics_historyTime-series for one Xray runtime metric
get_xray_observatoryLatest per-outbound latency and health snapshot
get_xray_observatory_historyProbe results over time for one outbound tag
get_panel_update_infoWhether a newer 3x-ui release is out
list_geodata_filesGeo databases in Xray's asset folder, with layout and category count
list_geodata_categoriesCategories in one database, with entry counts and attributes
list_geodata_entriesThe rules inside a category — typed domains or CIDRs
validate_geodata_tokensReport routing tokens that do not resolve, with a reason