Skip to main content
Glama

AlgoVoi MCP Server

An MCP (Model Context Protocol) server that exposes AlgoVoi's payment infrastructure as tools any MCP client can call — Claude Desktop, Claude Code, Cursor, Windsurf, or any other MCP-compatible assistant.

Ships as two packages:

Package

Install

Command

TypeScript

npm i -g @algovoi/mcp-server

npx -y @algovoi/mcp-server

Python

pip install algovoi-mcp

uvx algovoi-mcp or algovoi-mcp

Both packages now expose all 21 tools (13 Tier 1 + 8 Tier 2 standing-authority recurring tools, both shipped at v1.3.0). Pick whichever runtime your MCP client / deployment stack prefers — same surface, same JSON Schema definitions, same Pydantic-strict / extra-forbid validation.


Tools

Payment tools

#

Tool

What it does

1

create_payment_link

Hosted-checkout URL for a given amount + chain

2

verify_payment

Verify a checkout token (optionally with a tx_id)

3

prepare_extension_payment

In-page wallet-flow params (Algorand / VOI)

4

verify_webhook

HMAC-SHA256 signature check for AlgoVoi webhooks

5

list_networks

Supported chains + asset IDs (offline, no API call)

Protocol challenge tools

#

Tool

What it does

6

generate_mpp_challenge

IETF MPP 402 WWW-Authenticate headers + challenge_id

7

verify_mpp_receipt

Verify an MPP on-chain receipt (direct indexer, no API call)

8

verify_x402_proof

Verify an x402 base64 payment proof (direct indexer)

9

generate_x402_challenge

x402 X-Payment-Required 402 headers + payload

10

generate_ap2_mandate

AP2 v0.1 PaymentMandate for AI agent payment flows

11

verify_ap2_payment

Verify an AP2 mandate payment receipt (direct indexer)

A2A agent tools (new in v1.2.0)

#

Tool

What it does

12

fetch_agent_card

GET {agent_url}/.well-known/agent.json — discover an A2A agent's capabilities and payment requirements before calling it

13

send_a2a_message

POST {agent_url}/message:send — call a payment-gated A2A v1.0 agent; returns the task result on 200, or challenge_headers on 402 so Claude can pay and retry

A2A pay-and-call flow

1. fetch_agent_card("https://agent.example.com")
   → see agent costs $0.01, accepts MPP on Algorand

2. send_a2a_message(agent_url, "What is the price of ALGO?")
   → payment_required: true, challenge_headers: {WWW-Authenticate: ...}

3. generate_mpp_challenge(...)   ← use tool #6
   → user pays on-chain

4. send_a2a_message(agent_url, text, payment_proof="<proof>")
   → task result returned

Supported networks: Algorand, VOI, Hedera, Stellar (USDC on all four + native ALGO/VOI/HBAR/XLM).

Tier 2 — Standing-authority recurring tools (new in v1.3.0 — both TS and Python)

Tier 2 is "customer signs ONCE, AlgoVoi auto-pulls per cycle" — the subscription / agent-bound spending pattern. Each chain uses its native authorisation primitive (no custom escrow contracts on the merchant side):

#

Tool

What it does

14

create_recurring_authority

Open a new standing authority. Returns chain-specific customer_signing_payload for the customer's wallet to sign

15

get_authority

Read current state (status, cycles_pulled, cap_remaining, etc.)

16

list_authorities

List all authorities for this tenant; filter by status / subscription_id

17

confirm_authority

Mark active after on-chain landing (most flows skip this — webhook does it)

18

revoke_authority

