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

  • Disambiguation5/5

    Each tool has a distinct purpose: get_chains discovers chains, get_pairs reveals a chain's token/venue universe, get_prices returns per-venue prices for one pair, and get_spreads ranks cross-venue opportunities chain-wide. Descriptions explicitly reference when to use each tool, eliminating boundary ambiguity.

    Naming Consistency5/5

    All tools follow the exact `get_<plural_noun>` pattern in snake_case (get_chains, get_pairs, get_prices, get_spreads). The naming is perfectly uniform and predictable.

    Tool Count5/5

    Four tools are well-scoped for the server's purpose: chain discovery, pair/token discovery, per-pair pricing, and spread scanning. Each tool earns its place without bloat or excessive granularity.

    Completeness5/5

    The toolset covers the full workflow from discovering chains and tokens to querying live prices and scanning for arbitrage opportunities across all venues. No obvious missing operation for the stated domain.

  • Average 4.4/5 across 4 of 4 tools scored.

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

    • No community issues in the last 6 months
    • 10 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. It discloses that reads are from pool state, mentions the gross spread caveat, and notes API key requirements. However, it states data is read 'at a stated block number' but the schema has no block parameter, creating a confusing discrepancy. This undermines transparency despite other useful disclosures.

    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 long but every sentence earns its place: it front-loads the core purpose, lists returns, gives usage guidance, includes a vital caveat about gross spreads, and provides auth details. It is well-structured with no filler or repetition.

    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 complexity and lack of output schema, the description covers return values, usage context, spread caveats, and authentication. The only notable gap is the misleading reference to a 'stated block number' that doesn't correspond to any parameter, slightly reducing completeness.

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

    Parameters2/5

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

    Schema coverage is 100%, so baseline is 3. The description adds minimal parameter value, only reinforcing pair order via 'quote token per 1 base token'. Critically, it introduces a non-existent 'stated block number' that is not in the schema, confusing parameter semantics. This negative contribution lowers the score below the baseline.

    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's function: 'Live price of one trading pair at EVERY DEX venue on a chain that holds a pool for it'. It uses a specific verb and resource scope, and explicitly distinguishes from get_spreads by advising 'For ranking opportunities across a whole chain, use get_spreads instead.' This makes the purpose unambiguous and differentiates it from siblings.

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

    Usage Guidelines5/5

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

    The description provides explicit when-to-use guidance: 'Use this when you need the actual number a swap would price against on a specific venue, or to compare one pair across venues.' It also names an alternative: 'For ranking opportunities across a whole chain, use get_spreads instead.' This clearly scopes usage and directs to the correct alternative.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the behavioral disclosure burden. It transparently explains the authentication-dependent behavior: with a RapidAPI key the full token/venue lists are returned, while without one a public snapshot is used that omits token universes. It also mentions the paid route and free tier availability, adding valuable context beyond the tool's basic operation.

    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 main action and scope, followed by operational details. Every sentence adds meaningful information—output contents, usage ordering, authentication behavior, and key source—with no redundancy. It is appropriately sized for the tool's complexity.

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

    Completeness5/5

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

    Given there is no output schema, the description thoroughly explains what the response will include: chains, chain IDs, native assets, pairs, tokens, and DEX venue types. It also covers auth variants, prerequisites, and usage context, making the tool fully understandable without structured output documentation.

    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, so the schema fully covers the input side. The description compensates by explaining what data the response will contain, which is more than enough for a parameterless tool. No additional parameter semantics are needed.

    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 identifies the tool's purpose: listing all supported blockchains with chain IDs, native assets, default trading pairs, token tickers, and DEX venues. It uses a specific verb ('List every blockchain') and enumerates the exact scope, distinguishing it well from sibling tools like get_pairs or get_prices.

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

    Usage Guidelines4/5

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

    The description explicitly instructs 'Call this first to discover valid chain values for the other tools,' providing clear usage context and positioning it as a prerequisite. However, it does not explicitly state when not to use it or compare it to alternatives, so it stops short of a 5.

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

  • Behavior5/5

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

    No annotations are present, and the description carries the full burden, excelling at it. It discloses that the tool returns a token universe rather than a fixed list, returns 404 when no pool exists, and falls back to a free snapshot without a RapidAPI key, labeled as such. It also notes the paid RapidAPI key requirement, giving complete behavioral transparency.

    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 five sentences, each adding a distinct piece of information: main purpose, pair format, universe semantics, fallback behavior, and paid access. It is front-loaded with the core purpose and contains no redundant filler.

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

    Completeness5/5

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

    There is no output schema, so the description must explain what the tool returns, and it does so thoroughly: token tickers, DEX venues, default pair, and the difference between the live universe and the fallback snapshot. It also covers error behavior (404) and authentication requirements, making it complete for a one-parameter tool.

    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 input schema fully documents the single 'chain' parameter with an enum, descriptions, and a note about numeric IDs not being accepted (100% schema coverage). The description adds contextual value by tying the parameter to chain-specific behavior, but it does not need to repeat the schema. The baseline of 3 applies.

    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 opens with 'Show what is queryable on a single chain' and explicitly enumerates the returned items: token tickers, DEX venues, and the chain default pair. It distinguishes from sibling get_prices by explaining how pair strings are constructed, making the tool's role unambiguous.

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

    Usage Guidelines4/5

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

    The description clearly implies usage: it tells users that pairs for get_prices are built from these tickers, so this tool is the prerequisite for constructing price queries. It does not explicitly name alternatives or state when not to use it, but the context is strong enough to guide selection.

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

  • Behavior5/5

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

    With no annotations, the description fully carries the transparency burden and excels: it discloses ranking by gross USD rather than bps, exclusion of low-liquidity venues, gross vs net numbers, the non-profit/non-advice nature, live vs snapshot timing, response stating data source, and key requirements. This is exemplary behavioral disclosure.

    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?

    Although long, every sentence adds meaningful value: main action, ranking rule, an illustrative example, exclusion rationale, gross/net clarification, live vs snapshot behavior, and access instructions. It is well-structured and front-loaded with the core purpose.

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

    Completeness5/5

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

    Given the absence of an output schema and the presence of four parameters, the description is remarkably complete. It covers input behaviors, output field names, ranking logic, limitations, authentication needs, and response characteristics, leaving no major gaps for an AI agent to operate effectively.

    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 input schema already provides 100% coverage with detailed descriptions for all parameters, including the live parameter's behavior and the chain enum. The description adds some context about live requiring a key and snapshot timing, but it largely reiterates schema information. Baseline of 3 is appropriate.

    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's function: 'Sweep a whole chain and rank its cross-venue price dislocations' and enumerates the output fields (buy venue, sell venue, spread in bps, optimal size, gross USD). It distinguishes itself from sibling tools like get_prices by focusing on spread opportunities across venues.

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

    Usage Guidelines4/5

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

    Provides explicit guidance on when to use live=true (with RapidAPI key) versus the free hourly snapshot, and explains the ranking metric (gross USD at optimal size). However, it does not explicitly mention alternatives among sibling tools, so it misses the 'when not to use this' aspect.

    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

arb-dex-mcp MCP server

Copy to your README.md:

Score Badge

arb-dex-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/donnywin85/arb-dex-mcp'

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