unified-pay-cli
Server Quality Checklist
Latest release: v0.1.4
- Disambiguation4/5
Most tools are clearly distinct, but create_payment_link and create_itemized_invoice both generate hosted checkout URLs, potentially causing confusion. Other tools (fees, webhooks, refunds, analytics) have clear boundaries.
Naming Consistency5/5All tools follow a consistent verb_noun snake_case pattern (create_, compare_, trigger_, verify_, get_). The naming is uniform and predictable across the entire set.
Tool Count5/5Seven tools is a well-scoped size for a payment CLI, covering common operations without overwhelming the user. Each tool addresses a distinct payment workflow, making the count appropriate.
Completeness3/5Core operations like creating payments, refunds, and webhook verification are covered, but there are notable gaps such as no way to retrieve a payment by ID or list past payments. This forces agents to rely on analytics for status, which is a workaround rather than a direct access pattern.
Average 4/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 21 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
Tools from this server were used 2 times in the last 30 days.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral transparency. It states the tool returns aggregates and settlement ratios, implying a read-only operation, but it does not explicitly mention safety, side effects, or any requirements. It adds some context (real-time, recent histories) but lacks explicit safety guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core function, and contains no redundant information. Every phrase adds value, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-oriented analytics tool with only 2 parameters and no output schema, the description covers the purpose, key inputs (implicitly), and output. It lacks explicit caveats or limitations but is otherwise sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters (provider and limit), including clear descriptions and an enum for provider. The tool description adds minimal extra meaning beyond the schema, mostly integrating the parameters into the overall narrative. Per the rubric, with high schema coverage, the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (aggregates) and the resource (transaction performance metrics across payment gateway accounts), with specific metrics listed. This distinguishes it from sibling tools like compare_gateway_fees (which focuses on fee comparison) and create_payment_link (which creates links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool over alternatives. It does not mention any exclusions, prerequisites, or alternative tools. The intended use case is only implied by the function name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing side effects. It correctly states that it constructs a checkout link and returns a URL and receipt breakdown, but it does not disclose whether the customer is charged immediately, whether an email is sent (though the schema mentions notification dispatch under customerEmail), or whether this is an idempotent creation. These are meaningful behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no fluff. The first sentence packs the essential capabilities (multi-item, line descriptions, pricing, quantities, tax, billing details) and the second states the return value. Every phrase contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, one nested object, no output schema) and no annotations, the description covers the core purpose and return output well. It does not explain provider smart routing, default currency behavior, or payment flow timing, but these are partially covered by the schema. Overall, it gives a solid contextual picture for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with thorough descriptions for items, currency, provider, and customerEmail. The tool description adds no new parameter-level meaning beyond the schema's already detailed explanations, so the baseline score of 3 is appropriate. The mention of 'total tax calculations' is a computed feature, not a parameter, and does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Constructs') and resource ('multi-item commercial invoice checkout link'), and immediately distinguishes itself from the generic sibling 'create_payment_link' by emphasizing itemized line items, per-unit pricing, and tax calculations. This makes the tool's unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its itemized invoice focus, but it never explicitly states when to prefer this over 'create_payment_link' or other siblings. It lacks phrases like 'use this when' or 'for simple payments, use create_payment_link instead.' The usage context is clear but not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It clarifies the return value as a JSON boolean to ensure 'whether the signature matches the payload digest'. It does not describe side-effect behavior (or lack thereof), error handling for malformed signatures, or whether the check is performed locally without network calls, leaving some burden unmet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core operation and result. Every word contributes useful signal; there is no filler, repetition, or boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters thoroughly described in the schema and the description stating the return behavior, the essentials for selecting and invoking the tool are present. It loses only a point because explicit edgecase behavior—such as invalid signature formats or missing provider keys—is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all four parameters with detailed descriptions, including provider-specific signature formats and raw payload requirements, so the description need not repeat this. The overall description reuses the notion of 'payload digest' but does not substantially add to schema-level parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the operation with a specific verb—"Validates"—and a well-defined resource: the cryptographic HMAC-SHA256 signature of an incoming webhook payload. It states the comparison against a shared secret and the JSON boolean result, making it unambiguous and distinct from webhook-creation or analytics sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys useful context: this is for verifying an incoming webhook's signature before trusting the payload. It does not, however, explicitly state when not to use it, mention alternatives like trigger_mock_webhook for testing, or give guidance on prerequisite steps like retrieving the correct provider secret.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the resource is a hosted checkout URL, describes customer prefill metadata, link expiry, routing, and explicitly lists the JSON return fields. While it does not mention authorization requirements or whether the customer is charged immediately, it provides substantial behavioral context beyond a simple action statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, with the primary purpose front-loaded in the first sentence. The second sentence efficiently summarizes capabilities without redundancy, and the third sentence covers return values. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, multiple providers, no output schema), the description is largely complete: it names providers, key capabilities, and return fields. However, it omits detail about error conditions, authorization prerequisites, or whether the payment is captured immediately upon link generation, which would make it fully self-sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes parameter-related features like custom amounts, currency formatting, customer prefill metadata, and expiry timeouts, but it does not add meaning beyond what the schema already documents for each individual parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: "Generates a secure hosted payment checkout URL across Stripe, Razorpay, or LemonSqueezy." It clearly distinguishes this tool from siblings like create_refund and create_itemized_invoice by focusing exclusively on payment link generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied through the description of generating checkout URLs and supporting multi-gateway routing, but there is no explicit guidance about when to choose this tool over alternatives such as create_itemized_invoice or create_refund. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return shape (JSON with refund ID, status, amount, currency) and mentions 'immediate' and 'full or partial'. However, it omits important behavioral context such as irreversibility, failure modes, provider-specific behavior, or required permissions, which is expected for a financial mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and scope. Every word earns its place with no redundancy, making it a model of concise documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, full/partial refund capability, supported providers (implied), and return object. Without an output schema, the return description helps. It lacks some edge-case context like error handling or idempotency, but for a refund tool with a rich schema, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all three parameters, including examples and enum values. The description adds no further parameter-level detail beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Executes') and names the resource ('previously settled payment or charge transaction') with a clear action (monetary refund). It also mentions full or partial scope, distinguishing it from sibling tools like create_payment_link or get_payment_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use: to refund a previously settled payment, with immediate execution and full/partial options. It doesn't explicitly name alternatives or exclusions, but none of the sibling tools compete with this functionality, so the implied usage context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It covers dispatching, signing, and returning response details, but omits potential side effects like network failure handling or external endpoint impact. The main actions are clear, but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, and flows logically from action to use case to output. No redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does, its return value, and its intended use. It doesn't cover edge cases like error handling or rate limits, but for a mock testing tool, the provided information is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions for all five parameters are detailed and self-explanatory, covering format and defaults. The tool description adds no extra parameter info, but the schema already provides high coverage, so a baseline of 3 is exceeded due to quality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: constructing and dispatching a signed webhook event to a target endpoint for testing. This distinguishes it from sibling tools like create_payment_link or verify_webhook_signature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly notes usefulness for verifying webhook parsing and integration pipelines without live charges, providing clear context. However, it doesn't explicitly contrast with alternatives, though the 'without live charges' implies a testing scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The tool is read-only, and the description emphasizes evaluation and comparison with no side effects. However, it does not explicitly state that it makes no modifications or external calls, which could be worth mentioning for full transparency. The absence of side-effect annotations is offset by the clear intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, composed of two sentences that cover the input, the process, and the output. No redundant or extraneous information is included. It is well-structured and easy to read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains the tool's purpose, inputs (amount and currency), and outputs (itemized fee breakdown and recommended provider). Since there is no output schema, the description adequately covers what the caller should expect. No critical information about the tool's behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions for both parameters are highly detailed, providing units (minor currency units), examples, and valid currency codes. The tool description adds no extra parameter information but relies on the schema, which is already comprehensive. Since schema coverage is 100%, a baseline of 3 is appropriate, but the schema's clarity raises the score to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: comparing transaction fees across Stripe, Razorpay, and LemonSqueezy for a given amount and currency. It distinguishes itself from sibling tools that handle payment link creation, webhooks, analytics, itemized invoices, and refunds, making its specific purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool—whenever a fee comparison across these gateways is needed. It does not explicitly contrast with alternatives, but the distinct purpose and the mention of the recommended lowest-cost provider make the usage context clear. A brief note on when not to use it would have earned a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: