docs: Update CLAUDE.md with new features and improvements
- Update tool count: 19 → 20 - Add HAPROXY_CONTAINER environment variable - Add haproxy_add_servers (bulk operations) to tool list - Document IPv6 support in haproxy_add_domain - Add include_wildcards parameter note for haproxy_list_domains - Update haproxy_reload: now auto-restores servers - Add Bulk Server Operations section with example - Update server.py description (~1500 lines, 20 tools) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
23
CLAUDE.md
23
CLAUDE.md
@@ -72,6 +72,7 @@ journalctl -u haproxy-mcp -f # Logs
|
||||
| `HAPROXY_SERVERS_FILE` | `/opt/haproxy/conf/servers.json` | Servers config path |
|
||||
| `HAPROXY_POOL_COUNT` | `100` | Number of pool backends |
|
||||
| `HAPROXY_MAX_SLOTS` | `10` | Max servers per pool |
|
||||
| `HAPROXY_CONTAINER` | `haproxy` | Podman container name |
|
||||
| `LOG_LEVEL` | `INFO` | Logging level (DEBUG/INFO/WARNING/ERROR) |
|
||||
|
||||
## Zero-Reload Domain Management
|
||||
@@ -105,6 +106,17 @@ This will:
|
||||
- Backends always use HTTP (port 80 or custom)
|
||||
- SSL/TLS termination happens at HAProxy frontend
|
||||
- Each pool has 10 server slots (pool_N_1 to pool_N_10)
|
||||
- **IPv6 supported**: Both IPv4 and IPv6 addresses accepted
|
||||
|
||||
### Bulk Server Operations
|
||||
```bash
|
||||
# Add multiple servers at once
|
||||
haproxy_add_servers("api.example.com", '[
|
||||
{"slot": 1, "ip": "10.0.0.1", "http_port": 80},
|
||||
{"slot": 2, "ip": "10.0.0.2", "http_port": 80},
|
||||
{"slot": 3, "ip": "2001:db8::1", "http_port": 80}
|
||||
]')
|
||||
```
|
||||
|
||||
### Files
|
||||
| File | Purpose |
|
||||
@@ -228,13 +240,13 @@ Returns backend server status for a specific domain:
|
||||
|
||||
**Status values:** `healthy` (all UP), `degraded` (partial UP), `down` (all DOWN), `no_servers`
|
||||
|
||||
## MCP Tools (19 total)
|
||||
## MCP Tools (20 total)
|
||||
|
||||
### Domain Management
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `haproxy_list_domains` | List all domains with pool mappings and servers |
|
||||
| `haproxy_add_domain` | Add domain to available pool (no reload) |
|
||||
| `haproxy_list_domains` | List domains (use `include_wildcards=true` for wildcards) |
|
||||
| `haproxy_add_domain` | Add domain to available pool (no reload), supports IPv6 |
|
||||
| `haproxy_remove_domain` | Remove domain from pool (no reload) |
|
||||
|
||||
### Server Management
|
||||
@@ -242,6 +254,7 @@ Returns backend server status for a specific domain:
|
||||
|------|-------------|
|
||||
| `haproxy_list_servers` | List servers for a domain |
|
||||
| `haproxy_add_server` | Add server to slot (1-10), auto-saved |
|
||||
| `haproxy_add_servers` | Bulk add servers (JSON array), auto-saved |
|
||||
| `haproxy_remove_server` | Remove server from slot, auto-saved |
|
||||
| `haproxy_set_server_state` | Set state: ready/drain/maint |
|
||||
| `haproxy_set_server_weight` | Set weight (0-256) |
|
||||
@@ -264,7 +277,7 @@ Returns backend server status for a specific domain:
|
||||
### Configuration
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `haproxy_reload` | Validate and reload config |
|
||||
| `haproxy_reload` | Validate, reload config, auto-restore servers |
|
||||
| `haproxy_check_config` | Validate config syntax |
|
||||
| `haproxy_save_state` | Save server state to disk (legacy) |
|
||||
| `haproxy_restore_state` | Restore state from disk (legacy) |
|
||||
@@ -322,7 +335,7 @@ echo "set server pool_1/pool_1_1 state ready" | nc localhost 9999
|
||||
```
|
||||
/opt/haproxy/
|
||||
├── mcp/ # MCP server (streamable-http)
|
||||
│ └── server.py # Main MCP server (~1300 lines, 19 tools)
|
||||
│ └── server.py # Main MCP server (~1500 lines, 20 tools)
|
||||
├── conf/
|
||||
│ ├── haproxy.cfg # Main HAProxy config (100 pool backends)
|
||||
│ ├── domains.map # Domain → Pool mapping
|
||||
|
||||
Reference in New Issue
Block a user