Skip to main content
Glama

UniVoucher MCP Server

Official Model Context Protocol (MCP) server for UniVoucher.com - the world's first decentralized crypto gift card protocol that allows users to create and redeem crypto gift cards across multiple blockchains.

What is UniVoucher?

UniVoucher is the world's first decentralized tangible crypto gift card protocol that allows users to create and redeem crypto gift cards across multiple blockchains including Ethereum, Polygon, BSC, and more.

Related MCP server: PortalMCP

πŸš€ Quick Installation

Note: No manual installation needed! Just add the configuration below to your MCP client and it will automatically download and run when needed.

MCP Configuration

Add this to your MCP configuration file (mcp.json or equivalent):

Basic Configuration (Read-only access)

{
  "mcpServers": {
    "univoucher": {
      "command": "npx",
      "args": ["-y", "univoucher-mcp@latest"],
      "env": {}
    }
  }
}

With Wallet Private Key (Full access including card creation)

{
  "mcpServers": {
    "univoucher": {
      "command": "npx",
      "args": ["-y", "univoucher-mcp@latest"],
      "env": {
        "WALLET_PRIVATE_KEY": "your_ethereum_wallet_private_key_here"
      }
    }
  }
}

⚠️ Security Note: Never commit your wallet private key to version control. Use environment variables or secure configuration management.

πŸ“ Note: The private key is optional. You can provide your standard Ethereum crypto wallet private key with or without the 0x prefix.

Supported MCP Clients

  • Cursor: Add to your Cursor MCP settings

  • Claude Desktop: Add to your Claude Desktop configuration

  • Any MCP-compatible client: Use the configuration above

Alternative Installation Methods

Global Installation

npm install -g univoucher-mcp@latest

Specific Version Installation

npm install univoucher-mcp@1.3.4

Then use univoucher-mcp directly in your MCP configuration.

Features

πŸ“š Documentation Access

  • Complete UniVoucher documentation pages delivered in full

  • Browse and discover all available documentation

  • Get multiple related pages at once for comprehensive information

  • No more search guessing - get the exact page you need

πŸ“Š Live API Access

  • Query gift cards with advanced filtering

  • Get current fees across all supported chains

  • Check supported blockchain networks

  • Retrieve real-time protocol statistics

πŸ› οΈ Available Tools

Tool

Description

list_doc_pages

List all available documentation pages with descriptions

get_doc_page

Get complete content of a specific documentation page

get_multiple_doc_pages

Get complete content of multiple documentation pages at once

query_api_cards

Query gift cards from the protocol

get_single_card

Get details of a specific card

create_gift_card

Create a new gift card (requires private key)

get_current_fees

Get current protocol fees

get_chains

Get supported blockchain networks

get_fee_history

Get historical fee data

Card Creation Feature

Prerequisites

  • Wallet Private Key: Your standard Ethereum crypto wallet private key (with or without 0x prefix, optional)

  • Supported Networks: Ethereum (1), Base (8453), BNB Chain (56), Polygon (137), Arbitrum (42161), Optimism (10), Avalanche (43114)

  • Token Support: Any ERC-20 token or native currency

Security

  • Wallet private keys are only used locally and never stored

  • Keys are passed via environment variables for security

  • All transactions are signed locally and sent to UniVoucher API

  • Private key is optional - you can use the MCP server for read-only operations without providing a private key

  • Uses Direct Response Mode for immediate card details without callbacks

Supported Tokens

  • Native Currency: Use 0x0000000000000000000000000000000000000000 as token address

  • ERC-20 Tokens: Use the token's contract address

  • Amount Format: Use string format for large numbers (e.g., "1000000000000000000" for 1 ETH)

  • Bulk Creation: Create up to 100 cards in a single transaction

Example Usage

Once configured, you can ask your AI assistant:

  • "Show me the complete UniVoucher integration guide for developers"

  • "Get me the full documentation on creating gift cards"

  • "What are the current fees on Ethereum?"

  • "List all available UniVoucher documentation pages"

  • "Show me the technical documentation on how UniVoucher works"

  • "Get the API reference and security documentation"

  • "How many cards are in the UniVoucher protocol?"

  • "Create a new gift card on Ethereum with 0.1 ETH"

  • "Create a gift card on Polygon with 100 USDC"

  • "Create 5 gift cards on Base with 50 USDC each"

Support

License

Business Source License 1.1 - see LICENSE file for details

This project will transition to MIT License on 2035-05-04


MCP Badge

Built with ❀️ for the UniVoucher ecosystem | Visit UniVoucher.com

Available Tools

9 tools
create_gift_cardB

