Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes focused on different NFT analytics metrics (average price, daily sales, trading volume, new owners, unique traders), but get_daily_sales_by_collection and get_daily_trading_volume_by_collection could potentially be confused as both relate to daily collection-level activity. The descriptions help clarify, but there's some overlap in their temporal and collection focus.

    Naming Consistency5/5

    All tools follow a consistent verb_noun_by_collection pattern (get_average_price_by_collection, get_daily_sales_by_collection, etc.), with the exception of get_new_owners which omits 'by_collection' but maintains the same verb_noun structure. This minor deviation doesn't break the overall consistency, making the naming highly predictable and readable.

    Tool Count4/5

    With 5 tools, the count is reasonable for an NFT analytics server, covering key metrics without being overwhelming. However, it feels slightly thin for a comprehensive analytics suite, as it lacks tools for broader analysis like trends over time or cross-collection comparisons, but it's well within an appropriate range for its focused scope.

    Completeness3/5

    The toolset covers several important NFT analytics metrics (price, sales, volume, owners, traders), but there are notable gaps. It lacks tools for updating or managing data, historical trend analysis, or filtering by specific parameters beyond collections, which limits the depth of analysis an agent can perform. The surface is functional but incomplete for advanced analytics workflows.

  • Average 3.5/5 across 5 of 5 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool returns a markdown table or error message, which adds some context about output format. However, it lacks details on critical behavioral traits like rate limits, authentication needs, data freshness, or whether it's a read-only operation (implied by 'Retrieve' but not explicit). For a tool with no annotations, this is a significant gap.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded, with the purpose stated clearly in the first sentence. The Args and Returns sections are structured efficiently, though the 'Returns' section could be more concise (e.g., by omitting 'or error message if the query fails' if errors are assumed). Overall, it avoids unnecessary verbosity.

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

    Completeness3/5

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

    Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is somewhat complete but has gaps. It covers the basic purpose and parameter, and hints at output format. However, it lacks details on behavioral aspects and usage context, which are important for effective tool selection and invocation. Without annotations or output schema, more comprehensive guidance would improve completeness.

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

    Parameters3/5

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

    The description adds minimal semantics beyond the input schema. It explains that 'limit' is 'Maximum number of rows to fetch from the query' and defaults to 1000, which matches the schema's default value. However, with 0% schema description coverage, the description doesn't fully compensate by providing details like valid ranges or implications of the limit parameter. The baseline is 3 since it adds some value but not enough to overcome the low coverage.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Retrieve average selling price for NFT collections.' It specifies the verb ('Retrieve') and resource ('average selling price for NFT collections'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_daily_sales_by_collection' or 'get_daily_trading_volume_by_collection', which also involve collection data but focus on different metrics.

    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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this tool is preferred, such as for price analysis rather than sales volume or trader metrics. Without such guidance, users must infer usage based on the tool name and description alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions return values (count as string, 'N/A', or error message), which adds some context, but fails to disclose critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or how 'new owners' is defined (e.g., time window). This leaves significant gaps for an agent.

    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 front-loaded with the core purpose in the first sentence, followed by a concise explanation of return values. Every sentence adds value without waste, making it efficiently structured and appropriately sized for a simple tool.

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

    Completeness3/5

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

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains the return format, which is helpful, but lacks context on usage guidelines and behavioral traits like data scope or limitations, making it minimally viable but incomplete for optimal agent use.

    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 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, but it correctly avoids unnecessary details, earning a baseline high score for this dimension.

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

    Purpose4/5

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

    The description clearly states the verb 'Retrieve' and the resource 'count of new NFT owners', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_unique_traders_by_collection', which might retrieve similar but distinct data about traders rather than new owners.

    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?

    The description provides no guidance on when to use this tool versus alternatives like 'get_unique_traders_by_collection' or other sibling tools. It lacks context about prerequisites, such as whether it applies to a specific collection or timeframe, leaving usage unclear.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the core functionality (retrieving sales counts) and output format (Markdown table or error message), but lacks details about performance characteristics, rate limits, authentication requirements, or what constitutes a 'failed' query beyond error messages.

    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 efficiently structured with a clear purpose statement followed by dedicated Args and Returns sections. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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

    Completeness3/5

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

    Given the tool's moderate complexity (single optional parameter, no output schema, no annotations), the description covers the basics adequately but has gaps. It explains what the tool does and the parameter, but doesn't address sibling differentiation, error conditions in detail, or data freshness, which would help an agent use it more effectively.

    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 description adds meaningful context for the single parameter 'limit' by explaining it controls 'Maximum number of rows to fetch from the query' and provides the default value. Since schema description coverage is 0% and there's only one parameter, this compensates well, though it could specify units or constraints like minimum/maximum values.

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

    Purpose4/5

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

    The description clearly states the verb ('Retrieve') and resource ('number of daily sales for NFT collections'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings like 'get_daily_trading_volume_by_collection' or 'get_average_price_by_collection', which would require more specific language about what distinguishes sales counts from other metrics.

    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?

    The description provides no guidance on when to use this tool versus its siblings. It doesn't mention alternatives, prerequisites, or specific contexts where this tool is preferred over others like 'get_daily_trading_volume_by_collection' for volume data or 'get_average_price_by_collection' for price metrics.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It adds some context by specifying the return format (Markdown table) and error handling, but lacks details on permissions, rate limits, or side effects. This is adequate but has clear gaps for a tool with no annotation coverage.

    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 front-loaded with the core purpose, followed by structured sections for Args and Returns. Every sentence earns its place, with no wasted words, making it efficient and easy to parse for an AI agent.

    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 the tool's low complexity (one optional parameter) and no output schema, the description is reasonably complete. It covers purpose, parameter semantics, and return format, though it could benefit from more behavioral context like error conditions or performance notes to be fully comprehensive.

    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 description adds meaningful semantics beyond the input schema, which has 0% coverage. It explains that 'limit' controls the maximum rows fetched and defaults to 1000, compensating for the schema's lack of descriptions. With only one parameter, this provides sufficient context for agent understanding.

    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 specific verb ('retrieve count') and resource ('unique buyers and sellers for NFT collections'), distinguishing it from siblings like get_average_price_by_collection or get_daily_sales_by_collection. It precisely defines what the tool does without being vague or tautological.

    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?

    The description provides no guidance on when to use this tool versus alternatives like get_new_owners or other sibling tools. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the purpose alone.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('Markdown table') and error handling ('error message if the query fails'), which adds useful context beyond basic functionality. However, it lacks details on rate limits, data freshness, or authentication needs, leaving gaps for a tool with no annotation support.

    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 front-loaded with the core purpose, followed by structured sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

    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 the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is largely complete. It covers purpose, parameter semantics, and return format. However, it lacks explicit guidance on when to use versus siblings and omits behavioral details like data sources or update frequency, which could enhance completeness.

    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 description adds meaningful semantics for the single parameter 'limit', explaining it as 'Maximum number of rows to fetch from the query' with a default of 1000. Since schema description coverage is 0%, this compensates well by clarifying the parameter's purpose and default behavior, though it doesn't specify constraints like minimum/maximum values.

    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 specific action ('Retrieve daily trading volume') and resource ('top 5 Ethereum NFT collections'), distinguishing it from siblings like get_average_price_by_collection or get_daily_sales_by_collection. It precisely defines the scope and target data.

    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 for fetching daily trading volume data, but does not explicitly state when to use this tool versus alternatives like get_daily_sales_by_collection or get_average_price_by_collection. No exclusions or prerequisites are mentioned, leaving usage context inferred rather than defined.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

nft-analytics-mcp MCP server

Copy to your README.md:

Score Badge

nft-analytics-mcp MCP server

Copy to your README.md:

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/kukapay/nft-analytics-mcp'

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