UniVoucher MCP Server
Supports creating and querying crypto gift cards on BNB Chain (BSC), with access to protocol fees and card management functionality.
Enables querying and creating crypto gift cards on Ethereum and other EVM-compatible blockchains, including checking protocol fees, retrieving card details, and managing decentralized gift card transactions.
Hosts the MCP server repository for bug reporting and feature requests.
Distributes the univoucher-mcp package for installation and deployment.
Enables gift card creation and management on Optimism network with support for protocol fee queries and card operations.
Allows creation and querying of crypto gift cards on Polygon network, with support for native currency and ERC-20 tokens.
Provides community support channel for UniVoucher users.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UniVoucher MCP Serverwhat are the current fees on Ethereum?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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@latestSpecific Version Installation
npm install univoucher-mcp@1.3.4Then 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 all available documentation pages with descriptions |
| Get complete content of a specific documentation page |
| Get complete content of multiple documentation pages at once |
| Query gift cards from the protocol |
| Get details of a specific card |
| Create a new gift card (requires private key) |
| Get current protocol fees |
| Get supported blockchain networks |
| 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
0x0000000000000000000000000000000000000000as token addressERC-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"
Links
Official Website: univoucher.com
Documentation: docs.univoucher.com
API: api.univoucher.com
GitHub: UniVoucher MCP Repository
NPM Package: univoucher-mcp
Support
GitHub Issues: Report bugs or request features
Telegram: UniVoucher Community
Email: support@univoucher.com
License
Business Source License 1.1 - see LICENSE file for details
This project will transition to MIT License on 2035-05-04
Built with β€οΈ for the UniVoucher ecosystem | Visit UniVoucher.com
Available Tools
9 toolscreate_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.
| Name | Required | Description | Default |
|---|---|---|---|
| chainId | Yes | Chain ID where to create the card (e.g., 1 for Ethereum, 56 for BNB Chain, 137 for Polygon) | |
| tokenAddress | Yes | Token address (use 0x0000000000000000000000000000000000000000 for native currency) | |
| tokenAmount | Yes | Amount of tokens to store in the card (as string to handle large numbers) | |
| message | No | Optional message to attach to the card | |
| quantity | No | Number of cards to create (1-100) | |
| orderId | No | Order ID for user reference (auto-generated if not provided) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Specific chain ID (optional - returns all if not specified) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chainId | No | Specific chain ID (optional - returns all if not specified) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | The documentation page to retrieve. Use exact page identifiers from list_doc_pages. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chainId | Yes | Chain ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | Yes | Array of documentation pages to retrieve |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Card ID (use this OR slotId, not both) | |
| slotId | No | Card slot ID (use this OR id, not both) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by documentation category (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Results per page | |
| status | No | Filter by card status | |
| chain | No | Filter by chain ID | |
| creator | No | Filter by creator address | |
| redeemedBy | No | Filter by redeemer address | |
| belongTo | No | Filter cards created by OR redeemed by this address | |
| tokenAddress | No | Filter by token address | |
| sortDirection | No | Sort direction | desc |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v1.0.0- First observed
create_gift_card - First observed
get_chains - First observed
get_current_fees - First observed
get_doc_page - First observed
get_fee_history - First observed
get_multiple_doc_pages - First observed
get_single_card - First observed
list_doc_pages - First observed
query_api_cards
TDQS
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
Doc search, intent & cross-chain swaps, limit orders, portfolio, spot prices, gas & all APIs.
Search VeChain documentation, query on-chain data, and fetch fee suggestions with direct links toβ¦
Pay-per-call (x402/USDC-Base) web + crypto data tools for AI agents: audit, extract, crypto, DeFi.
Query real-time blockchain token data across EVM and Solana networks. Access token balances, transfers, prices, holders, NFT ownership, DEX swaps, and liquidity pools. Supports Ethereum, Base, Arbitrum, BSC, Polygon, Solana, and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityDmaintenanceUniversal 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.1MIT
- AlicenseAqualityCmaintenanceEnables 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.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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 npmMIT