Create a new UniVoucher gift card using your standard Ethereum crypto wallet private key. The private key is optional and can be set via WALLET_PRIVATE_KEY environment variable (with or without 0x prefix). Uses Direct Response Mode for immediate card details.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesChain ID where to create the card (e.g., 1 for Ethereum, 56 for BNB Chain, 137 for Polygon)
tokenAddressYesToken address (use 0x0000000000000000000000000000000000000000 for native currency)
tokenAmountYesAmount of tokens to store in the card (as string to handle large numbers)
messageNoOptional message to attach to the card
quantityNoNumber of cards to create (1-100)
orderIdNoOrder ID for user reference (auto-generated if not provided)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses key behavioral traits: requires a private key (via environment variable or optional param), uses Direct Response Mode for immediate output, and creates gift cards. However, it lacks details on permissions, rate limits, error handling, or what 'immediate card details' entails.

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 front-loaded with the core purpose and key behavioral details (private key, Direct Response Mode). It's concise with two sentences, though the second sentence could be slightly tightened (e.g., 'Uses Direct Response Mode to return card details immediately').

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 no annotations and no output schema, the description is moderately complete for a 6-param tool. It covers the action, key requirements, and output behavior, but lacks details on response format, error cases, or integration context (e.g., what UniVoucher is).

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 fully documents all parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., doesn't explain tokenAmount formatting or chainId implications). Baseline 3 is appropriate as 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 clearly states the action ('Create a new UniVoucher gift card') and specifies the resource ('gift card'), distinguishing it from sibling tools like get_single_card or query_api_cards. However, it doesn't explicitly differentiate from other potential creation tools (none listed), so it's not a perfect 5.

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 when creating gift cards with a crypto wallet, mentioning Direct Response Mode for immediate details. It doesn't provide explicit when-not-to-use guidance or alternatives (e.g., vs. other creation methods), leaving some ambiguity.

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

get_chainsC

Get information about supported chains

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoSpecific chain ID (optional - returns all if not specified)

TDQS

C2.9/5.0
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 but only states what the tool does without detailing traits like rate limits, authentication needs, or response format. It lacks information on whether this is a read-only operation, its performance characteristics, or error handling.

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 efficiently conveys the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'information about supported chains' includes, such as data format or fields returned, leaving gaps in understanding the tool's behavior and output.

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 has 100% description coverage, with the parameter 'chain' documented as optional for retrieving all chains. The description doesn't add any meaning beyond this, such as explaining what 'supported chains' entails or providing examples, so it meets the baseline for high schema 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 with a specific verb ('Get') and resource ('information about supported chains'), making it easy to understand what the tool does. However, it doesn't differentiate itself from sibling tools like 'get_current_fees' or 'get_fee_history' that also retrieve information, which prevents a perfect score.

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. There's no mention of context, prerequisites, or comparisons to sibling tools such as 'get_current_fees' or 'query_api_cards', leaving the agent without usage instructions.

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

get_current_feesC

