cerebrus_correlation
Calculate 30-day rolling correlations between BTC and top 15 Hyperliquid altcoin perpetuals. Identify correlation regimes and sector averages for trading insights.
Instructions
Get BTC-altcoin correlation matrix for top 15 Hyperliquid perpetuals. Returns 30-day rolling correlations, correlation regime (CORRELATED/DECORRELATED/MIXED), and sector averages. Cost: $0.03 USDC via x402.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/cerebrus_pulse_mcp/server.py:408-409 (handler)Handler for cerebrus_correlation tool — calls GET /correlation on the API with no parameters.
elif name == "cerebrus_correlation": result = _api_get("/correlation") - src/cerebrus_pulse_mcp/server.py:255-267 (registration)Tool registration: defines 'cerebrus_correlation' in the list_tools() with description and empty inputSchema.
Tool( name="cerebrus_correlation", description=( "Get BTC-altcoin correlation matrix for top 15 Hyperliquid perpetuals. " "Returns 30-day rolling correlations, correlation regime " "(CORRELATED/DECORRELATED/MIXED), and sector averages. " "Cost: $0.03 USDC via x402." ), inputSchema={ "type": "object", "properties": {}, }, ), - Helper _api_get function used by the handler to make the actual HTTP GET request to the Cerebrus Pulse API.
def _api_get(path: str, params: dict | None = None) -> dict[str, Any]: """Make a GET request to the Cerebrus Pulse API.""" with _make_client() as client: resp = client.get(path, params=params) if resp.status_code == 402: # Return payment details so the agent/user knows cost return { "status": "payment_required", "message": "This endpoint requires x402 USDC payment on Base or Solana.", "url": f"{BASE_URL}{path}", "payment_details": resp.headers.get("X-Payment", "See x402 SDK docs"), "help": "Install the x402 SDK and set CEREBRUS_WALLET_KEY (Base) or CEREBRUS_WALLET_KEY_SOLANA (Solana) to enable auto-payment. See https://cerebruspulse.xyz/guides/x402-payments", } if resp.status_code == 429: return { "status": "rate_limited", "message": "Rate limit exceeded. Back off and retry.", "detail": resp.json() if resp.headers.get("content-type", "").startswith("application/json") else resp.text, } resp.raise_for_status() return resp.json() - CLI mapping for 'correlation' tool — maps to /correlation API path with no parameters.
"correlation": ("/correlation", []),