Skip to main content
Glama
spreedly

Spreedly MCP Server

Official
by spreedly

Spreedly MCP Server

npm version CI node license

A Model Context Protocol (MCP) server that provides AI assistants with direct access to the Spreedly payments API. Enables LLMs to manage gateways, process transactions, tokenize payment methods, and more -- all through structured, validated tool calls.

Published on npm as @spreedly/spreedly-mcp.

Quick Start

Add this to your MCP client configuration:

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "spreedly": {
      "command": "npx",
      "args": ["-y", "@spreedly/spreedly-mcp@latest"],
      "env": {
        "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
        "SPREEDLY_ACCESS_SECRET": "<your-access-secret>"
      }
    }
  }
}

Cursor

Edit .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "spreedly": {
      "command": "npx",
      "args": ["-y", "@spreedly/spreedly-mcp@latest"],
      "env": {
        "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
        "SPREEDLY_ACCESS_SECRET": "<your-access-secret>"
      }
    }
  }
}

VS Code

Edit .vscode/mcp.json:

{
  "servers": {
    "spreedly": {
      "command": "npx",
      "args": ["-y", "@spreedly/spreedly-mcp@latest"],
      "env": {
        "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
        "SPREEDLY_ACCESS_SECRET": "<your-access-secret>"
      }
    }
  }
}

Related MCP server: PayBridgeNP MCP Server

Getting Your Credentials

  1. Log into the Spreedly Dashboard

  2. Your Environment Key is shown on your environment's settings page

  3. Create or find an Access Secret under your environment's access secrets

For details, see Spreedly Credentials Documentation.

Tool Access Policy

The server controls which tools are available through three environment variable flags. All default to false -- only read-only tools are available out of the box. Enable the categories you need:

Variable

Default

What it enables

PAYMENT_METHOD_TOKENIZATION_ENABLED

false

Dedicated payment method tokenization tools that send raw PAN/CVV to Spreedly (create, recache)

TRANSACTION_INITIATION_ENABLED

false

Authorizing, purchasing, capturing, voiding, refunding, and other third-party actions. See Cardholder Data Flow -- authorize, purchase, and confirm also accept optional pass-in PAN/CVV data.

ADMINISTRATIVE_ENABLED

false

Creating/updating gateways, environments, certificates, merchant profiles, SCA providers, sub-merchants

Read-only / monitoring (default -- no flags needed):

"env": {
  "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
  "SPREEDLY_ACCESS_SECRET": "<your-access-secret>"
}

Only list/show tools are available. Good for dashboards, reporting, and investigating transactions.

Transaction processing (recommended for AI-assisted payments):

"env": {
  "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
  "SPREEDLY_ACCESS_SECRET": "<your-access-secret>",
  "TRANSACTION_INITIATION_ENABLED": "true"
}

Enables authorizing, capturing, voiding, and refunding against existing gateways. Does not allow creating gateways or using dedicated card tokenization tools. Note: authorize, purchase, and confirm accept optional pass-in PAN/CVV data if the merchant's Spreedly environment permits it -- see Cardholder Data Flow.

Administrative setup:

"env": {
  "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
  "SPREEDLY_ACCESS_SECRET": "<your-access-secret>",
  "ADMINISTRATIVE_ENABLED": "true"
}

For initial environment setup -- creating gateways, merchant profiles, SCA providers. Disable once configuration is complete.

Full access:

"env": {
  "SPREEDLY_ENVIRONMENT_KEY": "<your-environment-key>",
  "SPREEDLY_ACCESS_SECRET": "<your-access-secret>",
  "PAYMENT_METHOD_TOKENIZATION_ENABLED": "true",
  "TRANSACTION_INITIATION_ENABLED": "true",
  "ADMINISTRATIVE_ENABLED": "true"
}

All tool categories enabled. Use only in controlled environments or during initial setup.

Cardholder Data Flow

Five tools can accept raw cardholder data (PAN, CVV). They are controlled by two different flags:

Flag

Tools

CHD Fields

PAYMENT_METHOD_TOKENIZATION_ENABLED

spreedly_payment_method_create, spreedly_payment_method_recache

credit_card (full PAN, CVV), bank_account, apple_pay, google_pay

TRANSACTION_INITIATION_ENABLED

spreedly_gateway_authorize, spreedly_gateway_purchase, spreedly_transaction_confirm

credit_card (optional pass-in PAN/CVV)

The create and recache tools are dedicated tokenization tools -- their sole purpose is to vault raw card data in Spreedly. They are gated by PAYMENT_METHOD_TOKENIZATION_ENABLED.

The authorize, purchase, and confirm tools primarily operate on existing payment_method_token references. They also accept an optional credit_card field for pass-in payment method tokenization, which tokenizes a new card inline as part of the transaction. Whether pass-in succeeds depends on the merchant's Spreedly environment settings, not the MCP server flag. These tools are gated by TRANSACTION_INITIATION_ENABLED.

PCI scoping note: Disabling only PAYMENT_METHOD_TOKENIZATION_ENABLED still allows pass-in PAN/CVV data through transaction tools when TRANSACTION_INITIATION_ENABLED is true. To exclude all raw cardholder data flows, either disable both flags, or enable the "iFrame or Spreedly Express only" setting in your Spreedly environment -- this prevents direct API submission of payment methods, blocking pass-in tokenization on transaction endpoints regardless of MCP flag configuration.

Available Tools

Gateways (12 tools)

Tool

Description

spreedly_gateway_create

Create a new gateway connection

spreedly_gateway_list

List all gateways

spreedly_gateway_show

Get gateway details

spreedly_gateway_update

Update gateway configuration

spreedly_gateway_retain

Mark gateway for retention

spreedly_gateway_list_supported

List all supported gateway types

spreedly_gateway_list_transactions

List transactions for a gateway

spreedly_gateway_authorize

Authorize a payment (hold funds)

spreedly_gateway_purchase

Authorize and capture in one step

spreedly_gateway_verify

Verify a payment method

spreedly_gateway_store

Store a payment method at a gateway

spreedly_gateway_general_credit

Issue a non-referenced credit

Transactions (9 tools)

Tool

Description

spreedly_transaction_list

List transactions

spreedly_transaction_show

Get transaction details

spreedly_transaction_update

Update transaction metadata

spreedly_transaction_capture

Capture an authorized transaction

spreedly_transaction_void

Void a transaction

spreedly_transaction_credit

Refund a transaction

spreedly_transaction_complete

Complete a pending transaction

spreedly_transaction_confirm

Confirm a pending transaction

spreedly_transaction_transcript

Get raw gateway transcript

Payment Methods (12 tools)

Tool

Description

