get_daily_tokens_deployed
Track daily token deployments across Solana memecoin launchpads. Fetch deployment counts by platform and optionally view data as percentages of daily totals.
Instructions
Retrieve the daily count of tokens deployed by Solana memecoin launchpads.
This tool fetches data from a Dune Analytics query and pivots it to show the number of tokens
deployed per day by each platform. Optionally, it can return the data as percentages of the
total daily deployments.
Args:
return_percent (bool, optional): If True, returns the data as percentages of total daily
deployments for each platform. Defaults to False.
limit (int, optional): Maximum number of rows to fetch from the Dune query. Defaults to 1000.
Returns:
str: A markdown-formatted table of daily token deployments by platform, or an error message
if the query fails.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| return_percent | No | ||
| limit | No |
Implementation Reference
- main.py:46-73 (handler)The handler function that executes the tool logic: fetches latest results from Dune query ID 4010816, processes the data using pandas to pivot daily token counts by platform, optionally computes percentages, sorts by date descending, and returns a markdown table or error string.def get_daily_tokens_deployed(return_percent: bool = False, limit: int = 1000) -> str: """ Retrieve the daily count of tokens deployed by Solana memecoin launchpads. This tool fetches data from a Dune Analytics query and pivots it to show the number of tokens deployed per day by each platform. Optionally, it can return the data as percentages of the total daily deployments. Args: return_percent (bool, optional): If True, returns the data as percentages of total daily deployments for each platform. Defaults to False. limit (int, optional): Maximum number of rows to fetch from the Dune query. Defaults to 1000. Returns: str: A markdown-formatted table of daily token deployments by platform, or an error message if the query fails. """ try: data = get_latest_result(4010816, limit=limit) df = pd.DataFrame(data) df['date'] = pd.to_datetime(df['date_time']).dt.date pivot_df = df.pivot(index='date', columns='platform', values='daily_token_count') pivot_df = pivot_df.sort_index(ascending=False) if return_percent: pivot_df = pivot_df.div(pivot_df.sum(axis=1), axis=0).round(3) return pivot_df.to_markdown() except Exception as e: return str(e)
- main.py:45-45 (registration)The @mcp.tool() decorator registers the get_daily_tokens_deployed function as an MCP tool.@mcp.tool()
- main.py:21-44 (helper)Supporting helper function used by the tool to fetch the latest execution results from the Dune Analytics API for the specified query ID.def get_latest_result(query_id: int, limit: int = 1000) -> list: """ Fetch the latest results from a Dune Analytics query. Args: query_id (int): The ID of the Dune query to fetch results from. limit (int, optional): Maximum number of rows to return. Defaults to 1000. Returns: list: A list of dictionaries containing the query results, or an empty list if the request fails. Raises: httpx.HTTPStatusError: If the API request fails due to a client or server error. """ url = f"{BASE_URL}/query/{query_id}/results" params = {"limit": limit} with httpx.Client() as client: response = client.get(url, params=params, headers=HEADERS, timeout=300) response.raise_for_status() data = response.json() result_data = data.get("result", {}).get("rows", []) return result_data