get_composite_intelligence
Combines orderflow, sentiment, leverage, and smart money positioning to produce a composite intelligence score (0-100) and a BUY, SHORT, or STAY_OUT verdict for any trading pair.
Instructions
Get composite intelligence score (0-100) with tactical verdict.
Returns a score from 0-100 and a verdict: BUY, SHORT, or STAY_OUT.
Combines orderflow, sentiment, leverage ratios, and smart money positioning
into a single actionable number. Score < 45 = dangerous, > 65 = opportunity.
Args:
symbol: Trading pair (default: BTCUSDT)Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | BTCUSDT |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- horus_mcp_public.py:193-204 (handler)The tool handler decorated with @mcp.tool(). Fetches composite intelligence score from the Horus API and returns JSON.
async def get_composite_intelligence(symbol: str = "BTCUSDT") -> str: """Get composite intelligence score (0-100) with tactical verdict. Returns a score from 0-100 and a verdict: BUY, SHORT, or STAY_OUT. Combines orderflow, sentiment, leverage ratios, and smart money positioning into a single actionable number. Score < 45 = dangerous, > 65 = opportunity. Args: symbol: Trading pair (default: BTCUSDT) """ data = await _fetch(f"/v1/intelligence/composite?symbol={symbol}") return json.dumps(data, indent=2) - horus_mcp_public.py:197-204 (schema)Documentation describing the score range (0-100) and verdicts: BUY, SHORT, STAY_OUT.
Combines orderflow, sentiment, leverage ratios, and smart money positioning into a single actionable number. Score < 45 = dangerous, > 65 = opportunity. Args: symbol: Trading pair (default: BTCUSDT) """ data = await _fetch(f"/v1/intelligence/composite?symbol={symbol}") return json.dumps(data, indent=2) - horus_mcp_public.py:192-192 (registration)The @mcp.tool() decorator registers this function as an MCP tool named 'get_composite_intelligence'.
@mcp.tool() - horus_mcp_public.py:58-89 (helper)The _fetch helper used by get_composite_intelligence to make the HTTP request to the Horus API.
async def _fetch(endpoint: str) -> dict: """Fetch data from the live RapidAPI endpoint.""" async with httpx.AsyncClient(timeout=10.0) as client: try: resp = await client.get( f"{RAPIDAPI_BASE_URL}{endpoint}", headers=HEADERS, ) if resp.status_code == 200: return resp.json() elif resp.status_code in [401, 403]: return { "error": True, "signal": "UNAUTHORIZED", "detail": "Invalid or missing RAPIDAPI_KEY. Please verify your RapidAPI subscription." } elif resp.status_code == 429: return { "error": True, "signal": "RATE_LIMITED", "detail": "You have exceeded your RapidAPI quota. Please upgrade your plan." } return { "error": True, "status_code": resp.status_code, "detail": resp.text, } except Exception as e: return { "error": True, "detail": f"Network Error: {str(e)}" }