Skip to main content
Glama
counter-measure

Everclear MCP Server

Everclear MCP Server

A Model Context Protocol (MCP) server that provides Claude AI with direct access to Everclear.org's API endpoints. This enables Claude to interact with the Everclear protocol, query intents and invoices, retrieve analytics, and perform various blockchain-related operations.

Features

Required Endpoints

  • Get Intents: Retrieve a list of intents with optional filters

  • Get Intent Details: Get detailed information about a specific intent

  • Get Invoices: Fetch list of invoices with optional filters

  • Get Invoice Details: Get detailed information about a specific invoice

  • Get Invoice Min Amounts: Calculate minimum amounts needed to settle an invoice

  • Get Route Quote: Get quote for a route including fees and limits

Optional Endpoints

  • Get Liquidity Flow: Retrieve liquidity flow metrics

  • Get Clearing Volume: Retrieve clearing volume metrics

Related MCP server: Base MCP Server

Installation

  1. Clone the repository:

git clone <repository-url>
cd everclear-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Usage

Running the Server

For development:

npm run dev

For production:

npm start

Integration with Claude Desktop

  1. Open Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the Everclear MCP server configuration:

{
  "mcpServers": {
    "everclear": {
      "command": "node",
      "args": ["/path/to/everclear-mcp/dist/index.js"]
    }
  }
}
  1. Restart Claude Desktop

Available Tools

Once connected, Claude will have access to the following tools:

get_intents

Retrieve a list of intents from Everclear.

  • Parameters:

    • status (optional): Filter by intent status

    • limit (optional): Number of results to return

    • offset (optional): Pagination offset

get_intent_details

Get detailed information about a specific intent.

  • Parameters:

    • intentId (required): The ID of the intent

get_invoices

Retrieve a list of invoices.

  • Parameters:

    • status (optional): Filter by invoice status

    • limit (optional): Number of results to return

    • offset (optional): Pagination offset

get_invoice_details

Get detailed information about a specific invoice.

  • Parameters:

    • invoiceId (required): The ID of the invoice

get_invoice_min_amounts

Calculate minimum amounts needed to settle an invoice.

  • Parameters:

    • invoiceId (required): The ID of the invoice

get_route_quote

Get a quote for a route including fees and limits.

  • Parameters:

    • fromChain (required): Source chain identifier

    • toChain (required): Destination chain identifier

    • amount (required): Amount to transfer

    • token (required): Token address or identifier

get_liquidity_flow

Retrieve liquidity flow metrics.

  • Parameters:

    • timeRange (optional): Time range for metrics

    • chainId (optional): Filter by specific chain

get_clearing_volume

Retrieve clearing volume metrics.

  • Parameters:

    • timeRange (optional): Time range for metrics

    • chainId (optional): Filter by specific chain

Development

Project Structure

everclear-mcp/
├── src/
│   └── index.ts        # Main MCP server implementation
├── dist/               # Compiled JavaScript output
├── package.json        # Project dependencies and scripts
├── tsconfig.json       # TypeScript configuration
├── README.md           # This file
└── PRODUCT_SPEC.md     # Product specification document

Scripts

  • npm run build: Compile TypeScript to JavaScript

  • npm run dev: Run the server in development mode with hot reload

  • npm start: Run the compiled server

API Documentation

For more information about the Everclear API endpoints, visit: https://docs.everclear.org/developers/api

License

ISC

Available Tools

11 tools
convert_chain_id_to_nameA

Convert a chain ID to its human-readable name.

      WORKFLOW INSTRUCTIONS:
      - Use this to make API responses more readable
      - Chain IDs are numeric strings, names are like "Arbitrum", "Optimism"
      - Returns "Unknown Chain (ID)" if chain ID not found
      
      DATA FORMATTING:
      - Always use this before displaying chain information to users
      - Combine with other tools for complete chain analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesThe chain ID to convert

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the input shape (numeric strings), the fallback behavior ('Unknown Chain (ID)' if not found), and the intended display workflow. It omits any note on case sensitivity, whitespace tolerance, or whether conversion is purely local/lookup-based.

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?

Front-loaded with the core purpose, then organized under WORKFLOW INSTRUCTIONS and DATA FORMATTING headers. Slightly verbose – 'Combine with other tools for complete chain analysis' is generic filler – but no sentence is seriously wasted.

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?

For a one-parameter lookup tool with no annotations and no output schema, the description supplies everything needed: input format, return value shape, and fallback behavior. Nothing an agent must know to call it correctly is missing.

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?

Schema coverage is 100%, so baseline is 3; the description adds real meaning by specifying that chain IDs are numeric strings and giving concrete output examples ('Arbitrum', 'Optimism'). The schema description ('The chain ID to convert') alone would not convey the expected format.

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?