spreedly_payment_method_create

Tokenize a new payment method

spreedly_payment_method_list

List payment methods

spreedly_payment_method_show

Get payment method details

spreedly_payment_method_update

Update payment method metadata

spreedly_payment_method_retain

Retain a payment method

spreedly_payment_method_recache

Recache CVV

spreedly_payment_method_list_transactions

List transactions for a payment method

spreedly_payment_method_list_events

List events for a payment method

spreedly_payment_method_delete_metadata

Delete payment method metadata

spreedly_payment_method_update_gratis

Update without gateway interaction

spreedly_payment_method_show_event

Show a payment method event

spreedly_payment_method_list_all_events

List all payment method events

Certificates (4 tools)

spreedly_certificate_create, spreedly_certificate_generate, spreedly_certificate_list, spreedly_certificate_update

Environments (4 tools)

spreedly_environment_create, spreedly_environment_list, spreedly_environment_show, spreedly_environment_update

Merchant Profiles (4 tools)

spreedly_merchant_profile_create, spreedly_merchant_profile_list, spreedly_merchant_profile_show, spreedly_merchant_profile_update

Sub-Merchants (4 tools)

spreedly_sub_merchant_create, spreedly_sub_merchant_list, spreedly_sub_merchant_show, spreedly_sub_merchant_update

Events (2 tools)

spreedly_event_list, spreedly_event_show

Protection (5 tools)

spreedly_protection_forward_claim, spreedly_protection_list_events, spreedly_protection_show_event, spreedly_protection_create_provider, spreedly_protection_show_provider

SCA (3 tools)

spreedly_sca_authenticate, spreedly_sca_create_provider, spreedly_sca_show_provider

Card Refresher (3 tools)

spreedly_card_refresher_inquiry, spreedly_card_refresher_show_inquiry, spreedly_card_refresher_list_inquiries

Network Tokenization (2 tools)

spreedly_network_tokenization_card_metadata, spreedly_network_tokenization_token_status

Common Workflows

Tokenize and Charge a Card

  1. Create a payment method: spreedly_payment_method_create

  2. Authorize against a gateway: spreedly_gateway_authorize

  3. Capture the authorization: spreedly_transaction_capture

Authorize Then Capture (Two-Step)

  1. Authorize: spreedly_gateway_authorize (holds funds)

  2. Capture later: spreedly_transaction_capture (collects funds)

Refund a Transaction

  1. Find the transaction: spreedly_transaction_show

  2. Issue a refund: spreedly_transaction_credit

Audit Logging

When audit logging is enabled (the default), the MCP server emits structured audit log entries to stderr for every tool invocation. Logs use one-line JSON format for easy SIEM ingestion and comply with PCI DSS v4.0.1 Requirement 10.2.2. stderr is the MCP-specified channel for logging — stdout is reserved for protocol traffic and must not contain non-MCP messages.

Example Output

{"timestamp":"2026-03-05T18:30:00.000Z","eventId":"f47ac10b-58cc-4372-a567-0e02b2c3d479","component":"spreedly-mcp","tool":"spreedly_gateway_list","environmentKey":"EXAMPLE_ENVIRONMENT_KEY","status":"success","durationMs":142,"requestId":"a1b2c3d4e5","httpStatusCode":200}
{"timestamp":"2026-03-05T18:30:01.000Z","eventId":"7c9e6679-7425-40de-944b-e07fc1f90ae7","component":"spreedly-mcp","tool":"spreedly_payment_method_create","environmentKey":"EXAMPLE_ENVIRONMENT_KEY","status":"error","durationMs":89,"requestId":"f6g7h8i9j0","httpStatusCode":422}

Each entry includes: timestamp, event ID, component identifier, tool name, environment key, success/failure status, duration, and HTTP metadata. The environmentKey is the full SPREEDLY_ENVIRONMENT_KEY (safe to log — it is not a secret). The requestId and httpStatusCode fields reflect the Spreedly API response (x-request-id header and HTTP status), enabling correlation with Spreedly's server-side logs. Both are present whenever a Spreedly API call was made. On error, httpStatusCode is null when the failure occurred before any HTTP request (e.g. input validation). On success without an API call, httpStatusCode is absent. Request and response bodies are never logged.

De-duplicating Logs

The server emits exactly one audit entry per tool invocation. However, MCP hosts (Claude Desktop, Cursor, VS Code, etc.) capture and display stderr independently from one another, and some hosts may render the same stderr line more than once in their log UI. Each entry includes a unique eventId (UUIDv4) so that downstream log pipelines can safely de-duplicate: discard any entry whose eventId you have already seen.

Configuration

Environment Variable

Values

Default

Description

SPREEDLY_MCP_LOG_LEVEL

info, silent

info

Set to silent to disable audit logging. Note: Disabling audit logs means this component will not satisfy PCI DSS Requirement 10.2.1 (audit logs enabled for all system components). Use silent only in development or non-PCI environments.

Shared Responsibility

Responsibility

Owner

Emit structured audit events to stderr

Spreedly MCP server

Capture stderr and route to SIEM/log aggregator

Customer infrastructure

Retain logs for 12+ months (3 months immediately available)

Customer infrastructure

Monitor and alert on suspicious audit events

Customer infrastructure

Security

  • Credentials are isolated in a closure -- never stored as object properties, never serializable

  • All inputs are sanitized for invisible Unicode characters and injection attempts

  • Error messages are redacted to prevent credential leakage

  • Tool descriptions are static constants hardened against prompt injection

  • Audit logs never contain request/response bodies, full keys, or secrets

  • See SECURITY.md for vulnerability reporting

  • See Security Guide for architecture details, credential management, and deployment recommendations

Shared Responsibility

The MCP server runs in your infrastructure. Security is shared between the server and your organization:

Category

Spreedly MCP Server

Customer

Credential security

Isolates in closure; never serializable or logged

Provisions, rotates, secures storage

Transport security

Enforces HTTPS; redacts credentials from errors

Network segmentation, access controls

Input validation

Validates and sanitizes tool inputs

Configures Tool Access Policy

Audit logging

Emits structured JSON to stderr

Routes to SIEM; retention, monitoring

AI provider

Hardens tool descriptions against prompt injection

Selects provider, evaluates data privacy

Deployment

Minimal dependencies; npm provenance attestation

Isolates server process, keeps updated

PCI compliance

No cardholder data stored outside API calls

Maintains own PCI posture

For credential rotation procedures, deployment hardening, and the full model, see the Security Guide.

Development

git clone https://github.com/spreedly/spreedly-mcp.git
cd spreedly-mcp
npm install
npm test          # Run all tests
npm run typecheck # Type-check
npm run build     # Build for distribution

