get_cycles
Identify cryptocurrency market cycle tops using Pi Cycle and Puell Multiple indicators to analyze Bitcoin's four-year cycle patterns.
Instructions
Does the Bitcoin Four-Year Cycle Exist? Discover the cryptocurrency market cycle indicator that helps you identify the top of the cryptocurrency bull market. This is a collection of publicly available signals including Pi Cycle and Puell Multiple data. Return fields: (puellMultiple Puell: multiple status / piCycleTop: Pi cycle top status / likelihood: cryptocurrency market cycle top indicator)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/desk3_service/server.py:210-219 (handler)The primary handler function for the 'get_cycles' tool. It fetches cryptocurrency market cycle indicators (Puell Multiple, Pi Cycle Top, likelihood) from the external API endpoint.async def get_cycles() -> dict[str, Any]: """ Get Simple indicators data including Puell Multiple Status, Pi Cycle Top Status, and Crypto Market Cycle Top Indicator. :return: Simple indicators data with puellMultiple, piCycleTop, and likelihood fields """ url = 'https://mcp.desk3.io/v1/market/cycles' try: return request_api('get', url) except Exception as e: raise RuntimeError(f"Failed to fetch cycles data: {e}")
- src/desk3_service/server.py:675-679 (schema)The JSON schema definition for the 'get_cycles' tool input, which requires no parameters.inputSchema={ "type": "object", "properties": {}, "required": [], },
- src/desk3_service/server.py:672-680 (registration)Registration of the 'get_cycles' tool in the MCP server's list_tools handler, including name, description, and schema.types.Tool( name="get_cycles", description="Does the Bitcoin Four-Year Cycle Exist? Discover the cryptocurrency market cycle indicator that helps you identify the top of the cryptocurrency bull market. This is a collection of publicly available signals including Pi Cycle and Puell Multiple data. Return fields: (puellMultiple Puell: multiple status / piCycleTop: Pi cycle top status / likelihood: cryptocurrency market cycle top indicator) ", inputSchema={ "type": "object", "properties": {}, "required": [], }, ),
- src/desk3_service/server.py:872-882 (handler)The MCP tool call dispatcher case that invokes the get_cycles handler and formats the response as TextContent.case "get_cycles": try: data = await get_cycles() return [ types.TextContent( type="text", text=json.dumps(data, indent=2), ) ] except Exception as e: raise RuntimeError(f"Failed to fetch cycles data: {e}")