Skip to main content

PG Capabilities

get_pg_capabilities is an MCP tool on the Ottu Core server that lists the payment gateways (PGs) available in each country, the banks and providers that offer them, and what each gateway can do — funding sources, integration types, capabilities, supported wallets, and whether a paid SSL certificate is required.

It is built for Agentic merchant onboarding. When an agent sets up a new merchant, it first needs to know what is possible in the merchant's country: which gateways exist, which banks back them, and which features (tokenization, refunds, Apple Pay, …) they support. This tool is that discovery step — a single, static, global catalogue the agent can read before it configures anything. It returns no per-merchant data and changes nothing.

Permission required

The caller must hold the gateway.view_pgmid permission. Without it, the tool returns a permission-denied result — see Errors.

Boost Your Integration

Ottu offers SDKs and tools to speed up your integration. See Getting Started for all available options.

When to Use

  • Agentic onboarding — let an agent discover the gateways and banks available in a merchant's country before configuring them.
  • Country availability checks — confirm whether a specific gateway (e.g. KNET, STC Pay, Tabby) is offered in a given country.
  • Capability planning — check up front whether a gateway supports tokenization, refunds, captures/voids, or a wallet such as Apple Pay before designing the payment flow.
  • Provider/bank discovery — enumerate the acquiring banks behind a gateway (for example, the seven banks that offer MPGS card processing in Kuwait).
Catalogue vs. live availability

This tool describes what is possible — a global, static catalogue of gateways, banks, and capabilities. To discover the gateways actually active for a live checkout session (filtered by currency, plugin, or customer), use the runtime Payment Methods API instead.

Guide

How it fits

  1. The agent calls get_pg_capabilities with an optional country and gateway.
  2. Ottu returns the matching slice of the catalogue — the list of countries, one country's gateways, or a single gateway profile.
  3. The agent uses the result to decide what to configure for the merchant.

Calling the tool

In practice you describe the goal and your MCP client picks the tool. A prompt such as:

Agent prompt
Which payment gateways can I use in Kuwait, and which banks back MPGS there?

leads the client to issue a JSON-RPC tools/call over the MCP connection:

Request — tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_pg_capabilities",
"arguments": { "country": "kw", "pg": "mpgs" }
}
}

The tool returns the gateway profile shown in Mode 3 below. Both arguments are optional and drive the three usage modes; see Parameters.

Parameters

Both parameters are optional strings. Inputs are trimmed and lower-cased, so " KW " and "kw" are equivalent.

ParameterTypeRequiredExample valuesDescription
countrystringNokw, ksa, uae, om, bhCountry code. Omit to list every supported country. See the Countries table.
pgstringNompgs, knet, cybersource, stc_pay, tabby, …Gateway code. Requires country. Omit to list all gateways in the country. See the Gateway codes table.

The combination of the two parameters selects one of three usage modes.

Usage modes

The tool follows a progressive-disclosure pattern: the more you pass, the narrower the result.

You passYou get
nothingThe list of supported countries
countryEvery gateway in that country
country + pgA single gateway profile

Mode 1 — List supported countries

Call with no arguments to discover which countries the catalogue covers.

Arguments
{}
Response — supported countries
{
"countries": [
{ "code": "kw", "name": "Kuwait" },
{ "code": "ksa", "name": "Saudi Arabia" },
{ "code": "om", "name": "Oman" },
{ "code": "bh", "name": "Bahrain" },
{ "code": "uae", "name": "United Arab Emirates" }
]
}

Mode 2 — List a country's gateways

Pass a country to get every gateway available there, each as a full profile. The example below is Oman, which offers a card gateway (Cybersource) and the local OmanNet debit scheme.

Arguments
{ "country": "om" }
Response — one country's gateways
{
"country": { "code": "om", "name": "Oman" },
"gateways": [
{
"code": "cybersource",
"name": { "en": "Credit/Debit Card", "ar": "بطاقة ائتمان/خصم" },
"providers": [
{ "identifier": "alsohar", "name": "Alsohar Bank", "type": "bank" },
{ "identifier": "bank_muscat", "name": "Bank Muscat", "type": "bank" },
{ "identifier": "nbo", "name": "National Bank of Oman", "type": "bank" }
],
"funding_sources": ["credit", "debit"],
"integration_types": ["hosted_checkout"],
"capabilities": ["refund"],
"supported_wallets": [
{ "code": "apple_pay", "name": { "en": "Apple Pay", "ar": "أبل باي" } }
],
"require_paid_ssl": true
},
{
"code": "omannet",
"name": { "en": "OmanNet Debit Card", "ar": "بطاقة عمان نت" },
"providers": [
{ "identifier": "nbo", "name": "National Bank of Oman", "type": "bank" },
{ "identifier": "bank_muscat", "name": "Bank Muscat", "type": "bank" },
{ "identifier": "alsohar", "name": "Alsohar Bank", "type": "bank" }
],
"funding_sources": ["credit", "debit"],
"integration_types": ["hosted_checkout"],
"capabilities": [],
"supported_wallets": [],
"require_paid_ssl": false
}
]
}

Mode 3 — Inspect one gateway

Pass both country and pg to get a single gateway profile. The example below is MPGS in Kuwait — offered by seven banks, supporting tokenization plus refund/void/capture/inquiry, both hosted and onsite integration, and both Apple Pay and Google Pay.

