mcpField
M
mcp-worldpay

mcp-worldpay

Local
github.com/codesparFinance275Updated 4w ago

About mcp-worldpay

mcp-worldpay is an MCP server for the Access Worldpay REST API, aimed at enterprise merchants in the EU, UK and US. It covers authorization, capture, refunds, tokenization, 3DS2, disputes and fraud screening through 22 tools. The project is at version 0.1.0-alpha.1, and endpoint paths and media types may still change.

Key features

  1. 01Card authorization, capture, cancellation and refunds
  2. 02Card tokenization and stored token management
  3. 03Three-step 3DS2 authentication flow
  4. 04Dispute lookup, defence and evidence submission
  5. 05FraudSight fraud assessment and reconciliation batch lookup
  6. 06HATEOAS linkData-based lifecycle operations

Use cases

  1. 01Letting an agent capture or refund authorized payments
  2. 02Creating reusable card tokens for later charges
  3. 03Checking dispute status and submitting defence evidence

MCP support

This project is an MCP server that exposes 22 Access Worldpay payment tools, including authorization, refund and dispute operations, to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"codespar-mcp-worldpay": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-worldpay"
],
"env": {
"WORLDPAY_USERNAME": "<WORLDPAY_USERNAME>",
"WORLDPAY_PASSWORD": "<WORLDPAY_PASSWORD>",
"WORLDPAY_ENTITY": "<WORLDPAY_ENTITY>",
"WORLDPAY_ENV": "<WORLDPAY_ENV>",
"WORLDPAY_API_VERSION": "<WORLDPAY_API_VERSION>"
}
}
}
}
Run commandnpx -y @codespar/mcp-worldpay
Environment variables to set
WORLDPAY_USERNAMEAccess Worldpay API username (Basic Auth)
WORLDPAY_PASSWORDSecretAccess Worldpay API password (Basic Auth)
WORLDPAY_ENTITYMerchant entity identifier assigned during onboarding. Injected as merchant.entity into every request body.
WORLDPAY_ENVsandbox | production. Defaults to sandbox. sandbox -> https://try.access.worldpay.com, production -> https://access.worldpay.com.
WORLDPAY_API_VERSIONPayments API version for the Content-Type/Accept media-type header. Defaults to v7.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@codespar/mcp-worldpay0.2.0-alpha.3

Tools

22

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
narrativeobjectNoDescriptor shown on the cardholder statement.
narrative.line1stringNo
verificationTypeenumYescardOnFile stores the card as a CIT; oneTime verifies without storingcardOnFile | oneTime
paymentInstrumentobjectYesCard data — prefer a token (type=token) over raw PAN (type=card/plain).
transactionReferencestringYesUnique merchant-side reference for this verification

Details

From the project README

@codespar/mcp-worldpay

MCP server for Access Worldpay — global enterprise payment processor.

Worldpay is one of the largest card acquirers in the world and a default rail for EU/UK/US enterprise merchants. This server targets the modern Access Worldpay REST surface, not the legacy FIS/WPG XML gateway.

Status: 0.1.0-alpha.1 — Access Worldpay uses HATEOAS action links (linkData) for lifecycle operations. Exact endpoint paths and media-type versions have been validated against the public docs (v7 payments, v4 verifications, v3 tokens, v1 fraudsight/disputes) but are moving targets. See Stability below.

Tools (22)

ToolPurpose
verify_accountRun an AVS/CVC account verification on a card without charging it.
authorize_paymentAuthorize a card payment.
capture_paymentCapture (settle) an authorized payment.
cancel_paymentVoid an authorization that has not yet been captured.
refund_paymentRefund a captured payment.
reverse_paymentReverse a payment atomically — voids if not yet captured, refunds if already captured.
get_paymentRetrieve the detail of a payment event by its Worldpay eventId.
create_tokenTokenize a card for reuse (card-on-file).
get_tokenRetrieve a stored card token's metadata (bin, scheme, last4, cardHolderName, expiryDate, etc.).
update_tokenUpdate metadata on a stored card token (e.g.
delete_tokenDelete a stored card token.
query_paymentLook up a payment by the merchant-side transactionReference you assigned on authorize_payment.
list_payment_eventsList recent payment events for the configured merchant entity.
lookup_3dsStep 1 of 3DS2 — submit device-data-collection (DDC) output to Worldpay to determine whether a challenge is...
authenticate_3dsStep 2 of 3DS2 — authenticate the cardholder.
challenge_3dsStep 3 of 3DS2 — post the CReq back after the issuer challenge window closes, to retrieve the final authent...
get_disputeRetrieve a dispute's current state, evidence requirements, deadlines, and HATEOAS action links.
defend_disputeOpen a defence on a dispute — signals intent to defend before submit_dispute_evidence.
get_reconciliation_batchRetrieve a reconciliation batch (daily settlement file equivalent) — lists all settled transactions, fees,...
accept_disputeAccept a dispute (forfeit the chargeback).
submit_dispute_evidenceSubmit evidence to defend a dispute.
fraud_screenRun a standalone FraudSight assessment on a payment method (no authorization).

Install

npm install @codespar/mcp-worldpay@alpha

Environment

WORLDPAY_USERNAME="..."    # API username (Basic Auth)
WORLDPAY_PASSWORD="..."    # API password (Basic Auth)
WORLDPAY_ENTITY="..."      # Merchant entity id; injected as merchant.entity
WORLDPAY_ENV="sandbox"     # sandbox | production; default sandbox
WORLDPAY_API_VERSION="v7"  # Payments API version; default v7

Authentication

HTTP Basic auth with your Worldpay-issued credentials:

Authorization: Basic base64(username:password)

Each API family uses its own versioned media type. The server sets the correct Content-Type / Accept headers per call:

FamilyMedia type
paymentsapplication/vnd.worldpay.payments-v7+json
verificationsapplication/vnd.worldpay.verifications.accounts-v4+json
tokensapplication/vnd.worldpay.tokens-v3.hal+json
fraudsightapplication/vnd.worldpay.fraudsight-v1.hal+json
disputesapplication/vnd.worldpay.disputes-v1.hal+json

HATEOAS and linkData

Access Worldpay is HATEOAS-driven. After authorize_payment, the response contains _links such as payments:settle, payments:partialSettle, payments:cancel, payments:refund, payments:partialRefund, and payments:reverse. Each href ends in an opaque segment we call linkData, e.g.:

/payments/settlements/eyJrIjoiazNhYjYzMiJ9
                       ^^^^^^^^^^^^^^^^^^^ linkData

Extract that segment and pass it as linkData to capture_payment / cancel_payment / refund_payment / reverse_payment. When omitted, the server POSTs to the bare resource path; this only works for onboardings configured for transactionReference-addressable settlements.

Run

# stdio (default — for Claude Desktop, Cursor, etc.)
npx @codespar/mcp-worldpay

# HTTP (for server-to-server testing)
MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-worldpay

Stability

  • Published as 0.1.0-alpha.1 until we validate end-to-end against a real sandbox account.
  • Global Payments acquired Worldpay in January 2026. Base URLs (try.access.worldpay.com / access.worldpay.com) remain valid as of this writing, but Global Payments has publicly signalled platform consolidation. Expect URL and media-type rebranding over the next 12–18 months. Pin the WORLDPAY_API_VERSION env var and watch the release notes.
  • This server does not cover: Worldpay Total (US CNP-API legacy), the WPG/FIS XML gateway, Disputes Direct (separate from Access Disputes), or Worldpay for Platforms. Those are separate surfaces and would be separate packages.

Enterprise

Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.