States a specific verb+resource: converting a chain ID to its human-readable name. It is clearly distinguishable from the sibling convert_tickerhash_to_name, which handles a different identifier type.

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?

Gives clear context ('use this to make API responses more readable', 'always use this before displaying chain information'). It does not name the sibling convert_tickerhash_to_name or state when not to use this tool, so it falls short of full alternatives-based guidance.

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

convert_tickerhash_to_nameA

Convert a tickerhash to its human-readable token name.

      WORKFLOW INSTRUCTIONS:
      - Use this to make token information more readable
      - Tickerhashes are long strings, names are like "USDC", "WETH"
      - Returns "Unknown Token (hash)" if tickerhash not found
      
      DATA FORMATTING:
      - Always use this before displaying token information to users
      - Essential for route quotes and invoice analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
tickerhashYesThe tickerhash to convert

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It usefully discloses the fallback behavior: 'Returns "Unknown Token (hash)" if tickerhash not found.' It does not explicitly state that the tool is read-only or has no side effects, but for a pure conversion utility this is a minor omission and the fallback detail adds real value.

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 purpose is front-loaded in the first sentence, followed by structured workflow and formatting notes. There is mild redundancy between 'Use this to make token information more readable' and 'Always use this before displaying token information to users,' but the extra guidance is generally useful for a simple conversion tool.

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?

For a simple one-parameter conversion with no output schema, the description supplies the needed context: purpose, usage timing, and fallback return value. It does not mention error handling beyond not-found or confirm read-only behavior, but those gaps are minor given the tool's simplicity.

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?

Schema description coverage is 100%, and the single parameter already has a description. The tool description adds only illustrative context ('Tickerhashes are long strings, names are like "USDC", "WETH"') without new syntax or format constraints. Baseline 3 is appropriate when the schema already documents the parameter fully.

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 first sentence states a precise verb+resource: converting a tickerhash to a human-readable token name. It implicitly distinguishes itself from the sibling convert_chain_id_to_name by specifying tickerhash input rather than chain ID. An agent can identify the tool's purpose without opening the schema.

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 gives explicit usage conditions: 'Always use this before displaying token information to users' and 'Essential for route quotes and invoice analysis.' It does not name an alternative tool or a when-not-to-use case, but the usage context is clear and actionable.

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

get_clearing_volumeC

Retrieve clearing volume metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoFilter by specific chain
timeRangeNoTime range for metrics

TDQS

C2.9/5.0
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, and it discloses almost nothing: no indication of aggregation level, units, whether results are cached, or permission requirements. The word 'Retrieve' implies a read, but that is the only behavioral signal.

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?

A single short clause with zero filler, and the resource is front-loaded. It is efficient, though the brevity edges toward under-specification rather than true conciseness.

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?

With no output schema, the description should describe what the metrics contain (units, granularity, shape of the response), and it does not. For a metrics endpoint with two optional filters and no annotations, this leaves the agent guessing at the result semantics.

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?

Schema description coverage is 100%, so both chainId and timeRange are already documented in the schema, and the description adds no format, default, or accepted-value detail. Baseline 3 applies when the schema does the heavy lifting.

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?

States a clear verb+resource: retrieve clearing volume metrics. An agent can tell it reads volume data rather than intents, invoices, or quotes. However, it does nothing to distinguish itself from near-neighbors like get_liquidity_flow, which likely also returns aggregated metric data.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the ten sibling tools. The agent must infer that this is the volume-metrics tool purely from the name.

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

get_intent_detailsC

Get detailed information about a specific intent

ParametersJSON Schema
NameRequiredDescriptionDefault
intentIdYesThe ID of the intent

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It implies a read-only lookup but says nothing about the response shape, error behavior for missing IDs, or whether access to another party's intent is restricted. 'Detailed information' is never unpacked.

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?

A single front-loaded sentence with no filler. It is efficient, though its brevity contributes to the gaps in other dimensions rather than being a virtue on its own.

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?

No output schema and no annotations mean the description must explain what 'detailed information' actually contains, and it does not. For a detail-retrieval tool with a bare one-line description, an agent cannot predict the return payload or failure modes.

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?

Schema description coverage is 100% and only one parameter exists, so the schema already defines intentId. The description adds no format, prefix, or sourcing detail beyond what the schema provides; baseline 3 applies.

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 states a clear verb ('Get') and resource ('detailed information about a specific intent'), and the word 'specific' hints at single-item retrieval versus the get_intents sibling. However, it never names or contrasts with get_intents, so the distinction is left to inference.

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 on when to use this tool versus get_intents, no prerequisites, and no mention of what happens if the intentId is unknown. The agent must guess the routing rule from the name alone.

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

get_intentsC

Retrieve a list of intents from Everclear

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return
offsetNoPagination offset
statusNoFilter by intent status

TDQS

