Configurazione
Scenari di deployment
Scenario 1 — stdio locale (Claude Desktop / Claude Code)
Configurazione minima per integrare il gateway con un client AI locale. Non richiede Traefik né rete Docker.
MCP_TRANSPORT=stdio \
MCP_ENABLED=true \
TICKERSCANNER_URL=http://localhost:3013 \
DATAHUB_URL=http://localhost:3000 \
REDIS_URL=redis://localhost:6379 \
node mcp-gateway/server.js
In claude_desktop_config.json:
{
"mcpServers": {
"trading-system": {
"command": "node",
"args": ["/percorso/assoluto/mcp-gateway/server.js"],
"env": {
"MCP_TRANSPORT": "stdio",
"TICKERSCANNER_URL": "http://localhost:3013",
"DATAHUB_URL": "http://localhost:3000",
"REDIS_URL": "redis://localhost:6379"
}
}
}
}
Scenario 2 — HTTP transport containerizzato
Deployment via Docker Compose, trasporto HTTP, protetto da token.
# docker-compose.local.yml
mcp-gateway:
environment:
- MCP_TRANSPORT=http
- MCP_HTTP_PATH=/mcp/transport
- INTERNAL_TOKEN=${INTERNAL_TOKEN}
- MCP_TOOL_ALLOWLIST=ping,strategies_list
- TICKERSCANNER_URL=http://tickerscanner:3013
Con MCP_HTTP_PATH=/mcp/transport, gli endpoint diventano:
GET /mcp/health(debug, sempre attivo)GET /mcp/tools(debug, sempre attivo)GET /mcp/transport/tools(HTTP transport)POST /mcp/transport/call(HTTP transport)
Scenario 3 — MCP disabilitato (solo REST standard)
Se si vuole avere il container attivo per gli endpoint standard (/status/health, /settings ecc.) senza esporre strumenti MCP:
environment:
- MCP_ENABLED=false
Il server REST rimane completamente funzionale. Le chiamate a getMcpRegistry() restituiranno un errore interno.
Variabili di riferimento completo
| Variabile | Default | Obbligatoria | Descrizione |
|---|---|---|---|
DATAHUB_URL | http://datahub:3000 | Sì | URL datahub (gestita da BaseService) |
REDIS_URL | — | Sì | URI Redis |
MCP_ENABLED | true | No | Disabilitare con false |
MCP_TRANSPORT | stdio | No | stdio oppure http |
MCP_HTTP_PATH | /mcp | No | Path mount HTTP transport |
MCP_TOOL_ALLOWLIST | (tutti) | No | Lista tool abilitati (CSV) |
INTERNAL_TOKEN | — | No | Token protezione endpoint HTTP |
TICKERSCANNER_URL | http://tickerscanner:3013 | No | Upstream per strategies_list |
LOG_LEVEL | info | No | Livello di log |
ENV | — | No | Prefisso canali Redis |
PORT | 3004 | No | Porta Express |
Aggiungere un nuovo tool
- Creare
modules/mcp/tools/<nome>.jscon la struttura tool (vedi File e ruoli). - Aggiungere il require in
modules/mcp/registry.jsnell'arrayDEFAULT_TOOLS. - Se si usa
MCP_TOOL_ALLOWLIST, aggiungere il nome del tool alla variabile. - Riavviare il servizio — il tool comparirà automaticamente in
GET /mcp/toolse sarà disponibile al client AI.