Skip to main content
Glama

Holder Dataset Statistics

holder_stats

Get statistics on token holder datasets: total tokens tracked, holder records, chains covered, last update. Free endpoint.

Instructions

Get statistics about the token holder dataset: total tokens tracked, total holder records, chains covered, last updated. Free endpoint.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The 'holder_stats' tool handler — calls the free /api/v1/holders/stats endpoint and returns the JSON response with dataset statistics.
    // ── Dataset stats ─────────────────────────────────────────────────────
    
    server.registerTool(
      "holder_stats",
      {
        title: "Holder Dataset Statistics",
        description:
          "Get statistics about the token holder dataset: total tokens tracked, " +
          "total holder records, chains covered, last updated. Free endpoint.",
        inputSchema: {},
      },
      async () => {
        const res = await apiGet<HolderStatsResponse>("/api/v1/holders/stats");
    
        if (!res.ok) {
          return {
            content: [
              {
                type: "text" as const,
                text: `API error (${res.status}): ${JSON.stringify(res.data)}`,
              },
            ],
            isError: true,
          };
        }
    
        return {
          content: [
            { type: "text" as const, text: JSON.stringify(res.data, null, 2) },
          ],
        };
      },
    );
  • TypeScript interface HolderStatsResponse defining the shape of the stats response (dataset, source, update_frequency, stats).
    interface HolderStatsResponse {
      dataset: string;
      source: string;
      update_frequency: string;
      stats: Record<string, unknown>;
    }
  • Registration of 'holder_stats' tool via server.registerTool(...) with title, description, empty inputSchema.
    server.registerTool(
      "holder_stats",
      {
        title: "Holder Dataset Statistics",
        description:
          "Get statistics about the token holder dataset: total tokens tracked, " +
          "total holder records, chains covered, last updated. Free endpoint.",
        inputSchema: {},
  • src/index.ts:51-51 (registration)
    Registration call to registerHolderTools(server) which wires all holder tools including holder_stats into the MCP server.
    registerHolderTools(server);
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. It only adds that this is a 'Free endpoint', hinting at no cost, but fails to disclose other behavioral traits like read-only nature, required authentication, rate limits, or data freshness beyond the 'last updated' field. The minimal disclosure leaves significant gaps for agent decision-making.

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

Conciseness5/5

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

The description is a single clear sentence that front-loads the purpose and outputs. Every element serves a purpose, with no redundant information.

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

Completeness4/5

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

Given no output schema, the description lists the returned fields, which equips an agent with essential information. However, it lacks mention of the response format (e.g., a JSON object with those fields) and any edge-case behavior. Still, for a simple endpoint, it is mostly complete.

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 input schema has zero parameters (100% coverage), so the description does not need to explain parameters. The description adds value by stating what the endpoint returns, but does not go beyond that. Baseline score of 4 is justified.

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

Purpose5/5

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

The description clearly states the tool gets statistics about the token holder dataset, listing specific items (total tokens, total holder records, chains covered, last updated). It effectively distinguishes from sibling tools like holder_changes and holder_concentration by focusing on aggregate counts rather than changes or concentration metrics.

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

Usage Guidelines3/5

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

The description implies usage by listing what the endpoint returns, but it does not explicitly state when to use this tool over alternatives (e.g., for overview vs. detailed changes). Given the many sibling tools, a brief note on use cases or selection criteria would improve clarity.

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/carrierone/verilexdata-mcp'

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