To run the MCP server locally against a real Spreedly test environment (e.g. during development before the package is published), see CONTRIBUTING.md for setup instructions and security guidelines.

Contributing

See CONTRIBUTING.md for the full guide, including local MCP client configuration and credential handling.

  1. Fork the repository

  2. Create a feature branch

  3. Write tests for your changes

  4. Ensure all checks pass: npm test && npm run typecheck && npm run lint

  5. Submit a pull request

Disclaimer

See DISCLAIMER.md for information on third-party AI integration, shared responsibility, and operational risk.

License

Apache License 2.0 -- see LICENSE

Available Tools

32 tools
spreedly_card_refresher_list_inquiriesB
Read-only

Lists card refresher inquiries. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoThe number of inquiries to return
orderNoSort order
since_tokenNoPagination token

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. The description adds 'This tool ONLY reads data', confirming safety but no additional behavioral context like handling of missing data or rate limits.

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?

Two sentences, no fluff. Front-loaded with purpose and key constraint. Efficient.

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

Completeness2/5

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

No output schema, yet description omits return value info. For a list tool with pagination, missing details on default behavior or how pagination works.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds no extra meaning to parameters (count, order, since_token) beyond the schema.

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 'Lists card refresher inquiries', specifying the verb and resource. It distinguishes from sibling tools like show_inquiry and other list tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., show_inquiry). No mention of pagination, ordering, or typical use cases.

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

spreedly_card_refresher_show_inquiryA
Read-only

Retrieves details of a specific card refresher inquiry. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
inquiry_tokenYesThe token of the inquiry

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare `readOnlyHint: true`, so the description's 'ONLY reads data' reinforces but adds little new information. No additional behavioral traits (e.g., auth, rate limits) are disclosed. The description does not contradict annotations.

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 consists of two concise sentences that convey the purpose and read-only nature without any wasted words. It is appropriately front-loaded and easy to parse.

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

Completeness4/5

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

For a simple retrieval tool with one parameter and read-only annotations, the description is sufficient. It covers the basic purpose and constraint. However, with no output schema, a brief note on return format could improve completeness, but it's not critical.

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

Parameters3/5

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

Schema coverage is 100% and the only parameter `inquiry_token` has a description in the schema. The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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?

Description clearly states it 'Retrieves details of a specific card refresher inquiry', using a specific verb and resource. This distinguishes it from the sibling tool `spreedly_card_refresher_list_inquiries` which lists inquiries.

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 includes 'This tool ONLY reads data', which implies it is for read-only retrieval. Although it doesn't explicitly state alternatives, the context of sibling tools makes it clear when to use this vs list tools. No exclusions provided.

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

spreedly_event_listA
Read-only

Lists events in your Spreedly environment with pagination. Returns event summaries. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of events to return
orderNoSort order
event_typeNoEvent types to return
since_tokenNoPagination token to fetch events after

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already set readOnlyHint=true and openWorldHint=false. The description adds 'This tool ONLY reads data,' which reinforces the annotation but does not provide additional behavioral traits (e.g., authentication needs, rate limits, or side effects). The mention of pagination is useful context beyond the schema.

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

Conciseness5/5

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

The description is extremely concise: three short sentences that front-load the core action and key feature (pagination). No verbose or redundant phrasing. Every sentence adds value.

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?

The tool has 4 parameters and no output schema. The description covers the primary purpose and mentions pagination, but does not detail the output structure beyond 'event summaries.' Given the lack of required parameters and simple list operation, it is mostly adequate. Missing details about the output format, but acceptable for a list tool.

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 input schema already documents each parameter. The tool description adds no extra meaning beyond mentioning pagination generically. Per rules, baseline is 3 when coverage is high.

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 action ('Lists events'), the resource ('in your Spreedly environment'), and includes key features like pagination. The phrase 'Returns event summaries' further clarifies the output. It distinguishes from sibling tools by explicitly noting it's a list operation, while siblings like spreedly_event_show are show tools.

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 lacks guidance on when to use this tool versus alternatives such as spreedly_event_show or spreedly_protection_list_events. There is no mention of prerequisites, when not to use it, or specific contexts. The read-only hint is implicit but not framed as a usage guideline.

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

spreedly_event_showB
Read-only

Retrieves details of a single event by its ID. Returns the full event record. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesThe ID of the event to retrieve

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true; description redundantly states 'This tool ONLY reads data.' It additionally says 'Returns the full event record,' which adds some behavioral context but no significant new information beyond annotations.

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?

Two short sentences with no extraneous information. Each sentence earns its place, and the description is front-loaded with the core purpose.

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

Completeness4/5

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

For a simple read tool with one parameter and annotations, the description is adequate. It covers purpose and read-only nature. Lacks details on return structure, but no output schema exists to override that need.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add meaning beyond what the schema already provides for event_id. The description says 'by its ID' which mirrors the schema description.

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

Purpose4/5

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

Description clearly states retrieving details of a single event by ID, distinguishing it from sibling list tools like spreedly_event_list. However, it does not differentiate from spreedly_protection_show_event, which may be similar.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like spreedly_event_list or spreedly_protection_show_event. Usage is implied but not clarified.

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

spreedly_gateway_listA
Read-only

Lists all gateway connections configured in your Spreedly environment. Returns an array of gateway summaries. This tool ONLY reads data and does not modify anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of gateways to return
orderNoSort order by creation date
since_tokenNoPagination token to fetch results after

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's read-only emphasis adds no new information. It mentions return type (array of summaries) but lacks details on pagination behavior or other side effects, though annotations reduce the burden.

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

Conciseness5/5

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

The description is two concise sentences, front-loading the purpose and output, with no extraneous words. Every sentence adds value.

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

Completeness3/5

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

The description together with schema covers the essential behavior, but the claim of 'Lists all...' is slightly inconsistent with the presence of a count parameter that limits results. Missing mention of pagination/filtering, but not critical.

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 description does not need to explain parameters. It adds no additional semantic value beyond the schema, meeting the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb 'Lists' and the resource 'gateway connections,' which is a specific resource that distinguishes it from sibling tools like 'spreedly_gateway_show' (single gateway) and 'spreedly_gateway_list_supported' (different scope).

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 siblings like 'spreedly_gateway_list_supported' or 'spreedly_gateway_list_transactions.' It only emphasizes read-only behavior, which is already covered by annotations.

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

spreedly_gateway_list_supportedA
Read-only