C2.9/5.0
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 behavioral burden. It does not disclose authentication requirements, pagination behavior, default ordering, response shape, or error conditions. The word 'Retrieve' implies a read, but nothing more specific is stated.

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 a single efficient sentence that is front-loaded with the core action and resource. It is appropriately sized, though it errs toward under-specification rather than over-verbosity.

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 output schema and no annotations, the description is incomplete for a list tool with pagination and filtering parameters. It does not explain what the returned intents look like, how pagination works, or how to use the status filter, all of which an agent would need to invoke it confidently.

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?

Schema description coverage is 100%, so the schema already documents limit, offset, and status. The description adds no parameter semantics beyond what is in the schema. Per the rubric, a baseline of 3 is appropriate when the schema does the heavy lifting.

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 gives a clear verb ('Retrieve') and resource ('list of intents'), and names the source system Everclear. However, it does not differentiate this tool from the sibling 'get_intent_details', so an agent must infer that this returns a collection rather than details for a single intent.

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?

There is no guidance on when to use this tool versus alternatives like 'get_intent_details' or any other sibling. The description provides no context, prerequisites, or exclusions, leaving usage entirely implied.

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

get_invoice_detailsC

Get detailed information about a specific invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesThe ID of the invoice

TDQS

C2.9/5.0
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. It implies a read operation but says nothing about permissions, whether a missing invoice raises an error or returns null, or what 'detailed' actually includes. For a retrieval tool with zero structured behavioral data, this leaves important gaps.

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?

One short, front-loaded sentence with no filler. It is efficient, though arguably under-specified rather than optimally concise.

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?

The tool is simple (one required param, no nesting, no output schema), so the description need not explain return values. Still, with no annotations and several sibling invoice tools, a sentence on scope or error behavior would meaningfully improve callability.

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?

Schema description coverage is 100% and the single parameter is documented ('The ID of the invoice'), so the schema already does the work. The description adds no format or source hints for the ID, so the baseline 3 is appropriate.

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 states a specific verb (get) and resource (detailed information about a specific invoice), so an agent can tell it retrieves one invoice by ID. However, it does nothing to distinguish itself from siblings like get_invoices or get_invoices_formatted, which is a real ambiguity given four invoice-related tools in the same family.

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?

There is no guidance on when to use this versus get_invoices (list) or get_invoices_formatted. The word 'specific' weakly implies single-invoice lookup, but no alternative or precondition is stated.

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

get_invoice_min_amountsC

Calculate minimum amounts needed to settle an invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesThe ID of the invoice

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral burden. It implies a computation (likely read-only), but does not disclose whether it requires authentication, if it has side effects, or what the output format looks like. For a calculation tool, 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words, efficiently conveying the core action.

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 a tool that performs a calculation, with no annotations, no output schema, and only one parameter, the description is too sparse. It doesn't explain what 'minimum amounts' means, whether it returns a breakdown, or any constraints. More context is needed for correct invocation.

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?

Schema coverage is 100%, so the parameter 'invoiceId' is fully documented in the schema. The description adds no parameter details beyond that, which is appropriate given the high coverage. Baseline 3 applies.

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 states a specific verb (Calculate) and resource (minimum amounts needed to settle an invoice), clearly identifying the tool's function. While it doesn't explicitly differentiate from siblings like get_invoice_details, the purpose is distinct enough to avoid confusion.

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 on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the 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.

get_invoicesC

Retrieve a list of invoices

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return
offsetNoPagination offset
statusNoFilter by invoice status

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read operation but does not state whether it is read-only, how pagination works, whether authentication is required, or what the return format looks like. These gaps are significant 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.

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words and is front-loaded with the core action. It is appropriately concise, though it could potentially include a bit more useful context without becoming verbose.

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, the schema's full coverage of parameters, and the absence of an output schema or annotations, the description is minimally adequate. It could mention that it returns a list of invoices (which it does), but omits details like pagination behavior or read-only nature that would help the agent.

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?

Schema description coverage is 100%, so the schema already documents all three parameters (limit, offset, status). The description adds no additional meaning beyond what the schema provides, which is the baseline for high 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?

States a specific verb (Retrieve) and resource (list of invoices), making the basic operation clear. However, it does not distinguish this tool from siblings like get_invoices_formatted or get_invoice_details, leaving the agent to infer the difference.

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 on when to use this tool versus alternatives is provided. The description does not mention any conditions, prerequisites, or exclusions that would help an agent select it correctly.

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

get_invoices_formattedA

Get invoices from Everclear with enhanced formatting including: - Human-readable chain names and token names - Amounts converted from wei to native token units - Open time calculation (current time - createdAt) - Properly formatted data for analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of invoices to retrieve
statusNoFilter by invoice status

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the transformations applied (chain/token naming, wei→native conversion, open-time derivation). However it says nothing about pagination, default limit behavior, ordering, or auth requirements for a read endpoint.

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?