Arguments
{ "country": "kw", "pg": "mpgs" }
Response — one gateway
{
"country": { "code": "kw", "name": "Kuwait" },
"gateway": {
"code": "mpgs",
"name": { "en": "Credit/Debit Card", "ar": "بطاقة ائتمان/خصم" },
"providers": [
{ "identifier": "nbk", "name": "National Bank of Kuwait", "type": "bank" },
{ "identifier": "gulf_bank", "name": "Gulf Bank", "type": "bank" },
{ "identifier": "kfh", "name": "Kuwait Finance House", "type": "bank" },
{ "identifier": "boubyan", "name": "Boubyan Bank", "type": "bank" },
{ "identifier": "burgan", "name": "Burgan Bank", "type": "bank" },
{ "identifier": "warba", "name": "Warba Bank", "type": "bank" },
{ "identifier": "cbk", "name": "Commercial Bank of Kuwait", "type": "bank" }
],
"funding_sources": ["credit", "debit"],
"integration_types": ["hosted_checkout", "onsite"],
"capabilities": ["tokenization", "refund", "void", "capture", "inquiry"],
"supported_wallets": [
{ "code": "apple_pay", "name": { "en": "Apple Pay", "ar": "أبل باي" } },
{ "code": "google_pay", "name": { "en": "Google Pay", "ar": "جوجل باي" } }
],
"require_paid_ssl": false
}
}
Example — a Buy Now, Pay Later gateway (Tabby in Saudi Arabia)

BNPL gateways look a little different: their only funding source is post_paid_bnpl, they integrate onsite, expose no post-payment capabilities or wallets, and require_paid_ssl is null (not applicable).

Arguments
{ "country": "ksa", "pg": "tabby" }
Response — a BNPL gateway
{
"country": { "code": "ksa", "name": "Saudi Arabia" },
"gateway": {
"code": "tabby",
"name": { "en": "Tabby", "ar": "تابي" },
"providers": [
{ "identifier": "tabby", "name": "Tabby", "type": "bnpl" }
],
"funding_sources": ["post_paid_bnpl"],
"integration_types": ["onsite"],
"capabilities": [],
"supported_wallets": [],
"require_paid_ssl": null
}
}

Response reference

Modes 2 and 3 return one or more gateway profile objects. A profile describes a single gateway as offered in a single country.

Gateway profile

FieldTypeDescription
codestringGateway code — see Gateway codes.
nameobjectBranded, customer-facing payment-method name as { "en": "...", "ar": "..." }. May differ from the code — MPGS, for instance, is presented as "Credit/Debit Card".
providersarray<Provider>The banks/providers that offer this gateway in the country. Always at least one.
funding_sourcesarray<string>Funding sources the gateway settles — see Funding source.
integration_typesarray<string>Supported integration styles — see Integration type.
capabilitiesarray<string>Post-payment and lifecycle capabilities — see Capability. May be empty.
supported_walletsarray<Wallet>Wallets available through this gateway. May be empty.
require_paid_sslboolean | nullWhether the merchant domain needs a paid (CA-issued) SSL certificate. null for BNPL gateways, where it does not apply.

Provider

An entry in a profile's providers array — a bank or provider that offers the gateway.

FieldTypeDescription
identifierstringStable provider code (e.g. nbk, bank_muscat, tabby).
namestringDisplay name (English proper noun), e.g. "National Bank of Kuwait".
typestringProvider type — see Provider type.

Wallet object

An entry in a profile's supported_wallets array.

FieldTypeDescription
codestringWallet code — see Wallet.
nameobjectBranded, bilingual wallet name as { "en": "...", "ar": "..." }.

Enum reference

The tables below map every code the tool returns to its human label. Use the codes in the country and pg parameters and when matching response fields; use the labels when presenting results to a user.

Countries

CodeName
kwKuwait
ksaSaudi Arabia
uaeUnited Arab Emirates
omOman
bhBahrain

Gateway codes

The pg parameter accepts a gateway code. The catalogue currently covers the following gateways; the exact set available depends on the country.

CodeGateway
mpgsMPGS (Mastercard Payment Gateway Services) card processing
knetKNET
cybersourceCybersource
ngeniusN-Genius (Network International)
stc_paySTC Pay
moyasarMoyasar
rajhiAl Rajhi
omannetOmanNet
tabbyTabby (Buy Now, Pay Later)
tamaraTamara (Buy Now, Pay Later)

Provider type

CodeLabel
bankBank
bnplBuy Now, Pay Later
walletDigital Wallet

Funding source

CodeLabel
creditCredit
debitDebit
post_paid_bnplPostpaid BNPL

Integration type

CodeLabel
hosted_checkoutHosted Checkout
onsiteDirect

Capability

CodeLabel
tokenizationTokenization
auto_debitAuto Debit
captureCapture
voidVoid
refundRefund
inquiryInquiry

Wallet

CodeLabel
apple_payApple Pay
google_payGoogle Pay
stc_paySTC Pay

Errors

On any error the tool returns a JSON object with a single error key (see the shared error behaviour). The three cases specific to this tool are:

ConditionResult
Caller lacks the gateway.view_pgmid permission{ "error": "You do not have permission to view gateway capabilities." }
country is not a supported code{ "error": "Unknown country: 'xx'. Supported: kw, ksa, om, bh, uae." }
pg is not offered in the given country{ "error": "Gateway 'paypal' is not available in 'kw'. Available: mpgs, knet, cybersource, ngenius, tabby, tamara." }

The Available: … list in the last message is built from the gateways actually offered in the requested country, so it always reflects the live catalogue.

FAQ

What's Next?

  • MCP Tools overview — connect to the Ottu Core MCP server and authenticate
  • Payment Methods — discover gateways active for a live checkout session
  • Checkout API — create a payment session once the merchant's gateways are configured
  • Operations — refund, capture, and void payments through a configured gateway