Lists all gateway types supported by Spreedly. Returns available gateway integrations and their capabilities. This tool ONLY reads reference data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, and the description reinforces this with 'ONLY reads reference data'. It adds that the tool returns capabilities, which is useful beyond annotations. No mention of rate limits or other side effects, but appropriate for a simple read operation.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no wasted words. The first sentence states the primary action, and the second provides a reassurance about read-only nature. It is front-loaded and efficient.

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

Completeness5/5

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

Given no parameters and no output schema, the description sufficiently explains what the tool does and what it returns. It covers the purpose and behavior completely for a simple list tool. No additional details are needed.

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?

No parameters exist, so schema coverage is 100% by default. The description adds value by hinting at the output (available integrations and capabilities), which compensates for the lack of an output schema. Baseline for 0 parameters is 4.

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 lists all supported gateway types and their capabilities, using a specific verb 'lists' and resource 'gateway types supported by Spreedly'. It distinguishes from siblings like spreedly_gateway_list which lists user-specific gateways.

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 this is a read-only reference tool but does not explicitly state when to use it versus alternatives like spreedly_gateway_list. The 'ONLY reads reference data' provides some guidance but lacks direct comparison.

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

spreedly_gateway_list_transactionsB
Read-only

Lists transactions processed through a specific gateway. Returns transaction summaries. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort order
stateNoTransaction states to return
since_tokenNoPagination token
gateway_tokenYesThe token of the gateway

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already set readOnlyHint=true, so the description's claim 'This tool ONLY reads data' adds no new behavioral insight. No mention of pagination, response structure, or rate limits. Acceptable but does not go beyond annotations.

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?

Two concise sentences with no redundant content. Front-loaded with the purpose and ends with a safety note. Every sentence adds value.

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

Completeness3/5

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

The description is adequate but minimal. It does not explain what 'transaction summaries' contain, how pagination works via since_token, or the default ordering. Given full schema descriptions and annotations, it meets minimum viability but leaves gaps.

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?

Input schema has 100% description coverage with clear descriptions for each parameter (order, state, since_token, gateway_token). The description adds no additional parameter context, so baseline 3 is appropriate.

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

Purpose4/5

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

Clearly states it lists transactions for a specific gateway using 'Lists transactions processed through a specific gateway'. Implicitly distinguishes from broader list tools like spreedly_transaction_list but does not explicitly differentiate from siblings like spreedly_payment_method_list_transactions.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like spreedly_transaction_list or spreedly_payment_method_list_transactions. Only implies a gateway token is needed; lacks context 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.

spreedly_gateway_showA
Read-only

Retrieves details of a single gateway by its token. Returns the full gateway configuration. This tool ONLY reads data and does not modify anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_tokenYesThe token of the gateway to retrieve

TDQS

A3.7/5.0
Behavior3/5

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

The description confirms the read-only nature already declared by annotations (readOnlyHint=true), adding no further behavioral context beyond the annotation.

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

Conciseness4/5

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

Two concise sentences, front-loaded with purpose and followed by a clear behavioral note, with 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 simple retrieval tool with one parameter and read-only annotations, the description covers the essential aspects, though it could briefly mention the return structure.

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

Parameters3/5

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

Schema coverage is 100%, with the parameter description adequate. The description does not add additional meaning to the parameter content.

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 uses a specific verb ('Retrieves') and resource ('gateway') with an identifier ('by its token'), clearly distinguishing from sibling tools like spreedly_gateway_list.

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 for retrieving a single gateway by token, but does not explicitly state when to use it over alternatives or provide any exclusions.

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

spreedly_merchant_profile_listB
Read-only

Lists all merchant profiles. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of merchant profiles to return
orderNoSort order
since_tokenNoPagination token

TDQS

B3.2/5.0
Behavior2/5

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

The annotation readOnlyHint=true already indicates safe read operation. The description adds only that it 'ONLY reads data', which is redundant. It does not disclose pagination behavior, default ordering, or result structure beyond what the schema implies.

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?

Two short sentences with no fluff. The key action and read-only nature are front-loaded. Every word earns its place.

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?

As a paginated list tool with no output schema, the description should explain pagination (e.g., how since_token works) and default behavior. It omits these details, making it incomplete for effective use.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no additional context about parameters (count, order, since_token) beyond their schema descriptions.

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 'Lists all merchant profiles', which is a specific verb and resource. This distinguishes it from sibling tools like spreedly_merchant_profile_show, which likely retrieves a single profile.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as spreedly_merchant_profile_show or other list tools. The description does not mention prerequisites, filters, or exclusion criteria.

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

spreedly_merchant_profile_showA
Read-only

Retrieves details of a single merchant profile. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
merchant_profile_tokenYesThe token of the merchant profile

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds 'This tool ONLY reads data', reinforcing but not adding new behavioral context beyond what annotations provide.

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?

Two sentences, no wasted words. Critical information is front-loaded: action and resource in first sentence.

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

Completeness5/5

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

For a simple retrieval tool with one parameter and no output schema, the description and annotations together fully specify the tool's purpose and safety.

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

Parameters3/5

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

Schema coverage is 100% with description for each parameter. The description does not add extra meaning beyond what schema already states for 'merchant_profile_token'.

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?

Description explicitly states 'Retrieves details of a single merchant profile', using specific verb 'Retrieves' and resource 'merchant profile'. It clearly distinguishes from sibling tool 'spreedly_merchant_profile_list' which lists all profiles.

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?

No explicit guidance on when to use this tool vs alternatives. The description implies it's for a single token, but doesn't mention when not to use or suggest alternatives like list tools.

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

spreedly_network_tokenization_card_metadataA
Read-only

Retrieves card metadata for a network token. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_method_tokenYesThe token of the network-tokenized payment method

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description repeats 'This tool ONLY reads data' without adding new behavioral context (e.g., auth requirements, rate limits, or side effects). No contradiction, but minimal added value.

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?

Two short, front-loaded sentences with no superfluous words. Every part serves a purpose: action, resource, and read-only emphasis.

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?

Adequate for a simple read tool with one parameter and readOnlyHint annotation. However, the absence of an output schema and lack of detail on the returned metadata slightly reduces completeness. Could mention typical metadata 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 coverage is 100% with a clear description for the one parameter. The description does not elaborate on what 'card metadata' includes or provide additional context beyond the schema.

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?

Description clearly states the action ('Retrieves') and resource ('card metadata for a network token'), and explicitly declares it is read-only, distinguishing it from sibling tools that may perform writes or retrieve other entities.

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 indicates when to use the tool (when needing card metadata for a network token) but does not provide guidance on when not to use it or mention alternatives among sibling tools. No usage exclusions or comparisons are given.

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

spreedly_network_tokenization_token_statusA
Read-only

