Skip to main content
Glama

get_puell_multiple

Calculate the Puell Multiple to assess Bitcoin mining revenue pressure, identify market undervaluation for potential buys, and detect overvaluation for sell opportunities.

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

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Core handler function that performs the API request to retrieve Puell Multiple data from the Desk3 API endpoint.
    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}")
  • Tool registration within the list_tools handler, specifying the tool name, detailed description, and 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": [], }, ),
  • JSON Schema definition for the tool input, indicating no required properties.
    inputSchema={ "type": "object", "properties": {}, "required": [], },
  • Tool dispatch handler in the call_tool function that invokes the core 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}")
  • Shared helper function used by all API-fetching tools, including get_puell_multiple, to make authenticated HTTP requests to the Desk3 API.
    def request_api(method: str, url: str, params: dict = None, data: dict = None) -> any: headers = { 'Accepts': 'application/json', 'X-DESK3_PRO_API_KEY': API_KEY, } try: logging.info(f"Requesting {method.upper()} {url} params={params} data={data}") if method.lower() == 'get': response = requests.get(url, headers=headers, params=params) elif method.lower() == 'post': response = requests.post(url, headers=headers, json=data) else: raise ValueError(f"Unsupported HTTP method: {method}") response.raise_for_status() logging.info(f"Response {response.status_code} for {url}") return json.loads(response.text) except Exception as e: logging.error(f"Error during {method.upper()} {url}: {e}") raise

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/desk3/cryptocurrency-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server