Get current fee percentages for chains

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdNoSpecific chain ID (optional - returns all if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' data (implying read-only), but doesn't mention authentication requirements, rate limits, response format, or whether it's a safe operation. The description adds minimal behavioral context beyond the basic action.

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 extremely concise with a single sentence that directly states the tool's purpose. There's zero wasted language, and it's appropriately sized for a simple retrieval tool with one optional parameter.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'fee percentages' means, how results are structured, whether it returns a single value or array, or any error conditions. The description should provide more context given the lack of structured metadata.

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 schema description coverage is 100%, with the single parameter 'chainId' well-documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides, such as explaining what 'fee percentages' represent or how they're structured. Baseline 3 is appropriate when 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 clearly states the tool's purpose with a specific verb ('Get') and resource ('current fee percentages for chains'). It distinguishes what information is retrieved but doesn't differentiate from sibling tools like 'get_fee_history' which might provide historical data versus current 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_fee_history' for historical data or 'get_chains' for chain information, nor does it specify prerequisites or exclusions for usage.

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

get_doc_pageB

Get the complete content of a specific UniVoucher documentation page. Much more effective than searching - returns the entire page content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesThe documentation page to retrieve. Use exact page identifiers from list_doc_pages.

TDQS

B3.2/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. It mentions that the tool 'returns the entire page content,' which gives some insight into output behavior, but lacks details on error handling, rate limits, authentication needs, or performance characteristics. The description does not contradict any annotations.

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 concise and front-loaded with the core purpose in the first sentence. The second sentence adds comparative value ('much more effective than searching') but could be slightly more specific. Overall, it is efficient with no wasted words.

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 simple input schema (one parameter with full coverage) and no output schema, the description adequately covers the tool's basic function. However, it lacks details on output format (e.g., structure of returned content) and error cases, which would be helpful for an AI agent to use the tool 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 has 100% description coverage, with the 'page' parameter well-documented via an enum and description. The description adds minimal value beyond the schema by implying the tool retrieves 'complete content' for a 'specific' page, but does not provide additional semantic context or usage examples for the parameter.

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: 'Get the complete content of a specific UniVoucher documentation page.' It specifies the verb ('Get'), resource ('documentation page'), and scope ('complete content'), but does not explicitly differentiate it from its sibling 'list_doc_pages' or 'get_multiple_doc_pages' beyond mentioning it's 'much more effective than searching.'

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 provides implied usage guidance by stating it's 'much more effective than searching' and referencing 'list_doc_pages' for page identifiers, but it does not explicitly state when to use this tool versus alternatives like 'get_multiple_doc_pages' or 'list_doc_pages.' The mention of 'searching' is vague and not tied to a specific sibling tool.

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

get_fee_historyC

Get fee update history for a specific chain

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesChain ID

TDQS

C2.9/5.0
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 states a read operation ('Get'), implying it's likely non-destructive, but doesn't specify permissions, rate limits, response format, or error handling. This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

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, direct sentence that efficiently conveys the core purpose without any redundant or unnecessary information. It is front-loaded and appropriately sized for the tool's complexity, earning full marks for 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?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the fee history includes (e.g., timestamps, values), how results are returned, or any behavioral traits like pagination. For a tool that likely returns historical data, more context is needed to guide effective use.

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 schema description coverage is 100%, with the 'chainId' parameter fully documented in the schema. The description adds no additional meaning or context beyond what's in the schema, such as examples of chain IDs or how the history is structured. Baseline 3 is appropriate as the schema handles the parameter documentation adequately.

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 action ('Get') and resource ('fee update history for a specific chain'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_current_fees' or 'get_chains', which could provide similar or related fee information, so it doesn't reach the highest score.

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_current_fees' or 'get_chains'. It lacks context about prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving the agent with minimal usage direction.

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

get_multiple_doc_pagesB

Get the complete content of multiple UniVoucher documentation pages at once. Useful when you need comprehensive information across multiple related topics.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesYesArray of documentation pages to retrieve

TDQS

B3.3/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 full burden. It mentions retrieving 'complete content' and batch capability, but lacks details on permissions, rate limits, response format, or error handling. For a tool with no annotation coverage, this is insufficient 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?

The description is concise and front-loaded, with two sentences that efficiently convey purpose and usage. Every sentence adds value without redundancy, making it easy to parse.

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 (batch retrieval), no annotations, and no output schema, the description is incomplete. It covers basic purpose and usage but lacks details on behavior, response format, and error handling, which are crucial for effective tool 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 description coverage is 100%, with the parameter 'pages' well-documented in the schema. The description adds minimal value beyond the schema by implying batch retrieval of documentation content, but does not provide additional semantic context about parameter usage or constraints.

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: 'Get the complete content of multiple UniVoucher documentation pages at once.' It specifies the verb ('Get'), resource ('documentation pages'), and scope ('multiple'), but does not explicitly differentiate from its sibling 'get_doc_page' beyond implying batch capability.

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 provides implied usage guidance: 'Useful when you need comprehensive information across multiple related topics.' This suggests a batch use case but does not explicitly state when to use this tool versus 'get_doc_page' or other siblings, nor does it mention exclusions or prerequisites.

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

get_single_cardA

Get details of a single card by ID (integer) or slot ID (string). Provide either id OR slotId, not both.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoCard ID (use this OR slotId, not both)
slotIdNoCard slot ID (use this OR id, not both)

TDQS

A4.1/5.0
Behavior3/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 discloses the lookup behavior (by ID or slot ID) and the mutual exclusivity of parameters, which is useful. However, it doesn't mention error handling (e.g., what happens if the card isn't found), response format, or any rate limits, leaving gaps in behavioral context.

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 two sentences, front-loaded with the core purpose, and every word earns its place. It's efficient with zero waste, making it easy for an agent to parse 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 low complexity (simple lookup with 2 parameters) and no output schema, the description is adequate but incomplete. It covers the purpose and parameter usage well, but lacks details on return values, error cases, or any side effects, which could hinder the agent's ability to handle edge cases 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?

Schema description coverage is 100%, so the schema already documents both parameters and their types. The description adds value by clarifying the 'either/or' relationship and specifying that 'id' is an integer and 'slotId' is a string, but this is largely redundant with the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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 verb ('Get details') and resource ('single card'), specifies the lookup methods ('by ID (integer) or slot ID (string)'), and distinguishes this from siblings like 'get_chains' or 'query_api_cards' which handle different resources. It's specific and unambiguous.

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 explicitly states when to use this tool ('Get details of a single card') and provides clear exclusion rules ('Provide either id OR slotId, not both'). This helps the agent choose between parameters and avoid alternatives like 'get_multiple_doc_pages' for bulk operations.

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

list_doc_pagesC

List all available UniVoucher documentation pages with their descriptions to help find the right content

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by documentation category (optional)

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. It states that the tool lists pages with descriptions, which implies a read-only operation, but doesn't cover aspects like pagination, rate limits, authentication needs, or what 'available' means (e.g., access permissions). 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.

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose ('List all available UniVoucher documentation pages with their descriptions') and includes a brief benefit clause ('to help find the right content'). It avoids redundancy and is appropriately sized for a simple tool, though the benefit clause could be considered slightly extraneous.

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 low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits (e.g., how results are returned) and usage guidelines relative to siblings. Without an output schema, it doesn't explain return values, which is a gap for 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 schema description coverage is 100%, with the single parameter 'category' fully documented in the schema (including its optional nature, type, description, and enum values). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.

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 ('List') and resource ('all available UniVoucher documentation pages with their descriptions'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from its sibling 'get_doc_page' or 'get_multiple_doc_pages', which appear to be related documentation retrieval tools, so it misses full sibling differentiation.

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_doc_page' or 'get_multiple_doc_pages'. It mentions 'to help find the right content', which implies a discovery context, but lacks explicit when/when-not instructions or named alternatives, leaving usage ambiguous.

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

query_api_cardsC

Query UniVoucher cards with various filters

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page
statusNoFilter by card status
chainNoFilter by chain ID
creatorNoFilter by creator address
redeemedByNoFilter by redeemer address
belongToNoFilter cards created by OR redeemed by this address
tokenAddressNoFilter by token address
sortDirectionNoSort directiondesc

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 full burden. It mentions filtering but lacks details on behavior: e.g., whether it's read-only, pagination handling, rate limits, authentication needs, or error responses. This is inadequate for a query tool with multiple parameters.

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, efficient sentence with no wasted words, making it easy to parse. It's appropriately sized and front-loaded with 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 the tool's complexity (9 parameters, no output schema, no annotations), the description is insufficient. It doesn't explain return values, error handling, or behavioral traits, leaving significant gaps for an AI agent to understand how to use it 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?

Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds minimal value by hinting at 'various filters' but doesn't elaborate on parameter interactions or semantics beyond what the schema provides, meeting 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?

The description clearly states the verb ('query') and resource ('UniVoucher cards') with scope ('with various filters'), making the purpose evident. However, it doesn't explicitly differentiate this tool from its sibling 'get_single_card', which appears to fetch a specific card rather than a filtered list, so it misses full sibling distinction.

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 like 'get_single_card' or other sibling tools. The description mentions filters but doesn't specify contexts, prerequisites, or exclusions, leaving usage ambiguous.

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. 9 tool updatesv1.0.0
    • First observedcreate_gift_card
    • First observedget_chains
    • First observedget_current_fees
    • First observedget_doc_page
    • First observedget_fee_history
    • First observedget_multiple_doc_pages
    • First observedget_single_card
    • First observedlist_doc_pages
    • First observedquery_api_cards

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes, such as create_gift_card for creation, get_single_card for retrieval, and query_api_cards for filtering. However, get_doc_page and get_multiple_doc_pages overlap slightly in functionality, as both retrieve documentation content, which could cause minor confusion in selection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as create_gift_card, get_chains, and list_doc_pages. This uniformity makes the tool set predictable and easy to understand for an agent.

Tool Count5/5

With 9 tools, the count is well-scoped for a UniVoucher server covering gift card operations, chain information, fees, and documentation. Each tool appears to serve a specific function without redundancy, fitting within the typical 3-15 range for a focused domain.

Completeness3/5

The tool surface covers key areas like gift card creation, retrieval, and querying, as well as chain and fee information, but lacks update or delete operations for gift cards, which are common in CRUD workflows. This gap could lead to agent failures when full lifecycle management is needed.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with 0G.AI decentralized infrastructure including documentation access, storage operations (file upload/download, key-value store), and AI service discovery on the 0G Compute Network with TEE verification and pricing information.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Universal AI gateway that enables interaction with Ethereum blockchain through natural language across multiple AI platforms (Claude, ChatGPT, Gemini, etc.). Supports contract deployment, token operations, NFT minting, DeFi operations, and general blockchain transactions.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to fetch live multi-chain portfolio, token info, gas prices, and token prices across Ethereum, Base, Polygon, Arbitrum, and Optimism with a single call. No API key required.
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query on-chain data across EVM chains like Base, Optimism, Avalanche, Celo, and Arbitrum, including balances, transactions, gas, and smart contract interactions.
    24 npm
    MIT