Retrieves the status of a network token. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_method_tokenYesThe token of the network-tokenized payment method

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'ONLY reads data' adds minimal new insight. No additional behaviors (e.g., auth needs, rate limits) are disclosed, but there is no contradiction with annotations.

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

Conciseness5/5

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

The description is extremely concise with two short sentences, front-loaded with the core purpose. No extraneous words or redundant information.

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

Completeness4/5

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

For a simple read-only tool with one parameter and no output schema, the description is complete enough. It covers the main action and safety. Minor gaps exist (e.g., what status values look like), but they are not critical given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter payment_method_token is already documented. The description does not add any extra semantics beyond what the schema provides, meeting baseline expectations.

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 retrieves the status of a network token, using a specific verb and resource. The name and description uniquely identify this tool among siblings, distinguishing it from other token-related tools.

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 vs. alternatives, no exclusions, and no context about prerequisites or conditions. It only states it reads data, which is too generic for usage decisions.

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

spreedly_payment_method_delete_metadataB
DestructiveIdempotent

Deletes custom metadata from a payment method. This tool ONLY removes metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysYes
payment_method_tokenYesThe token of the payment method

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description confirms deletion but adds no additional behavioral context such as side effects, authorization requirements, or rate limits. Minimal added value beyond annotations.

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?

Two concise sentences, front-loaded with the core action, no wasted words.

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

Completeness3/5

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

For a simple deletion tool, the description covers the basic operation but lacks parameter details for 'keys' and omits any mention of return values or error conditions. Adequate but with gaps.

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 coverage is 50% (only payment_method_token has a documented description). The description does not explain the 'keys' parameter at all, leaving the agent to guess that it represents metadata keys to delete. No additional meaning is added beyond the schema.

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 'Deletes custom metadata from a payment method' with a specific verb and resource, and adds 'This tool ONLY removes metadata' to distinguish it from other payment method tools that may update or retain.

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 for deleting metadata but provides no explicit guidance on when to use this tool versus siblings like spreedly_payment_method_update or spreedly_payment_method_retain. No exclusions or alternatives are mentioned.

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

spreedly_payment_method_listA
Read-only

Lists payment methods in your Spreedly environment. Returns payment method summaries. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoThe number of payment methods to return
orderNoSort order
stateNoThe list of storage_states
metadataNoA metadata key/value pair
since_tokenNoPagination token

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. The description reinforces this with 'This tool ONLY reads data.' but does not add new behavioral traits like rate limits, destructive potential (already none), or other 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 two sentences, front-loaded with the main action and purpose. No wasted words.

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

Completeness3/5

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

Given 5 parameters including nested metadata and enums, and no output schema, the description could provide more context about return structure, pagination (since_token), or filtering logic. It only says 'Returns payment method summaries.'

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?

Input schema has 5 parameters with full descriptions covering 100% of parameters. The description does not add any additional meaning beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Lists' and the resource 'payment methods'. Among siblings, this is the only list tool for payment methods, and it explicitly distinguishes itself as read-only.

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 says it lists payment methods and is read-only, but it does not mention when to use it versus other tools like spreedly_payment_method_show or when to avoid it. No context about prerequisites or suitable scenarios is provided.

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

spreedly_payment_method_list_all_eventsB
Read-only

Lists all payment method events across your environment. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoThe number of events to return
orderNoSort order
event_typeNoEvent Type
since_tokenNoPagination token
include_transactionsNoWhether to include gateway transactions

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. The description merely restates 'This tool ONLY reads data' without adding behavioral details like pagination, rate limits, or auth needs beyond the annotation.

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?

Extremely concise: two sentences, front-loaded with core purpose. No filler or redundancy.

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

Completeness2/5

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

No output schema, and the description does not explain return format, pagination behavior, or event type details. Given 5 parameters and no output schema, the description is insufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to any parameter; each parameter's purpose is already explained in the schema.

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?

Description clearly states 'Lists all payment method events across your environment' with a specific verb and resource. It distinguishes from siblings by emphasizing 'all' events across the environment.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives (e.g., spreedly_payment_method_list_events for a specific payment method). The description only implies scope but lacks exclusions or context.

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

spreedly_payment_method_list_eventsB
Read-only

Lists lifecycle events for a specific payment method. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoThe number of events to return
since_tokenNoPagination token
include_transactionsNoWhether to include gateway transactions
payment_method_tokenYesThe token of the payment method

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds 'ONLY reads data' which is consistent but redundant. No additional behavioral details like pagination or what lifecycle events mean.

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?

Two concise sentences, no unnecessary words. Front-loaded with purpose and read-only nature.

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?

Missing details like what the events contain, ordering, pagination, or how it differs from spreedly_payment_method_list_all_events. No output schema and no explanation of return format.

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

Parameters3/5

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

Schema coverage is 100%, so descriptions for all parameters are present. The tool description adds no parameter-level insights beyond what's in the schema.

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

Purpose4/5

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

The description clearly states it lists lifecycle events for a specific payment method and emphasizes read-only nature. However, it does not distinguish itself from similar sibling tools like spreedly_event_list or spreedly_payment_method_list_all_events.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Missing context like whether this is for recent events or all events, or when to use it over spreedly_event_list.

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

spreedly_payment_method_list_transactionsB
Read-only

Lists transactions for a specific payment method. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort order
since_tokenNoPagination token
payment_method_tokenYesThe token of the payment method

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. The description redundantly states 'ONLY reads data' but adds no additional behavioral traits beyond what the schema or annotations provide. No mention of pagination, sorting, rate limits, or other behaviors.

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

Conciseness4/5

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

Two sentences, no waste, and the first sentence carries the main purpose. However, the second sentence is slightly redundant with the annotation. Still 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 output schema, the description is adequate but incomplete. It doesn't explain what transaction data is returned, sorting behavior, or pagination beyond parameter descriptions. For a list tool with 3 parameters, more context would be helpful.

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% for all three parameters. The description does not add any meaning beyond what the parameter descriptions already provide. Baseline 3 is appropriate.

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?

Description clearly states the verb (lists), the resource (transactions), and the scope (for a specific payment method). It distinguishes from siblings like spreedly_transaction_list which is likely for all transactions.

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 (for a specific payment method) but provides no guidance on when to use this versus siblings like spreedly_transaction_list or spreedly_payment_method_list. No exclusions or alternatives mentioned.

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

spreedly_payment_method_retainA
Idempotent

Marks a payment method to be retained beyond the default retention period. This tool ONLY modifies retention status.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_method_tokenYesThe token of the payment method to retain

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the description adds that it only modifies retention status. This is consistent and adds some context, but it does not provide additional behavioral details such as side effects or required permissions beyond what annotations offer.

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