Chain-side revocation (customer's wallet signs the revoke tx)

19

pause_authority

Off-chain pause (no chain action)

20

resume_authority

Off-chain resume

21

manual_pull

Tenant-initiated catch-up / proration pull

Per-chain authorisation primitives

Chain

Primitive

Algorand / VOI

SpendingCapVault (6-action atomic group)

Base / Tempo

ERC-20 approve (single tx)

Solana

SPL Token Approve + facilitator delegate

Hedera

HTS AccountAllowanceApproveTransaction

Stellar

Soroban auth_entry (smart-contract authorisation)

Subscription flow

1. create_recurring_authority(subscription_id, chain, customer_wallet,
                              cap_amount_minor, cap_period_seconds,
                              per_cycle_amount_minor)
   → customer_signing_payload returned

2. Hand template to wallet (Pera / Defly / MetaMask / Phantom /
   HashPack / Freighter / etc.)
   → customer signs the chain-native authorisation tx

3. confirm_authority(authority_id, on_chain_address)
   → status: 'pending' → 'active'

4. AlgoVoi cycle reaper auto-pulls per cap_period_seconds.
   Each pull emits subscription.charged or subscription.payment_failed
   webhooks (verify with verify_webhook).

5. Lifecycle: revoke_authority / pause_authority / resume_authority /
   manual_pull as needed.

Per-chain wallet-side integration: see ../Recurr/<chain>/README.md for each chain's customer-side flow.

Supported networks: all 14 (7 mainnets + 7 testnets) — Algorand, VOI, Base, Tempo, Solana, Hedera, Stellar.


Related MCP server: algorand-mcp

Two ways to connect

AlgoVoi Cloud is the control plane for all your integrations — WooCommerce, Zapier, n8n, and MCP all in one dashboard. Point ALGOVOI_API_BASE at https://cloud.algovoi.co.uk and your single algv_... API key covers every integration — no tenant ID or payout addresses needed (they're stored in the dashboard).

{
  "mcpServers": {
    "algovoi": {
      "command": "npx",
      "args": ["-y", "@algovoi/mcp-server"],
      "env": {
        "ALGOVOI_API_KEY": "algv_...",
        "ALGOVOI_API_BASE": "https://cloud.algovoi.co.uk"
      }
    }
  }
}

Every payment Claude creates appears in your Cloud dashboard alongside payments from every other platform. One place to see everything.

Sign up free at dash.algovoi.co.uk.


Option B — AlgoVoi direct

Connect straight to the AlgoVoi API with your algv_... key and tenant ID.

Both packages read the same env vars:

Var

Required

Purpose

ALGOVOI_API_KEY

algv_... API key from the AlgoVoi dashboard

ALGOVOI_TENANT_ID

Tenant UUID from the AlgoVoi dashboard

ALGOVOI_PAYOUT_ALGORAND

✅*

Algorand payout wallet address

ALGOVOI_PAYOUT_VOI

✅*

VOI payout wallet address

ALGOVOI_PAYOUT_HEDERA

✅*

Hedera payout account (e.g. 0.0.123456)

ALGOVOI_PAYOUT_STELLAR

✅*

Stellar payout address (G...)

ALGOVOI_PAYOUT_ADDRESS

Universal fallback if per-chain vars are not set

ALGOVOI_WEBHOOK_SECRET

For verify_webhook

ALGOVOI_API_BASE

Override the AlgoVoi API base URL (default: https://cloud.algovoi.co.uk)

* At least one per-chain address (or ALGOVOI_PAYOUT_ADDRESS as fallback) is required.

Auth is env-var only. Secrets never pass through tool arguments — the MCP client never sees the API key.

Sign up at www.algovoi.co.uk to get your API key and tenant ID.

{
  "mcpServers": {
    "algovoi": {
      "command": "npx",
      "args": ["-y", "@algovoi/mcp-server"],
      "env": {
        "ALGOVOI_API_KEY": "algv_...",
        "ALGOVOI_TENANT_ID": "...",
        "ALGOVOI_PAYOUT_ALGORAND": "<your-algorand-address>",
        "ALGOVOI_PAYOUT_VOI":      "<your-voi-address>",
        "ALGOVOI_PAYOUT_HEDERA":   "0.0.<your-account>",
        "ALGOVOI_PAYOUT_STELLAR":  "G<your-stellar-address>"
      }
    }
  }
}

For the Python package, swap "command": "uvx", "args": ["algovoi-mcp"].

Config file locations:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows)

  • Claude Code: ~/.claude.json

  • Cursor: ~/.cursor/mcp.json


Testing

# TypeScript unit tests (77/77)
cd typescript && npm test

# Python unit tests (85/85)
cd python && pytest

# Stdio integration smoke — boots both servers and confirms all 13 tools list
python smoke_stdio.py

Licensed under the Business Source License 1.1.

Available Tools

11 tools
generate_ap2_mandateA

Generate an AP2 v0.1 PaymentMandate for agent-to-agent payment. Returns the mandate object and its base64 encoding for the AP2-Payment-Required header. After the paying agent submits on-chain, call verify_ap2_payment to confirm.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYesLogical resource or task identifier.
amount_microunitsYesAmount in asset micro-units (1 USDC = 1_000_000).
networkNoNetwork to accept. Defaults to algorand_mainnet.
expires_in_secondsNoMandate TTL in seconds; default 300.
descriptionNoOptional description of the resource or task.

TDQS

A4.4/5.0
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 does well by explaining what the tool returns ('mandate object and its base64 encoding for the AP2-Payment-Required header') and the subsequent workflow. However, it doesn't mention potential errors, rate limits, or authentication requirements, which would be helpful for a payment-related 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/5

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

The description is perfectly concise with just two sentences that each earn their place. The first sentence explains the core functionality and return values, while the second provides crucial workflow guidance. No wasted words.

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

Completeness4/5

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

For a payment mandate generation tool with no annotations and no output schema, the description does well by explaining the return format and workflow. However, it could benefit from mentioning error conditions or what happens if parameters are invalid, especially given the financial context.

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 fully documents all 5 parameters. The description doesn't add any additional parameter semantics beyond what's in the schema. This meets the baseline expectation when the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the specific action ('Generate an AP2 v0.1 PaymentMandate'), the resource ('for agent-to-agent payment'), and distinguishes from siblings by mentioning 'verify_ap2_payment' as a follow-up action. It provides a complete picture of what the tool does beyond just the name.

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 ('for agent-to-agent payment') and when to use an alternative ('After the paying agent submits on-chain, call verify_ap2_payment to confirm'). It provides clear sequencing guidance that helps the agent understand the workflow.

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

generate_mpp_challengeA

Generate an IETF MPP (draft-ryan-httpauth-payment) 402 challenge that an API server can return to gate a resource. Produces the WWW-Authenticate and X-Payment-Required headers plus the challenge_id to echo.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYesLogical resource identifier (e.g. "premium-kb").
amount_microunitsYesAmount in asset micro-units (1 USDC = 1_000_000).
networksNoNetworks to accept. Defaults to ["algorand_mainnet"] if omitted.
expires_in_secondsNoChallenge TTL; default 300.

TDQS

A4/5.0
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. It discloses the output ('WWW-Authenticate and X-Payment-Required headers plus the challenge_id') and the tool's role in payment gating, but lacks details on error handling, rate limits, or authentication requirements, leaving 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.

Conciseness5/5

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

The description is a single, well-structured sentence that efficiently conveys the tool's purpose and outputs without unnecessary details, making it easy to understand at a glance.

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

Completeness4/5

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

Given the complexity of payment challenges and no output schema, the description adequately covers the tool's function and outputs. However, it could be more complete by including information on error cases or the format of the generated challenge, though it's sufficient for basic 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?

Schema description coverage is 100%, so the schema fully documents all parameters. The description does not add any additional meaning beyond the schema, such as explaining parameter interactions or usage examples, meeting the baseline for high coverage.

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 specific action ('Generate an IETF MPP...402 challenge') and the resource ('that an API server can return to gate a resource'), distinguishing it from siblings like 'generate_ap2_mandate' or 'generate_x402_challenge' by specifying the exact protocol and output headers.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('to gate a resource'), but does not explicitly mention when not to use it or name alternatives among siblings, such as 'generate_x402_challenge', which might serve a similar purpose.

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

generate_x402_challengeA

Generate an x402 (spec v1) 402 Payment Required response for gating a resource. Returns the X-Payment-Required header value and full payload. The client must pay on-chain and re-send with X-Payment: , then verify with verify_x402_proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYesResource URL or identifier being gated.
amount_microunitsYesAmount in asset micro-units (1 USDC = 1_000_000).
networkNoNetwork to accept. Defaults to algorand_mainnet.
expires_in_secondsNoChallenge TTL in seconds; default 300.
descriptionNoOptional human-readable description shown in the payment prompt.

TDQS

A4.2/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 full burden. It discloses that the tool generates a response and returns specific outputs (header value and payload), but lacks details on rate limits, authentication needs, error handling, or what happens if parameters are invalid. It adds some context about the payment workflow but misses behavioral traits like performance or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by essential usage steps. Every sentence earns its place by explaining the tool's function and the subsequent workflow without redundancy, making it efficient and well-structured.

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

Completeness4/5

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

Given no annotations and no output schema, the description adequately covers the tool's purpose and usage in context. It explains the return values (header and payload) and ties into sibling tools, but could be more complete by detailing error cases or output format specifics, which are missing from structured fields.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly (e.g., resource as URL/identifier, amount_microunits with USDC example, network with enum and default). The description does not add meaning beyond the schema, such as explaining parameter interactions or use cases, so it meets the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the tool generates an x402 Payment Required response for gating a resource, specifying it returns header value and full payload. It distinguishes from siblings like verify_x402_proof by focusing on generation rather than verification, and uses specific technical terms (e.g., 'spec v1', 'X-Payment-Required header').

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 ('for gating a resource') and provides clear alternatives: after generation, the client must pay and re-send with X-Payment header, then verify with verify_x402_proof. This gives a complete workflow context, distinguishing it from sibling tools like create_payment_link or verify_payment.

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

list_networksA

List the blockchain networks AlgoVoi supports, with asset IDs, decimals, and CAIP-2 identifiers. Offline tool — no API call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
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 successfully communicates that this is a read-only operation (implied by 'List') and explicitly states it's an offline tool with no API call, which is valuable behavioral context about performance and network usage that wouldn't be in annotations anyway. It doesn't mention error conditions or response format details.

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 perfectly concise with two sentences that each earn their place: the first explains exactly what the tool returns, and the second provides crucial behavioral context about it being offline. No wasted words, and the most important information (what it lists) comes first.

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

Completeness4/5

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

For a zero-parameter, read-only information tool with no output schema, the description provides excellent context about what information is returned and the offline nature. It doesn't specify the exact return format (array of objects? structure?) which would be helpful given no output schema, but otherwise gives the agent enough to understand when and how to use it effectively.

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

Parameters4/5

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

The tool has zero parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description appropriately doesn't waste space discussing parameters that don't exist. A baseline of 4 is appropriate for zero-parameter tools when the description focuses on what the tool does rather than parameter documentation.

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 specific action ('List') and resource ('blockchain networks AlgoVoi supports'), with explicit details about what information is included (asset IDs, decimals, CAIP-2 identifiers). It distinguishes itself from sibling tools which are all payment/verification related, making this a pure information retrieval tool.

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

Usage Guidelines4/5

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

The description provides clear context that this is an 'Offline tool — no API call,' which helps the agent understand when to use it versus making network requests. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the distinction from payment/verification tools is obvious from context.

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

prepare_extension_paymentA

Prepare an in-page wallet-extension payment (Algorand / VOI only). Returns the token and chain parameters a frontend can use to ask a browser wallet to sign and submit the transfer, then verify with verify_payment + tx_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
currencyYes
labelYes
networkYes

TDQS

A3.8/5.0
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. It discloses that the tool returns parameters for frontend use and requires a subsequent verification step, which is useful behavioral context. However, it lacks details on permissions, rate limits, error handling, or whether this initiates a payment vs. just preparing 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 front-loaded with the core purpose in the first clause, followed by essential behavioral details. Both sentences earn their place by explaining what the tool does and how its output is used, with zero redundant information.

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?

For a 4-parameter payment tool with no annotations and no output schema, the description is moderately complete. It covers the purpose and high-level workflow but lacks details on parameter meanings, return format, error cases, or security considerations. The mention of verification is helpful but insufficient for full context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'Algorand / VOI only' which partially explains the 'network' enum, but does not clarify the meaning of 'amount', 'currency', or 'label' parameters. The description adds minimal semantic value beyond what the bare schema provides.

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 specific action ('prepare an in-page wallet-extension payment'), the resource (payment parameters), and the supported blockchains (Algorand/VOI only). It distinguishes from sibling tools like 'create_payment_link' by focusing on wallet-extension integration rather than 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 Guidelines4/5

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

The description provides clear context for when to use this tool: for in-page wallet-extension payments on specific blockchains. It explicitly mentions the follow-up action ('verify with verify_payment + tx_id'), but does not specify when NOT to use it or name alternatives among siblings like 'create_payment_link' for different payment methods.

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

verify_ap2_paymentA

Verify an AP2 payment — returns {verified: true} if the on-chain transaction satisfies the mandate's amount and recipient.

ParametersJSON Schema
NameRequiredDescriptionDefault
mandate_idYesmandate_id returned by generate_ap2_mandate.
tx_idYesOn-chain transaction ID submitted by the paying agent.
networkYes

TDQS

A3.9/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 return value format ({verified: true}) and the verification logic (checking amount and recipient against a mandate), but it doesn't mention error conditions, rate limits, authentication needs, or what happens if verification fails. This is a partial disclosure for a verification 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/5

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

The description is a single, well-structured sentence that efficiently conveys the tool's purpose, parameters, and outcome without unnecessary words. It's front-loaded with the main action and result.

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?

For a verification tool with 3 parameters, no annotations, and no output schema, the description provides basic purpose and return format but lacks details on error handling, behavioral constraints, and full parameter guidance. It's minimally adequate but has clear gaps in completeness.

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

Parameters4/5

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

Schema description coverage is 67% (2 out of 3 parameters have descriptions). The description adds context by explaining that 'mandate_id' comes from 'generate_ap2_mandate' and 'tx_id' is submitted by a paying agent, which clarifies semantics beyond the schema. However, it doesn't detail the 'network' parameter beyond the enum values.

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 specific action ('verify an AP2 payment') and the outcome ('returns {verified: true} if the on-chain transaction satisfies the mandate's amount and recipient'). It distinguishes this from siblings like 'verify_payment' or 'verify_mpp_receipt' by specifying AP2 payments and mandate-based verification.

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 needing to check if a transaction meets a mandate's criteria, but it doesn't explicitly state when to use this tool versus alternatives like 'verify_payment' or 'verify_mpp_receipt'. No exclusions or prerequisites are mentioned, leaving some ambiguity about context.

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

verify_mpp_receiptB

Verify an MPP receipt (on-chain transaction ID) for a given resource — returns {verified: true} if the transaction paid the resource's declared amount to the tenant's payout address.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYes
tx_idYes
networkYes

TDQS

B3.2/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 mentions the return value ({verified: true}) but lacks details on error handling, rate limits, authentication requirements, or what happens if verification fails. This is insufficient for a verification tool with no annotation coverage.

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, well-structured sentence that efficiently conveys the tool's purpose, parameters, and output without any wasted words. It is appropriately sized and front-loaded with key information.

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 complexity of verifying on-chain transactions, no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks details on error responses, behavioral traits like idempotency or side effects, and doesn't fully compensate for the missing parameter documentation.

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 0%, but the description adds some semantic context: it explains that 'tx_id' is an 'on-chain transaction ID' and 'resource_id' relates to a 'resource's declared amount' and 'tenant's payout address'. However, it doesn't fully document all three parameters (e.g., 'network' is only implied by context), leaving gaps.

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 specific action ('verify') and resource ('MPP receipt'), specifying it checks if a transaction paid the declared amount to the tenant's payout address. This distinguishes it from sibling tools like 'verify_payment' or 'verify_webhook' by focusing on MPP receipts and on-chain transaction IDs.

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 'verify_payment' or 'verify_ap2_payment', nor does it mention prerequisites or exclusions. It only states what the tool does without contextual usage instructions.

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

verify_paymentA

Verify that a payment for a given checkout token has settled. Returns paid/unpaid status. If tx_id is supplied, verifies that specific on-chain transaction; otherwise uses hosted-checkout status.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesShort token returned by create_payment_link.
tx_idNoOptional on-chain transaction ID to verify against the token.

TDQS

A3.9/5.0
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. It discloses key behavioral traits: it's a read-only verification operation (implied by 'verify', 'returns status'), distinguishes between on-chain and hosted-checkout verification methods, and mentions the return value. However, it lacks details on error handling, rate limits, or authentication needs, which are important for a payment 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/5

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

The description is appropriately sized and front-loaded, with two sentences that efficiently convey purpose, usage, and behavior without redundancy. Every sentence 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.

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 verification tool. It covers the core functionality and parameters but lacks details on output format (beyond 'paid/unpaid status'), error cases, or integration context, which could be important for agent 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%, so the schema already documents both parameters fully. The description adds marginal value by explaining the conditional logic (if tx_id is supplied vs. otherwise) and linking token to create_payment_link, but does not provide additional syntax or format details beyond what the schema offers.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('verify', 'returns') and resources ('payment', 'checkout token', 'paid/unpaid status'). It distinguishes from siblings by focusing on payment verification rather than creation or other verification types, making the 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/5

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

The description provides clear context on when to use the tool (to verify payment settlement) and includes conditional usage based on tx_id presence. However, it does not explicitly state when not to use it or name alternatives among siblings, such as verify_ap2_payment or verify_mpp_receipt, which could be relevant for different payment types.

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

verify_webhookA

Verify an AlgoVoi webhook HMAC-SHA256 signature. Returns {valid: true, payload: } if the signature matches the server's configured webhook secret (ALGOVOI_WEBHOOK_SECRET env var — never passed as a tool argument).

ParametersJSON Schema
NameRequiredDescriptionDefault
raw_bodyYesRaw webhook POST body as a UTF-8 string.
signatureYesBase64 signature from the X-AlgoVoi-Signature header.

TDQS

A4.2/5.0
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 effectively describes the tool's behavior: it verifies a signature using HMAC-SHA256 against a server-configured secret (from an environment variable), returns a structured result with validity and parsed payload, and clarifies that the secret is never passed as a tool argument. This covers key operational aspects without contradictions.

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 highly concise and front-loaded, consisting of a single sentence that efficiently conveys the tool's purpose, behavior, and output. Every part of the sentence earns its place by providing essential information without redundancy or fluff.

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

Completeness4/5

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

Given the tool's complexity (verification with cryptographic operations), no annotations, and no output schema, the description does a good job of explaining the verification process, secret handling, and return structure. However, it could be more complete by detailing error cases or the format of the parsed JSON payload, which is not covered by structured fields.

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 (raw_body and signature) adequately. The description adds minimal value beyond the schema by mentioning the secret is from an environment variable and not a tool argument, but does not provide additional syntax or format details for the parameters. This 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.

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('verify') and resource ('AlgoVoi webhook HMAC-SHA256 signature'), and distinguishes it from siblings by focusing on webhook verification rather than payment or challenge operations. It explicitly mentions what the tool does: verifying a signature against a server secret.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to verify webhook signatures) and implicitly excludes usage for other verification tasks like payments or proofs handled by sibling tools. However, it does not explicitly state when not to use it or name specific alternatives, which prevents a perfect score.

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

verify_x402_proofA

Verify a base64-encoded x402 payment proof against a given network — returns {verified: true} if the proof corresponds to a confirmed on-chain transfer to the tenant's payout address.

ParametersJSON Schema
NameRequiredDescriptionDefault
proofYesBase64 payment payload from X-Payment header.
networkYes

TDQS

A3.7/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 discloses the verification outcome format but lacks critical behavioral details: whether this requires authentication, rate limits, network latency expectations, error conditions, or what happens with unconfirmed transfers. For a verification tool with zero annotation coverage, this is insufficient.

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?

Single sentence efficiently conveys purpose, parameters, and outcome with zero waste. Front-loaded with the core action ('verify'), followed by parameter context and return value. Every word earns its place.

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 2 parameters, no annotations, and no output schema, the description is minimally complete for a verification tool. It covers the basic purpose and return format but lacks behavioral transparency details. The absence of output schema means the description should ideally explain more about response structure beyond {verified: true}.

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

Parameters4/5

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

Schema description coverage is 50% (only 'proof' has a description). The description adds meaningful context: 'proof' is clarified as 'Base64 payment payload from X-Payment header' (matching schema) and 'network' is implicitly explained through the verification context. With 2 parameters and partial schema coverage, the description compensates adequately but doesn't detail network enum values.

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 specific action ('verify'), resource ('base64-encoded x402 payment proof'), and outcome ('returns {verified: true} if the proof corresponds to a confirmed on-chain transfer to the tenant's payout address'). It distinguishes from siblings like 'verify_payment' by specifying the x402 proof type and network verification context.

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 context (verifying payment proofs against networks) but doesn't explicitly state when to use this tool versus alternatives like 'verify_payment' or 'verify_ap2_payment'. It mentions the tenant's payout address but provides no guidance on prerequisites or exclusions.

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. Dates show when Glama detected each change.

  1. 11 tool updatesv0.1.0
    • First observedcreate_payment_link
    • First observedgenerate_ap2_mandate
    • First observedgenerate_mpp_challenge
    • First observedgenerate_x402_challenge
    • First observedlist_networks
    • First observedprepare_extension_payment
    • First observedverify_ap2_payment
    • First observedverify_mpp_receipt
    • First observedverify_payment
    • First observedverify_webhook
    • First observedverify_x402_proof

TDQS

A4/5.0
Disambiguation4/5

Most tools have distinct purposes, such as create_payment_link for hosted checkout and generate_ap2_mandate for agent-to-agent payments. However, the three challenge-generation tools (generate_ap2_mandate, generate_mpp_challenge, generate_x402_challenge) could be confusing due to overlapping concepts of payment challenges, though their specific protocols help differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as create_payment_link, verify_payment, and list_networks. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 11 tools, the server is well-scoped for handling blockchain payments and verifications. Each tool serves a clear function, such as payment creation, verification, and network listing, without feeling excessive or insufficient for the domain of payment processing and validation.

Completeness5/5

The tool set provides comprehensive coverage for the payment domain, including creation (e.g., create_payment_link), verification (e.g., verify_payment, verify_ap2_payment), and support tools (e.g., list_networks, verify_webhook). There are no obvious gaps, as it covers multiple payment protocols and lifecycle stages from initiation to confirmation.

Maintenance

ActivityNo data
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A generic MCP + REST payments gateway enabling agents to charge and accept payments without holding spending keys, supporting direct payments via x402 USDC and top-ups with XMR/ZEC.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server providing 50+ tools for Algorand blockchain development, including account management, asset operations, smart contracts, API integration, swap functionality, and advanced transaction capabilities.
    25
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Keyless crypto payments for AI agents. One MCP call turns any wallet address into a non-custodial crypto payment link or tip jar, no API key and no account, with funds settling straight to your wallet at a 0% platform fee (USDC/USDT, BTC, LTC, DASH, DOGE, ZCASH).
    3
    67
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Non-custodial payment engine for AI agents supporting BTC, ETH, USDT, USDC, XRP, XMR, and ZEC. Exposes wallet, invoice, and payment tools over MCP with per-agent spend limits, plus x402 pay-per-call support.
    76
    Business Source 1.1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chopmob-cloud/AlgoVoi-Platform-Adapters'

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