Files
Cerbero-mcp/README.md
T
AdrianoDev c2fd8330ca feat(mcp-deribit,mcp-bybit): add place_combo_order
Deribit: private/create_combo + place_order sul combo instrument → una
sola crociata di spread invece di N (slippage atteso ridotto su
strutture liquide). ACL core + leverage cap su tutti i leg.

Bybit: place_batch_order su category=option (atomic multi-leg, 1
round-trip API). Reject su category != option (perp/linear non
supportano batch nativo). orderLinkId auto-generato per leg.

Tutti i test: deribit 48/48, bybit 123/123.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 23:12:09 +02:00

1.6 KiB

Cerbero_mcp

Server MCP riusabili (exchange + market data) per la suite Cerbero. Spinta da Cerbero/ (commit pre-split-2026-04-27) come parte dello split documentato in docs/superpowers/specs/2026-04-27-split-mcp-core-design.md (nel repo storico).

Servizi

  • mcp-alpaca, mcp-bybit, mcp-deribit, mcp-hyperliquid — exchange con place_order, environment_info, leverage cap server-side
  • mcp-deribit e mcp-bybit espongono inoltre place_combo_order:
    • Deribit: private/create_combo + ordine sul combo → 1 sola crociata di spread invece di N (slippage atteso ridotto su strutture liquide).
    • Bybit: place_batch_order su category=option → multi-leg atomico in un solo round-trip API (no sconto fee, solo atomicità + latenza).
  • mcp-macro, mcp-sentiment — read-only market data

Avvio locale

docker compose up -d
bash tests/smoke/run.sh

Configurazione

Vedi secrets/*.json e variabili *_TESTNET / ALPACA_PAPER in docker-compose.yml per override ambiente.

Risoluzione environment (testnet/mainnet)

Ogni servizio exchange usa mcp_common.environment.resolve_environment() che applica la precedenza:

  1. env var di override (DERIBIT_TESTNET, BYBIT_TESTNET, HYPERLIQUID_TESTNET, ALPACA_PAPER)
  2. flag nel secret JSON (testnet o paper per alpaca)
  3. default testnet

Gli URL canonici live/testnet sono passati come kwargs default_base_url_live / default_base_url_testnet direttamente al resolver — non serve duplicarli nel secret JSON, ma se presenti prevalgono sui default del codice.