Conciseness5/5

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

The description is extremely concise with two sentences: the first states the purpose, the second clarifies exclusivity. No unnecessary words, making it easy to parse quickly.

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 has only one parameter, no output schema, and simple behavior, the description adequately covers what the tool does. However, it could optionally mention the implication of retaining a payment method or the default retention period, but it is mostly complete for its simplicity.

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

Parameters3/5

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

Schema coverage is 100% with one parameter (payment_method_token) already described. The tool description does not add extra meaning beyond what the schema provides, so it meets the baseline but does not enhance understanding of the parameter.

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 that the tool marks a payment method to be retained beyond the default retention period. This specifies both the action and the resource, and it distinguishes this tool from siblings like spreedly_payment_method_update.

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 explicitly says 'This tool ONLY modifies retention status,' which provides clear guidance on its exclusive use. It implies that for other modifications, other tools should be used, but it does not explicitly list alternatives or scenarios where this tool should not be used.

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

spreedly_payment_method_showA
Read-only

Retrieves details of a single payment method by its token. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_method_tokenYesThe token of the payment method

TDQS

A4/5.0
Behavior3/5

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

The annotation readOnlyHint=true already indicates the tool is safe and non-destructive. The description reinforces this by stating 'ONLY reads data', but adds no new behavioral details beyond what annotations provide. Without annotations, this description would be sufficient, but given annotations, it only partially adds value.

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?

Two sentences, no unnecessary words, front-loaded with the main action. Every sentence earns its place.

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

Completeness4/5

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

For a simple read-only tool with one parameter and no output schema, the description adequately conveys the core functionality. It could specify what 'details' are returned (e.g., the payment method object), but the tool is straightforward enough that this is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, and the description does not add any extra meaning to the single parameter 'payment_method_token' beyond what is in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'retrieves', the resource 'details of a single payment method', and the identifier 'by its token'. It also explicitly notes that the tool 'ONLY reads data', distinguishing it from sibling tools that may modify or list payment methods.

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 implies when to use this tool (to get a single payment method by token) and that it is read-only, which differentiates it from update or list tools. However, it does not explicitly mention alternatives or when not to use it, leaving some room for improvement.

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

spreedly_payment_method_show_eventB
Read-only

Retrieves a specific payment method event by token. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_tokenYesThe token of the event

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. The description merely restates 'ONLY reads data' without disclosing additional behavioral traits like response format or permissions.

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?

Two concise sentences, front-loaded with purpose, no wasted words.

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

Completeness3/5

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

Adequate for a simple read operation with one parameter and no output schema, but lacks details on return values or error conditions.

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 coverage is 100% with 'The token of the event' already in schema. The description adds no extra meaning for the parameter.

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?

Clearly states it retrieves a specific payment method event by token, distinguishing it from siblings like spreedly_event_show (generic event) and spreedly_payment_method_list_events (list).

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?

Implies read-only usage with 'ONLY reads data,' but provides no explicit guidance on when to use vs. alternatives (e.g., spreedly_event_show).

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

spreedly_payment_method_updateB
DestructiveIdempotent

Updates a payment method's non-sensitive fields. Requires a payment_method_token. This tool ONLY updates metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_methodYesFields to update
payment_method_tokenYesThe token of the payment method

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already carry idempotentHint=true and destructiveHint=true, so the description only needs to add context beyond those. It adds that only non-sensitive fields/metadata are changed and a token is required, which is useful, but it does not clarify whether updates replace or merge the metadata object or what response shape to expect.

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

Conciseness4/5

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

Three short sentences, with the core action and requirement front-loaded. The final sentence adds emphasis but is partially redundant and introduces ambiguity with the schema, so it is not perfectly earned.

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

Completeness3/5

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

The schema is rich and fully documented, and annotations cover idempotency and destructiveness. With no output schema, the description still omits the response behavior, and the metadata ambiguity plus lack of sibling differentiation leaves an agent with some uncertainty.

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?

Input schema coverage is 100%, so every property in the nested payment_method object is already described; baseline 3 is appropriate. The description adds high-level meaning by labeling fields as non-sensitive/metadata, but the 'ONLY updates metadata' phrasing conflicts with the breadth of fields in the schema, limiting its semantic value.

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

Purpose4/5

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

The description states a clear action ('Updates a payment method's non-sensitive fields') and names the required token input. However, the closing sentence 'This tool ONLY updates metadata' is ambiguous given the schema exposes many non-metadata fields such as zip, city, expiry year, and shipping addresses, which slightly muddies the intended scope.

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 'ONLY updates metadata' sentence gives a limited when-to-use signal, and the token requirement is a useful precondition. Yet it does not mention alternatives or exclusions, notably the sibling spreedly_payment_method_update_gratis, so an agent cannot easily decide between the update tools.

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

spreedly_payment_method_update_gratisA
DestructiveIdempotent

Updates a managed payment method's details without a gateway interaction. This tool modifies payment method data.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_methodYesFields to update (boolean flags only)
payment_method_tokenYesThe token of the payment method

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true and idempotentHint=true. The description adds the key behavioral detail 'without a gateway interaction', which is useful context beyond the annotations. No contradiction.

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?

Two short sentences that are immediately clear with no unnecessary elaboration. Front-loaded with the core distinction.

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?

The description is adequate for a basic update tool with good annotations and full schema. However, it does not describe return values or side effects beyond annotation hints, but this is not a major gap given the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to elaborate on parameters. The description does not add any parameter-specific meaning beyond what the 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 tool updates a managed payment method's details without a gateway interaction, distinguishing it from the sibling tool that likely involves a gateway. The verb 'updates' and resource 'managed payment method's details' are specific.

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 implies when to use (without gateway interaction) but does not explicitly state when not to use or provide alternatives. The context is clear enough for an agent to differentiate from the sibling update tool.

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

spreedly_protection_list_eventsA
Read-only

Lists protection events. Returns event summaries. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of events to return
orderNoSort order
stateNoFilter events by state
since_tokenNoPagination token

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false. The description reinforces that this tool only reads data, but does not add further behavioral details (e.g., pagination behavior, rate limits, or what constitutes a 'protection event'). Since annotations cover the safety profile, a 3 is appropriate.

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

Conciseness5/5

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

The description is two sentences, zero wasted words. It front-loads the purpose and then emphasizes the read-only nature. Perfectly concise.

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

Completeness3/5

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

Given no output schema and four optional parameters, the description is minimal. It does not explain what 'event summaries' contain, how pagination works (since_token), or if there are any default sort orders. It is adequate but not thorough.

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%: all four parameters have descriptions. The tool description adds no additional meaning beyond what is in the schema. Baseline 3 is correct.

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 action (lists), the resource (protection events), and explicitly labels it as read-only. This distinguishes it from sibling tools like spreedly_event_list (general events) and spreedly_protection_show_event (single event details).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., spreedly_event_list, spreedly_protection_show_event). There is no mention of prerequisites, filtering context, or when not to use it.

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

