Visa Acceptance
Provides tools for managing Visa Acceptance services, including creating and managing invoices, retrieving invoice details, and handling payment links with customer and shipping information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Visa Acceptancecreate an invoice for John Doe for $250 with due date next week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Visa Acceptance Model Context Protocol
The Visa Acceptance Model Context Protocol server allows you to integrate with Visa Acceptance APIs through function calling. This protocol supports various tools to interact with different Visa Acceptance services, including enhanced invoice management, and payment links functionality.
Quick Start
To run the Visa Acceptance MCP server using npx, use the following command:
# To set up all available tools
npx -y @visaacceptance/mcp --tools=all --merchant-id=YOUR_MERCHANT_ID --api-key-id=YOUR_API_KEY_ID --secret-key=YOUR_SECRET_KEY
# To set up specific tools
npx -y @visaacceptance/mcp --tools=invoices.create,invoices.read,paymentLinks.create,paymentLinks.read --merchant-id=YOUR_MERCHANT_ID --api-key-id=YOUR_API_KEY_ID --secret-key=YOUR_SECRET_KEY
# To configure test environment (default is true)
npx -y @visaacceptance/mcp --tools=all --merchant-id=YOUR_MERCHANT_ID --api-key-id=YOUR_API_KEY_ID --secret-key=YOUR_SECRET_KEY --use-test-env=trueMake sure to replace the credential placeholders with your actual Visa Acceptance credentials. Alternatively, you could set these values in your environment variables.
Related MCP server: stripe
Usage with Claude Desktop
Add the following to your claude_desktop_config.json. See here for more details.
{
"mcpServers": {
"visa-acceptance": {
"command": "npx",
"args": [
"-y",
"@visaacceptance/mcp",
"--tools=all",
"--merchant-id=YOUR_MERCHANT_ID",
"--api-key-id=YOUR_API_KEY_ID",
"--secret-key=YOUR_SECRET_KEY"
]
}
}
}Available Tools
Tool | Description |
| Create a new invoice with customer info and enhanced invoice parameters |
| Update an existing invoice including customer and invoice information |
| List invoices with pagination support |
| Get detailed invoice transaction |
| Create a new payment link with optional shipping info |
| Update an existing payment link |
| List payment links with pagination |
| Retrieve details of a specific payment link |
Debugging the Server
To debug your server, you can use the MCP Inspector.
First build the server:
npm run buildRun the following command in your terminal:
# Start MCP Inspector and server with all tools
npx @modelcontextprotocol/inspector node dist/index.js --tools=all --merchant-id=YOUR_MERCHANT_ID --api-key-id=YOUR_API_KEY_ID --secret-key=YOUR_SECRET_KEYDebugging Instructions
Replace the credential placeholders with your actual Visa Acceptance credentials.
Run the command to start the MCP Inspector.
Open the MCP Inspector UI in your browser and click Connect to start the MCP server.
You can see the list of tools you selected and test each tool individually.
Configuration
You can also configure the server using environment variables:
# Visa Acceptance API Credentials
# Both new simplified names and old names are supported
# New simplified names take precedence if both are defined
VISA_ACCEPTANCE_MERCHANT_ID=your_merchant_id
VISA_ACCEPTANCE_API_KEY_ID=your_api_key_id
VISA_ACCEPTANCE_SECRET_KEY=your_secret_key
# Environment Configuration
# When true, points to apitest.visa-acceptance.com (non-production)
# When false, points to api.visa-acceptance.com (production)
VISA_ACCEPTANCE_ENVIRONMENT=SANDBOX
VISA_ACCEPTANCE_TOOLS=all
You can copy the .env.template file to get started:
cp .env.template .envLocal Development
This package is designed to be used as a local npm package during development. Follow these steps to set up the package for local development:
Installation
Clone the repository:
git clone https://github.com/visaacceptance/agent-toolkit.git cd agent-toolkit/modelcontextprotocolInstall dependencies:
npm installBuild the package:
npm run build
Local Package Linking
To use this package locally in another project:
Link the package globally:
npm linkIn your project directory, link to the package:
npm link @visaacceptance/mcpYou can now import and use the package in your project:
import { VisaAcceptanceAgentToolkit } from '@visaacceptance/mcp'; // or const { VisaAcceptanceAgentToolkit } = require('@visaacceptance/mcp');
Development Workflow
Make changes to the source code
Rebuild the package:
npm run buildThe linked projects will automatically use the updated version
Available Tools
10 toolscancel_invoiceB
This tool will cancel an invoice in Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits like irreversibility, authorization needs, or side effects. It only says 'will cancel,' omitting critical details such as whether cancellation can be undone or what happens to associated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It directly states the action and context, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple with one parameter and no output schema, the description lacks behavioral context (e.g., consequences of cancellation). A more complete description would mention effects like 'marks invoice as cancelled' or 'action is irreversible.' Given low complexity, the gap is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'invoice_id' described as 'Invoice ID (required).' The tool description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'cancel an invoice in Visa Acceptance.' The verb 'cancel' and resource 'invoice' are specific. Since no sibling tool cancels invoices (others create, get, list, update, send), it distinguishes well from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as prerequisites (e.g., invoice must be unpaid) or conditions. The description simply states it cancels, without any contextual use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoiceC
This tool will create an invoice in Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_number | Yes | Unique invoice number (letters & numbers only, <20 chars) | |
| totalAmount | Yes | Invoice total amount e.g. "100.00" | |
| currency | Yes | Invoice currency code e.g. "USD" | |
| customerName | No | Customer name for invoice | |
| customerEmail | No | Customer email for invoice | |
| invoiceInformation | Yes | Invoice information object |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only says 'create an invoice' without mentioning side effects like sending, persistence, or output expectations. Critical details like automatic sending or delivery are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence, highly concise and front-loaded. There is no extraneous information, though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters including a nested object and no output schema, the description is too minimal. It does not explain return values, error conditions, or the effect of parameters like 'sendImmediately', leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameter purposes. The description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an invoice in 'Visa Acceptance', distinguishing it from sibling creation tools like 'create_payment_link'. The verb 'create' is specific and the resource 'invoice' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'create_payment_link', nor does it specify prerequisites or scenarios where creation is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_payment_linkC
This tool will create a payment link in Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| linkType | Yes | Type of payment link (PURCHASE OR DONATION) | |
| purchaseNumber | Yes | Unique alphanumeric id, no special chararacters for the purchase less than 20 characters | |
| currency | Yes | Currency code e.g. "USD" (Required) | |
| totalAmount | No | Total payment amount e.g. "100.00" | |
| requestPhone | No | Request phone number from customer | |
| requestShipping | No | Request shipping address from customer | |
| clientReferenceCode | No | Custom client reference code for the transaction | |
| lineItems | Yes | Line items in the purchase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the creation action without any details on side effects, required permissions, idempotency, or error conditions. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words, which is concise but overly sparse. It lacks important details that could be included without verbosity, such as default behavior or output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and no annotations, the description fails to provide necessary context about return values, error handling, or invocation requirements. It is incomplete for an agent to use safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents each parameter. The tool description adds no extra meaning beyond what is in the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'create' and the resource 'payment link' within 'Visa Acceptance', making the tool's purpose immediately understandable. However, it does not differentiate from sibling tools like update_payment_link or get_payment_link, but the verb 'create' is distinct enough among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_payment_link or create_invoice. The description lacks any contextual cues or exclusions, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceB
This tool will get a specific invoice from Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'get' implying read-only, but no details on side effects, rate limits, or other behaviors. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, front-loaded. No unnecessary words or repetition. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-invoice retrieval tool without output schema, the description is minimally complete. Could mention output format or usage context but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers the only parameter 'id' with description. Description adds no extra meaning. Baseline 3 as per guidelines for 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves one invoice, with source 'Visa Acceptance'. It distinguishes from sibling list_invoices (multiple) and create_invoice (write). Could specify what invoice details are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied—use when you have an invoice ID. No explicit guidance on when to use this vs alternatives like list_invoices or get_payment_link. No prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_linkB
This tool will get a specific payment link from Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Payment link ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'get', implying read-only, but no disclosure of auth, side effects, or behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no superfluous words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple retrieval tool, but no description of return value or output format, which is needed since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described. Description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'get' and resource 'payment link' from Visa Acceptance. Distinguishes from siblings like list_payment_links and create_payment_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesC
This tool will list invoices from Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | Yes | Pagination offset (required) | |
| limit | Yes | Pagination limit (required) | |
| status | No | Filter by status (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only mentions listing invoices without disclosing behavioral traits such as pagination behavior, ordering, or whether it is read-only. For a list tool, basic read-only hint would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but lacks front-loading of key information. It is not overly verbose, but it could be more informative without increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple but has no output schema. The description does not indicate what the return format is (e.g., list of invoice objects). Given the absence of annotations and output schema, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no additional meaning beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'list invoices from Visa Acceptance', specifying the action (list) and resource (invoices) and a source. It distinguishes from sibling tools like cancel_invoice or create_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_invoice for a single invoice or list_payment_links for payment links. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_payment_linksC
This tool will list payment links from Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | Yes | Pagination offset (required) | |
| limit | Yes | Pagination limit (required) | |
| status | No | Filter by status (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should explicitly state behavioral traits. It only says 'list', implying read-only, but does not confirm safety, idempotency, or whether any side effects occur. This is minimal transparency for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks structure (e.g., bullet points) and is overly minimal. While front-loaded, it does not earn its place with sufficient detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of sibling list tools and the absence of an output schema, the description should explain return format, pagination behavior, and scope. It only mentions the source (Visa Acceptance), leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond what the schema provides (e.g., offset/limit usage, status filtering details). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists payment links from Visa Acceptance, distinguishing it from sibling tools like get_payment_link (single) and create_payment_link (create). However, it could be more specific about the scope (e.g., 'all' or 'paginated').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_payment_link or list_invoices. The description does not indicate prerequisites, filtering nuances, or when to prefer this over single retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_invoiceC
This tool will send an invoice to the customer from Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; description only says 'will send', implying mutation but no detail on idempotency, state requirements, failure modes, or side effects. The agent lacks crucial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. However, it is overly concise and omits important details; conciseness is not a substitute for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (1 param, no output schema). Description covers the basic action but misses outcomes, error conditions, and whether sending requires a pre-existing invoice. Barely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (1 param described). Description does not add meaning beyond the schema; it clarifies nothing about invoice_id format or retrieval. Adequate but no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send) and resource (invoice) with context (Visa Acceptance). It distinguishes from sibling tools like create_invoice or cancel_invoice, but does not specify the delivery mechanism (e.g., email).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., must invoice be created first? Not mentioned). No prerequisites, exclusions, or conditional logic provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_invoiceD
This tool will update an invoice in Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID (required) | |
| customerInformation | Yes | Customer information object (required even if properties are optional) | |
| invoiceInformation | Yes | Invoice information object (required even if properties are optional) | |
| orderInformation | Yes | Order information object (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'update' but fails to disclose if updates are partial or full, required permissions, or side effects like overwriting existing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is too minimal and under-specified. It does not earn its place as it adds no value beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex nested schema with 4 required parameters and no output schema. The one-line description is completely inadequate for an agent to understand the tool's full capabilities and proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description merely states 'update an invoice' which is a tautology of the tool's name. It does not specify which fields can be updated or distinguish the tool from siblings like cancel_invoice or send_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, 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.
update_payment_linkC
This tool will update a payment link in Visa Acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Payment link ID (required) | |
| linkType | No | Type of payment link (PURCHASE OR DONATION) | |
| purchaseNumber | No | Unique identifier for the purchase | |
| currency | No | Currency code e.g. "USD" | |
| totalAmount | No | Total payment amount e.g. "100.00" | |
| requestPhone | No | Request phone number from customer | |
| requestShipping | No | Request shipping address from customer | |
| clientReferenceCode | No | Custom client reference code for the transaction | |
| lineItems | No | Line items in the purchase | |
| expirationDays | No | Number of days the link remains valid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'update', implying mutation, but lacks details on idempotency, side effects, permissions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it is too terse and lacks front-loading of key information, making it minimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no annotations, and no output schema, the description is insufficient. It does not explain return values, success criteria, or link behavior, leaving agents underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all parameters, so baseline is 3. The description does not add any additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'payment link' in 'Visa Acceptance'. However, it does not differentiate from sibling tools like 'create_payment_link' or 'update_invoice', which share similar actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or what prerequisites are needed. The description only states the action without context for selection.
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.
10 tool updates
v1.0.0- Changed
cancel_invoice2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
create_invoice2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
create_payment_link2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_invoice2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_payment_link2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
list_invoices2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
list_payment_links2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
send_invoice2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
update_invoice2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
update_payment_link2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
10 tool updates
- First observed
cancel_invoice - First observed
create_invoice - First observed
create_payment_link - First observed
get_invoice - First observed
get_payment_link - First observed
list_invoices - First observed
list_payment_links - First observed
send_invoice - First observed
update_invoice - First observed
update_payment_link
TDQS
Each tool targets a distinct resource (invoice vs payment_link) with clear actions (create, get, list, update, cancel, send). No overlap in purpose.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_invoice, list_payment_links), making them predictable and easy to understand.
10 tools cover two main resources with essential CRUD and lifecycle operations. The count is well-scoped without being excessive or insufficient.
Invoices have full lifecycle coverage (create, get, list, update, cancel, send). Payment links cover create, get, list, update, but missing delete or refund functionality, a minor gap.
Maintenance
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
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceThis server implements the Model Context Protocol to facilitate meaningful interaction and understanding development between humans and AI through structured tools and progressive interaction patterns.57-
- AlicenseNot gradedqualityCmaintenanceThe Stripe Model Context Protocol server allows you to integrate with Stripe APIs through function calling. This protocol supports various tools to interact with different Stripe services.17,3531,790-
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides LLMs with access to Valyu's knowledge retrieval and feedback APIs for searching proprietary/web sources and submitting transaction feedback.2MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models to interact with VoIPBin's VoIP services, supporting features like call management, agent management, campaigns, conferences, and chat functionality.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/visaacceptance/agent-toolkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server