3xui-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THREEXUI_BASE_URL | Yes | The base URL of your 3x-ui panel. | |
| THREEXUI_PASSWORD | No | Admin password for cookie authentication. | |
| THREEXUI_USERNAME | No | Admin username for cookie authentication. | |
| THREEXUI_API_TOKEN | No | API token for token-based authentication (skips username/password). | |
| THREEXUI_PANEL_TYPE | No | Panel type: auto, modern, or legacy. Defaults to 'auto'. | auto |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_inboundsA | List every inbound configured on the 3x-ui panel, including their clients, protocol, port, and traffic stats. |
| get_inboundA | Get full details of a single inbound (protocol settings, stream settings, clients, traffic) by its numeric ID. Use list_inbounds first to find the ID. |
| create_inboundA | Create a new inbound on the panel. Recommend calling get_inbound on a similar existing inbound first to see the exact shape expected for settings/streamSettings/sniffing on this panel version. |
| update_inboundA | Update an existing inbound by ID. This replaces the inbound configuration, so fetch it with get_inbound first and merge your changes into the full object rather than sending a partial one. |
| delete_inboundA | Permanently delete an inbound and all of its clients by ID. This cannot be undone. |
| list_clientsA | List every client across all inbounds on the panel, with their email, protocol, enabled state, and traffic limits. |
| get_clientA | Get full details (settings, inbound, traffic limits) for a single client by its exact email. Use list_clients first if you do not know the exact email. |
| get_client_trafficA | Get upload/download traffic totals and limits for a single client by exact email. |
| list_online_clientsA | List the emails of clients that are currently connected/online. |
| create_clientA | Create a new client on an existing inbound with auto-generated credentials (UUID/password/keys as appropriate for the protocol). Returns the generated credentials and connection info — surface these to the user, they are not retrievable again in plaintext. |
| update_clientA | Update an existing client's traffic limit, expiry, or enabled state. Only the fields you pass are changed; everything else on the client is preserved. |
| delete_clientA | Permanently delete a client by exact email. This cannot be undone. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Tools are cleanly divided between inbound management and client management, with each tool targeting a distinct resource-action pair. Even within clients, get_client and get_client_traffic are clearly differentiated by scope, eliminating any ambiguity.
All tools follow a consistent verb_noun snake_case pattern (list/get/create/update/delete), applied uniformly across both inbounds and clients. This makes the API highly predictable and easy to navigate.
With 12 tools, the server is well-scoped for managing two primary resources (inbounds and clients). Each tool has a clear purpose and none feel redundant, falling comfortably within the ideal range.
The tool surface covers the full lifecycle for both inbounds and clients, including creation, retrieval, update, deletion, and listing. Additional capabilities like traffic stats and online status round out the domain without obvious gaps.