spreedly_protection_show_eventB
Read-only

Retrieves a specific protection event. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_tokenYesThe token of the protection event

TDQS

B3.2/5.0
Behavior2/5

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

The description repeats the readOnlyHint annotation, adding no new behavioral information. It does not disclose any potential side effects or other behaviors.

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

Conciseness5/5

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

The description is extremely concise with two sentences, front-loading the main action. No unnecessary 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 simple read tool with one parameter and no output schema, the description is sufficient, though it could explain what a protection event is.

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

Parameters3/5

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

Schema coverage is 100%; the description adds no additional meaning to the event_token parameter beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states 'Retrieves a specific protection event' and emphasizes it only reads data. However, it does not explicitly differentiate from siblings like spreedly_event_show or spreedly_protection_list_events.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like spreedly_event_show or spreedly_protection_list_events. No when-not or context is given.

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

spreedly_protection_show_providerA
Read-only

Retrieves details of a protection provider. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
protection_provider_tokenYesThe token of the protection provider

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. The description adds 'This tool ONLY reads data', which reinforces but doesn't extend beyond annotations. No additional behavioral traits (e.g., auth requirements, error handling) are disclosed.

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?

Two concise sentences with no wasted words. Every part is meaningful and front-loaded.

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

Completeness4/5

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

For a simple read-only tool with one parameter and no output schema, the description is mostly complete. It could mention typical return fields (e.g., name, status), but the core functionality is clear.

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

Parameters3/5

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

Schema description coverage is 100% with a clear parameter description. The tool description adds no extra meaning beyond what the schema already provides, earning the baseline score.

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?

Description clearly states it retrieves details of a protection provider, a specific verb+resource. It distinguishes from siblings like 'show_event' or 'list_events' by focusing on the provider entity. The explicit 'ONLY reads data' reinforces the read-only nature.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'spreedly_sca_show_provider' or other show tools. The description does not provide context for selecting among siblings.

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

spreedly_sca_show_providerA
Read-only

Retrieves details of an SCA provider. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
sca_provider_tokenYesThe token of the SCA provider

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. The description adds 'This tool ONLY reads data', which is consistent but does not provide extra behavioral context like rate limits or side effects beyond what annotations convey.

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 consists of two concise sentences, each delivering essential information. No wasted words; the read-only emphasis is front-loaded.

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?

The tool is simple with one parameter and no output schema. The explanation covers purpose and read-only nature, which is sufficient for a straightforward retrieval. However, lacking any hint about the response format or fields returned limits completeness slightly.

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

Parameters3/5

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

The single parameter 'sca_provider_token' is described in the schema as 'The token of the SCA provider', and schema coverage is 100%. The description adds no additional semantic value beyond the schema.

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 'Retrieves details of an SCA provider', specifying the verb (retrieves) and resource (SCA provider details). Among sibling tools, it distinguishes itself from general gateways or payment methods by specifying 'SCA provider'.

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 gives no explicit guidance on when to use this tool versus alternatives, such as similar show tools for other entities (e.g., spreedly_gateway_show, spreedly_protection_show_provider). It only implies read-only usage but lacks differentiation.

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

spreedly_sub_merchant_listA
Read-only

Lists all sub-merchants. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of sub_merchants to return
orderNoSort order
since_tokenNoPagination token

TDQS

A3.7/5.0
Behavior3/5

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

The description states it 'ONLY reads data', which is consistent with the readOnlyHint annotation but adds no new behavioral details beyond what the annotation and schema provide. No mention of pagination, ordering, or other 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 extremely concise at two sentences, with no redundant information. The purpose is front-loaded, making it easy for an agent to quickly understand the tool's function.

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

Completeness3/5

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

Given the lack of an output schema, the description should ideally mention what the returned list contains. It does not provide any return value information, leaving the agent to infer the structure. With a simple list tool and good annotations, this is adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adds no additional meaning to the parameters beyond what is already in the schema. Baseline score of 3 is appropriate.

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 action ('Lists') and resource ('sub-merchants'), and emphasizes it's read-only. This distinguishes it from sibling tool 'spreedly_sub_merchant_show' which retrieves a single sub-merchant.

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 does not provide any explicit guidance on when to use this tool versus alternatives. No exclusions or sibling comparisons are mentioned; usage is only implied by the tool name.

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

spreedly_sub_merchant_showA
Read-only

Retrieves details of a single sub-merchant. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
sub_merchant_keyYesThe key of the sub-merchant

TDQS

A3.8/5.0
Behavior3/5

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

The description states 'ONLY reads data,' which reinforces the readOnlyHint annotation but adds no new behavioral traits beyond what annotations already convey. No additional details about auth, rate limits, or side effects are provided.

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?

Two concise sentences front-load the key purpose and read-only nature. Every sentence adds value without unnecessary 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 simple read tool with one required parameter, the description covers the basic action and read-only behavior. However, no output schema exists, and the description does not hint at the structure of returned details, which slightly reduces completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single parameter. The description adds no extra meaning about parameters, merely restating the tool's action. Baseline score of 3 is appropriate.

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?

Description clearly states it retrieves details of a single sub-merchant, with a specific verb and resource. It distinguishes from sibling tools like spreedly_sub_merchant_list (list) and other show tools by specifying 'single sub-merchant' and emphasizing read-only.

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 does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. It implies use for fetching details of one sub-merchant, but lacks exclusion criteria or context for choosing over list or other show tools.

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

spreedly_transaction_listA
Read-only

Lists transactions in your Spreedly environment. Returns transaction summaries with pagination. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of transactions to return
orderNoSort order
stateNoFilter transactions by state
since_tokenNoPagination token

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's 'ONLY reads data' is redundant but consistent. It adds that results are transaction summaries with pagination, which is useful beyond annotations.

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?

Two sentences, no wasted words. Front-loaded with the primary action and key features (summaries, pagination, read-only).

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 output schema, the description mentions summaries and pagination, but could specify what fields are in a summary. Still sufficient for a simple list tool.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already described. The description adds no further parameter details, so baseline 3 is appropriate.

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 lists transactions and returns summaries with pagination. It distinguishes itself from siblings like spreedly_transaction_show (single transaction) and spreedly_gateway_list_transactions (by gateway).

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 says it lists transactions and is read-only, but does not specify when to prefer this over alternatives like spreedly_gateway_list_transactions or spreedly_transaction_show. Usage context is implied but not explicit.

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

