get_puell_multiple
Analyze Bitcoin mining revenue trends using the Puell Multiple to identify undervaluation (buy opportunities) and overvaluation (sell signals) based on daily issuance compared to its 365-day average. Gain insights into market cycles from a miner's perspective.
Instructions
The Puell Multiple assesses Bitcoin miners' revenue by dividing daily issuance (in USD) by its 365-day average. This reflects the mining pressure in the market. Low values (green areas) indicate undervaluation and strong historical buy areas, while high values (red areas) indicate overvaluation and potential sell opportunities. It provides insight into market cycles from the perspective of miners
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/desk3_service/server.py:198-207 (handler)The core handler function that fetches Puell Multiple data from the API endpoint 'https://mcp.desk3.io/v1/market/puell-multiple' using request_api and handles exceptions.async def get_puell_multiple() -> dict[str, Any]: """ Get Puell Multiple data. :return: Puell Multiple data assessing Bitcoin miners' revenue by dividing daily issuance by its 365-day average """ url = 'https://mcp.desk3.io/v1/market/puell-multiple' try: return request_api('get', url) except Exception as e: raise RuntimeError(f"Failed to fetch Puell Multiple data: {e}")
- src/desk3_service/server.py:663-671 (registration)Registration of the 'get_puell_multiple' tool in the list_tools handler, including name, description, and empty input schema (no parameters required).types.Tool( name="get_puell_multiple", description="The Puell Multiple assesses Bitcoin miners' revenue by dividing daily issuance (in USD) by its 365-day average. This reflects the mining pressure in the market. Low values (green areas) indicate undervaluation and strong historical buy areas, while high values (red areas) indicate overvaluation and potential sell opportunities. It provides insight into market cycles from the perspective of miners", inputSchema={ "type": "object", "properties": {}, "required": [], }, ),
- src/desk3_service/server.py:861-871 (registration)Dispatcher case in the server.call_tool handler that invokes the get_puell_multiple function and returns the JSON-formatted result as TextContent.case "get_puell_multiple": try: data = await get_puell_multiple() return [ types.TextContent( type="text", text=json.dumps(data, indent=2), ) ] except Exception as e: raise RuntimeError(f"Failed to fetch Puell Multiple data: {e}")
- src/desk3_service/server.py:666-670 (schema)JSON Schema for the tool input: empty object with no properties or required fields.inputSchema={ "type": "object", "properties": {}, "required": [], },