Skip to main content
Glama
desk3
by desk3

get_bitcoin_dominance

Calculate Bitcoin's market share percentage relative to all cryptocurrencies to analyze market trends and investment opportunities.

Instructions

Bitcoin (BTC) dominance is a metric used to measure the relative market share or dominance of Bitcoin in the overall cryptocurrency sector. It represents the percentage of Bitcoin's total market capitalization compared to the total market capitalization of all cryptocurrencies combined

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The core handler function that implements the logic for the 'get_bitcoin_dominance' tool by fetching data from the external API endpoint.
    async def get_bitcoin_dominance() -> dict:
        """
        Get Bitcoin (BTC) dominance metric.
        :return: Bitcoin dominance data
        """
        url = 'https://mcp.desk3.io/v1/market/bitcoin/dominance'
        try:
            return request_api('get', url)
        except Exception as e:
            raise RuntimeError(f"Failed to fetch Bitcoin dominance data: {e}")
  • Registration of the 'get_bitcoin_dominance' tool in the MCP server's list_tools handler, including name, description, and empty input schema.
    types.Tool(
        name="get_bitcoin_dominance",
        description="Bitcoin (BTC) dominance is a metric used to measure the relative market share or dominance of Bitcoin in the overall cryptocurrency sector. It represents the percentage of Bitcoin's total market capitalization compared to the total market capitalization of all cryptocurrencies combined",
        inputSchema={
            "type": "object",
            "properties": {},
            "required": [],
        },
    ),
  • JSON schema definition for the tool's input parameters (none required).
            "type": "object",
            "properties": {},
            "required": [],
        },
    ),
  • Tool execution handler in the MCP server's call_tool method, which invokes the get_bitcoin_dominance function and formats the response.
    case "get_bitcoin_dominance":
        try:
            data = await get_bitcoin_dominance()
            return [
                types.TextContent(
                    type="text",
                    text=json.dumps(data, indent=2),
                )
            ]
        except Exception as e:
            raise RuntimeError(f"Failed to fetch Bitcoin dominance data: {e}")
  • Shared helper function used by get_bitcoin_dominance 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
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. The description explains what Bitcoin dominance is but doesn't describe how the tool behaves: whether it returns current/latest data, historical data, real-time updates, calculation methodology, data sources, refresh rates, or error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise (two sentences) but structurally problematic. It's entirely conceptual explanation without front-loading the tool's function. The first sentence should state what the tool does, not just define the metric. While not verbose, it's inefficiently structured for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and zero parameters, the description should fully explain what the tool returns and how it behaves. Instead, it only defines the metric conceptually without specifying that this tool retrieves/returns that metric. For a tool in a server with 15+ sibling cryptocurrency tools, this leaves the agent guessing about the tool's actual function and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters (schema coverage 100%), so there are no parameters needing semantic explanation. The description doesn't need to compensate for any parameter documentation gaps. A baseline of 4 is appropriate since there's nothing to document and nothing is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explains what Bitcoin dominance is conceptually but doesn't state what the tool actually does. It describes the metric itself rather than specifying that this tool retrieves/calculates/returns the current Bitcoin dominance value. The name 'get_bitcoin_dominance' suggests a retrieval function, but the description doesn't confirm this action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. With multiple sibling tools like get_fear_greed_index, get_altcoin_season_index, and get_btc_trend that provide related cryptocurrency metrics, the description offers no context about when Bitcoin dominance is the appropriate metric versus other indicators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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