spreedly_transaction_showA
Read-only

Retrieves details of a single transaction by its token. Returns the full transaction record. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_tokenYesThe token of the transaction to retrieve

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description reinforces 'ONLY reads data' and adds 'Returns the full transaction record', which is beyond the annotation. No 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?

Two short, direct sentences with no filler. Every sentence adds value.

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

Completeness5/5

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

For a simple read-only tool with a single parameter and annotations providing safety guarantees, the description is entirely sufficient. It explains input, action, and output.

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

Parameters3/5

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

Schema coverage is 100% with a clear parameter description. The description does not add further meaning to the parameter beyond what the schema provides, so baseline 3 applies.

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 uses a specific verb 'retrieves' and resource 'details of a single transaction by its token', clearly distinguishing it from siblings like list (multiple) and update (write).

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 states it only reads data, implying read-only use. While it doesn't explicitly list alternatives or when-not-to-use, the purpose is clear enough given sibling context.

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

spreedly_transaction_transcriptA
Read-only

Retrieves the raw gateway communication transcript for a transaction. Returns request/response logs. This tool ONLY reads data.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_tokenYesThe token of the transaction

TDQS

A4/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint annotation by specifying that it retrieves raw gateway communication transcripts and returns request/response logs. It aligns with the annotation (readOnlyHint true), with no 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 three short sentences that are front-loaded with the core purpose. Every sentence adds useful 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?

For a simple retrieval tool with one parameter and no output schema, the description adequately explains the function and return value. It could be more complete by describing the format of the logs or prerequisites, but it is largely sufficient.

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

Parameters3/5

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

The input schema has 100% coverage for the single parameter (transaction_token) with a description. The tool description does not add any further meaning or constraints beyond the schema, meeting the baseline.

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 action 'Retrieves' and the resource 'raw gateway communication transcript for a transaction'. It also specifies what is returned ('request/response logs') and explicitly notes it only reads data, distinguishing it from write 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/5

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

The description does not provide explicit guidance on when to use this tool versus siblings like spreedly_transaction_show. It only mentions that it reads data, which is implicit. No alternatives or when-not-to-use conditions are stated.

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

spreedly_transaction_updateA
DestructiveIdempotent

Updates metadata on an existing transaction. Requires a transaction_token. This tool ONLY modifies transaction metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
metadataNoMetadata key-value pairs to update on the transaction
transaction_tokenYesThe token of the transaction to update

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate idempotent and destructive behavior. The description adds that the tool requires a transaction_token and only modifies metadata, which provides some context but does not significantly expand beyond the annotations. There is no contradiction.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the primary action. Every word provides value, and there is no unnecessary information.

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 simplicity of the tool (metadata update with no output schema), the description is sufficiently complete. It covers the action, required input, and scope. It could mention response behavior (e.g., success/failure), but the absence is acceptable for a minimal mutation tool.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, so the description does not need to add meaning. The description merely restates that transaction_token is required, which is already in the schema. No additional semantic value is provided.

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 updates metadata on an existing transaction, specifying the resource (transaction) and the action (updates metadata). It distinguishes from sibling tools like spreedly_transaction_list and spreedly_transaction_show by limiting scope to metadata only.

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 mentions a requirement (transaction_token) and emphasizes that it ONLY modifies transaction metadata, implying it should not be used for other updates. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

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. 1 tool updatev0.1.3
    • Changedspreedly_payment_method_update2 fields changed
      • removedInput schema / properties / payment_method / properties / metadata / additionalProperties / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "boolean"
        -  }
        -]
      • addedInput schema / properties / payment_method / properties / metadata / additionalProperties / type
        Added value: +[
        +  "string",
        +  "number",
        +  "boolean"
        +]
  2. 32 tool updatesv0.1.1
    • First observedspreedly_card_refresher_list_inquiries
    • First observedspreedly_card_refresher_show_inquiry
    • First observedspreedly_event_list
    • First observedspreedly_event_show
    • First observedspreedly_gateway_list
    • First observedspreedly_gateway_list_supported
    • First observedspreedly_gateway_list_transactions
    • First observedspreedly_gateway_show
    • First observedspreedly_merchant_profile_list
    • First observedspreedly_merchant_profile_show
    • First observedspreedly_network_tokenization_card_metadata
    • First observedspreedly_network_tokenization_token_status
    • First observedspreedly_payment_method_delete_metadata
    • First observedspreedly_payment_method_list
    • First observedspreedly_payment_method_list_all_events
    • First observedspreedly_payment_method_list_events
    • First observedspreedly_payment_method_list_transactions
    • First observedspreedly_payment_method_retain
    • First observedspreedly_payment_method_show
    • First observedspreedly_payment_method_show_event
    • First observedspreedly_payment_method_update
    • First observedspreedly_payment_method_update_gratis
    • First observedspreedly_protection_list_events
    • First observedspreedly_protection_show_event
    • First observedspreedly_protection_show_provider
    • First observedspreedly_sca_show_provider
    • First observedspreedly_sub_merchant_list
    • First observedspreedly_sub_merchant_show
    • First observedspreedly_transaction_list
    • First observedspreedly_transaction_show
    • First observedspreedly_transaction_transcript
    • First observedspreedly_transaction_update

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource and action, with clear prefixes like spreedly_gateway_, spreedly_transaction_, etc. No two tools have overlapping purposes, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tools follow a consistent spreedly_<resource>_<action> pattern in snake_case. The naming is uniform and predictable, enhancing readability and discoverability.

Tool Count4/5

With 32 tools, the count is higher than the typical 3-15 range, but the domain (payment platform) justifies the breadth. The tools are organized by resource, and each tool seems to serve a specific purpose, so the count is slightly over but still reasonable.

Completeness3/5

The tool set covers reads and some updates for many resources, but lacks creation and deletion operations for core entities like gateways, transactions, and payment methods. This leaves notable gaps in CRUD lifecycle coverage.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

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

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to interact with multiple payment providers (Stripe, Paystack) through a unified API. Supports payment initialization, verification, refunds, customer management, and invoicing without requiring knowledge of specific provider implementations.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to interact with PayBridgeNP payment gateway accounts through natural language. Provides read-only access to payments, refunds, analytics, and account data, with write capabilities planned for future versions.
    215
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access Magpie Payment Platform APIs for processing payments, creating checkout sessions, sending invoices, and managing payment links through natural conversation.
    46
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables integration with Stripe APIs through function calling, supporting operations on customers, products, invoices, subscriptions, and more.
    17,353
    MIT

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/spreedly/spreedly-mcp'

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