cerebrus_screener
Scan 30+ coins for top trading signals including RSI zone, trend, volatility, funding bias, confluence score, and OI trend at a low cost.
Instructions
Scan all 30+ coins for top trading signals. Returns RSI zone, trend, volatility regime, funding bias, multi-TF confluence score with alignment, and OI trend for each coin. Much cheaper than calling pulse individually. Cost: $0.04 USDC via x402.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | Number of top coins to return (1-100). Default: 30 |
Implementation Reference
- src/cerebrus_pulse_mcp/server.py:198-218 (registration)Registration of the 'cerebrus_screener' tool in the tools list returned by list_tools(). Defines name, description, and inputSchema accepting an optional 'top_n' integer parameter.
Tool( name="cerebrus_screener", description=( "Scan all 30+ coins for top trading signals. Returns RSI zone, trend, " "volatility regime, funding bias, multi-TF confluence score with alignment, " "and OI trend for each coin. " "Much cheaper than calling pulse individually. Cost: $0.04 USDC via x402." ), inputSchema={ "type": "object", "properties": { "top_n": { "type": "integer", "description": "Number of top coins to return (1-100). Default: 30", "default": 30, "minimum": 1, "maximum": 100, }, }, }, ), - src/cerebrus_pulse_mcp/server.py:396-398 (handler)Handler for the 'cerebrus_screener' tool. Extracts optional 'top_n' argument (default 30), then delegates to _api_get() calling the '/screener' endpoint with the top_n parameter.
elif name == "cerebrus_screener": top_n = arguments.get("top_n", 30) result = _api_get("/screener", params={"top_n": top_n}) - Helper function _api_get() that executes all API calls including the '/screener' endpoint. Handles 402 (payment required), 429 (rate limited), and other HTTP errors.
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 tool mapping for 'screener' in _CLI_TOOLS dict, mapping to the '/screener' API path with an optional top_n parameter defaulting to 30.
"screener": ("/screener", [("top_n", False, int, 30)]),