Xray MCP Server
# Xray MCP Server
A Model Context Protocol (MCP) server for generating Xray-core configurations using natural language. This server allows LLMs to create server and client configurations for various proxy protocols.
## Features
- **Protocol Support**: VLESS, VMess, Trojan, Shadowsocks
- **Transport Support**: TCP, WebSocket, gRPC, XHTTP
- **Security Support**: None, TLS, REALITY
- **Automatic Key Generation**: UUID, X25519 key pairs, Short IDs, Passwords
- **Configuration Validation**: Syntax and semantic validation
- **Example Configurations**: Ready-to-use templates
- **Documentation**: Built-in protocol, transport, and security documentation
## Installation
```bash
npm install
npm run build
```
## Usage with Cursor
Add to your Cursor MCP settings (`~/.cursor/mcp.json`):
```json
{
"mcpServers": {
"xray-mcp": {
"command": "node",
"args": ["/path/to/xray-mcp/dist/index.js"]
}
}
}
```
## Available Tools
### Configuration Generation
#### `generate_server_config`
Generate Xray server configuration with specified protocol, transport, and security options.
**Example:**
```
Generate a VLESS server with REALITY on port 443
```
#### `generate_client_config`
Generate Xray client configuration for connecting to a proxy server.
**Example:**
```
Create a client config for VLESS+REALITY server at example.com:443
```
### Key Generation
#### `generate_uuid`
Generate a new UUID v4 for VLESS/VMess authentication.
#### `generate_x25519_keypair`
Generate X25519 key pair for REALITY (returns private and public keys).
#### `generate_short_id`
Generate a random short ID for REALITY authentication.
#### `generate_password`
Generate a random password for Trojan or Shadowsocks.
#### `generate_ss2022_key`
Generate a base64 key for Shadowsocks 2022.
### Utilities
#### `validate_config`
Validate an Xray configuration for syntax and semantic errors.
#### `list_protocols`
List all supported proxy protocols with descriptions.
#### `list_transports`
List all supported transport types with descriptions.
#### `list_security`
List all supported security types with descriptions.
#### `list_reality_targets`
List recommended target sites for REALITY.
## Available Resources
- `xray://docs/protocols` - Protocol documentation
- `xray://docs/transports` - Transport documentation
- `xray://docs/security` - Security documentation
- `xray://examples/server-vless-reality` - VLESS+REALITY server example
- `xray://examples/client-vless-reality` - VLESS+REALITY client example
- `xray://examples/server-vmess-ws-tls` - VMess+WS+TLS server example
- `xray://examples/server-trojan-tls` - Trojan+TLS server example
- `xray://examples/server-shadowsocks-2022` - Shadowsocks 2022 server example
## Example Conversations
### Create a VLESS+REALITY Server
**User:** Create a VLESS server with REALITY on port 443, targeting microsoft.com
**Assistant:** (calls `generate_server_config` with appropriate parameters)
### Create Matching Client Config
**User:** Generate a client config to connect to this server
**Assistant:** (calls `generate_client_config` with server details)
### Generate Keys
**User:** Generate a new UUID and X25519 key pair for REALITY
**Assistant:** (calls `generate_uuid` and `generate_x25519_keypair`)
## Supported Configurations
### Protocols
| Protocol | Description | Auth Type |
|----------|-------------|-----------|
| VLESS | Lightweight, supports XTLS Vision | UUID |
| VMess | Classic V2Ray protocol | UUID |
| Trojan | HTTPS-mimicking | Password |
| Shadowsocks | Simple and fast | Password |
### Transports
| Transport | CDN Support | REALITY Support |
|-----------|-------------|-----------------|
| TCP | No | Yes |
| WebSocket | Yes | No |
| gRPC | Partial | Yes |
| XHTTP | Yes | Yes |
### Security
| Security | Certificate Required | Description |
|----------|---------------------|-------------|
| None | No | No encryption |
| TLS | Yes | Standard TLS |
| REALITY | No | Advanced camouflage |
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
```
## License
MIT
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose with no overlap: configuration generation, password/key/UUID generation, protocol/security/transport listing, and validation. The descriptions clearly differentiate them, such as generate_client_config vs. generate_server_config, and list_protocols vs. list_transports vs. list_security.
All tools follow a consistent verb_noun pattern (e.g., generate_client_config, list_protocols, validate_config). The naming is uniform throughout, using snake_case and clear verbs like 'generate', 'list', and 'validate' without any deviations or mixed conventions.
With 12 tools, the count is well-scoped for an Xray configuration server, covering key areas like generation, listing, and validation. Each tool serves a specific function in the domain, and there are no extraneous or missing tools that would make the set feel too thin or bloated.
The tool set provides complete coverage for Xray configuration management: it includes generation tools for all necessary components (configs, passwords, IDs, keys), listing tools for protocols, transports, and security, and a validation tool. There are no obvious gaps, and agents can perform full configuration workflows without dead ends.