Front-loaded with the core action in the first line, followed by a scannable bullet list of transformations. No filler sentences, though the bullets slightly restate the notion of "formatting" already implied by the name.

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?

With no output schema, the description usefully enumerates the shape of the returned data (named chains/tokens, converted amounts, derived open time), which is exactly what an agent needs. It is only mildly incomplete in omitting pagination and default retrieval size.

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?

Schema description coverage is 100%, so both limit and status are documented in the schema itself, establishing the baseline of 3. The description adds no additional meaning about parameter semantics, such as allowed status values or default limit.

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?

States a specific verb and resource ("Get invoices from Everclear") and clarifies the variant's distinctive behavior via the "enhanced formatting" list. It implicitly distinguishes itself from the sibling get_invoices, but never names it explicitly, so sibling differentiation is left to inference.

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 enhancement list implies you'd pick this over get_invoices when you want human-readable output, but there is no explicit when-to-use rule, no when-not, and no named alternative. Usage is implied rather than stated.

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

get_liquidity_flowC

Retrieve liquidity flow metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoFilter by specific chain
timeRangeNoTime range for metrics

TDQS

C2.6/5.0
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. It does not disclose whether this is a read-only operation, whether any permissions are required, pagination behavior, or what the output contains. For a retrieval tool with zero annotation coverage, 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?

A single, efficient sentence that is front-loaded and contains no waste. It is appropriately sized, though the content is thin.

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?

A retrieval tool with no annotations and no output schema requires the description to explain what is returned and any behavioral traits. The description is too sparse, omitting return format, scope, and usage context, leaving the agent to guess.

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?

Schema coverage is 100%, so the schema already documents both parameters (chainId and timeRange). The description adds no parameter meaning beyond what the schema provides, which is the baseline expectation.

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

Purpose3/5

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

States a specific verb (retrieve) and resource (liquidity flow metrics), so the purpose is identifiable. However, it does not differentiate from siblings like get_clearing_volume, which also retrieves financial metrics, and 'liquidity flow metrics' is vague about what is actually returned.

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 on when to use this tool versus alternatives such as get_clearing_volume. The description provides no context, prerequisites, or exclusions.

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

get_route_quoteC

Get a quote for a route including fees and limits

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesToken address or identifier
amountYesAmount to transfer
toChainYesDestination chain identifier
fromChainYesSource chain identifier

TDQS

C2.9/5.0
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 behavioral burden. It implies a read-like quote operation but does not clarify that it does not execute the transfer, nor does it disclose authentication, rate limits, or side effects.

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?

A single, efficient sentence that is front-loaded with the core action and supplemental details. It wastes no words, though it could be slightly richer for the complexity.

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?

No output schema exists, and the description does not explain the return format or what the quote includes beyond 'fees and limits'. With four required parameters and no annotations, the definition is too sparse to call it complete.

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?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no additional meaning about parameter formats or constraints, making the baseline score of 3 appropriate.

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?

States a specific verb and resource: 'Get a quote for a route', and specifies the scope includes fees and limits. It is clear what the tool does, though there are no similarly named sibling tools to distinguish it from.

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 on when to use this tool versus alternatives, nor any prerequisites or exclusions. It simply describes the action without context for selection.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.0.0
    • First observedconvert_chain_id_to_name
    • First observedconvert_tickerhash_to_name
    • First observedget_clearing_volume
    • First observedget_intent_details
    • First observedget_intents
    • First observedget_invoice_details
    • First observedget_invoice_min_amounts
    • First observedget_invoices
    • First observedget_invoices_formatted
    • First observedget_liquidity_flow
    • First observedget_route_quote

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions (intents vs invoices vs details vs quotes vs metrics vs conversions). The one real overlap is get_invoices and get_invoices_formatted, which return the same underlying invoice data with different formatting, so an agent could reasonably pick the wrong one. This is a minor boundary issue rather than widespread duplication.

Naming Consistency4/5

Names follow a consistent snake_case get_/convert_ verb_noun pattern (get_intent_details, get_invoice_details, convert_chain_id_to_name). The only slight deviation is get_invoices_formatted using an adjective modifier rather than a plain noun, but the convention is still readable and predictable.

Tool Count5/5

Eleven tools is well within the ideal 3-15 range and each maps to a distinct read/analytics or helper operation. The surface feels scoped to the Everclear domain without obvious filler.

Completeness4/5

The server covers the read/analytics lifecycle well: intents, invoices, invoice details, minimum amounts, route quotes, and liquidity/clearing metrics, plus conversion helpers. There are no write operations (submit intent, settle invoice), but as a monitoring/query surface the coverage is solid with only minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude with Piriod.com API to manage invoicing and payments, enabling listing/creating invoices, searching customers, and viewing payments through natural language.
    -