docs: Update CLAUDE.md with health checks and environment variables
- Add Environment Variables table with all configurable options - Add Health Check section with haproxy_health and haproxy_domain_health examples - Update MCP Tools count from 17 to 19 - Add new Health Check tools section - Update server.py description (line count and tool count) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
58
CLAUDE.md
58
CLAUDE.md
@@ -60,6 +60,20 @@ journalctl -u haproxy-mcp -f # Logs
|
||||
- External: `https://mcp.inouter.com/mcp` (via HAProxy)
|
||||
- **Auto-restore:** Servers restored from `servers.json` on startup
|
||||
|
||||
### Environment Variables
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `MCP_HOST` | `0.0.0.0` | MCP server bind host |
|
||||
| `MCP_PORT` | `8000` | MCP server port |
|
||||
| `HAPROXY_HOST` | `localhost` | HAProxy Runtime API host |
|
||||
| `HAPROXY_PORT` | `9999` | HAProxy Runtime API port |
|
||||
| `HAPROXY_STATE_FILE` | `/opt/haproxy/data/servers.state` | State file path |
|
||||
| `HAPROXY_MAP_FILE` | `/opt/haproxy/conf/domains.map` | Map file path |
|
||||
| `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 |
|
||||
| `LOG_LEVEL` | `INFO` | Logging level (DEBUG/INFO/WARNING/ERROR) |
|
||||
|
||||
## Zero-Reload Domain Management
|
||||
|
||||
### How It Works
|
||||
@@ -182,7 +196,39 @@ curl -X POST https://mcp.inouter.com/mcp \
|
||||
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":0}'
|
||||
```
|
||||
|
||||
## MCP Tools (17 total)
|
||||
## Health Check
|
||||
|
||||
### System Health (`haproxy_health`)
|
||||
Returns overall system status:
|
||||
```json
|
||||
{
|
||||
"status": "healthy",
|
||||
"components": {
|
||||
"mcp": {"status": "ok"},
|
||||
"haproxy": {"status": "ok", "version": "3.3.2", "uptime_sec": 3600},
|
||||
"config_files": {"status": "ok", "files": {"map_file": "ok", "servers_file": "ok"}}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Domain Health (`haproxy_domain_health`)
|
||||
Returns backend server status for a specific domain:
|
||||
```json
|
||||
{
|
||||
"domain": "api.example.com",
|
||||
"backend": "pool_3",
|
||||
"status": "healthy",
|
||||
"servers": [
|
||||
{"name": "pool_3_1", "addr": "10.0.0.1:80", "status": "UP", "check_status": "L4OK"}
|
||||
],
|
||||
"healthy_count": 1,
|
||||
"total_count": 1
|
||||
}
|
||||
```
|
||||
|
||||
**Status values:** `healthy` (all UP), `degraded` (partial UP), `down` (all DOWN), `no_servers`
|
||||
|
||||
## MCP Tools (19 total)
|
||||
|
||||
### Domain Management
|
||||
| Tool | Description |
|
||||
@@ -199,7 +245,13 @@ curl -X POST https://mcp.inouter.com/mcp \
|
||||
| `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) |
|
||||
| `haproxy_get_server_health` | Get UP/DOWN/MAINT status |
|
||||
|
||||
### Health Check
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `haproxy_health` | System health (MCP, HAProxy, config files) |
|
||||
| `haproxy_domain_health` | Domain-specific health with server status |
|
||||
| `haproxy_get_server_health` | Get UP/DOWN/MAINT status for all servers |
|
||||
|
||||
### Monitoring
|
||||
| Tool | Description |
|
||||
@@ -270,7 +322,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 (~1100 lines, 17 tools)
|
||||
│ └── server.py # Main MCP server (~1300 lines, 19 tools)
|
||||
├── conf/
|
||||
│ ├── haproxy.cfg # Main HAProxy config (100 pool backends)
|
||||
│ ├── domains.map # Domain → Pool mapping
|
||||
|
||||
Reference in New Issue
Block a user