Skip to main content
Glama
theYahia

bog-ipay-mcp

by theYahia

bog-ipay-mcp

MCP server for Bank of Georgia iPay payment gateway. Supports orders, refunds, recurring payments, and pre-authorization via OAuth 2.0 + JWT.

Tools (8)

Tool

Description

get_auth_token

Get OAuth 2.0 access token

create_order

Create a new payment order

get_order_status

Get order status by ID

refund_order

Refund an order

create_recurring

Set up recurring payment

charge_recurring

Charge a recurring subscription

preauth_order

Pre-authorize an amount

complete_preauth

Capture a pre-authorized order

Related MCP server: paymongo-mcp

Quick Start

{
  "mcpServers": {
    "bog-ipay": {
      "command": "npx",
      "args": ["-y", "@theyahia/bog-ipay-mcp"],
      "env": {
        "BOG_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "BOG_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>"
      }
    }
  }
}

Environment Variables

Variable

Required

Description

BOG_CLIENT_ID

Yes

OAuth client ID from BOG iPay

BOG_CLIENT_SECRET

Yes

OAuth client secret from BOG iPay

Demo Prompts

  • "Create an order for 100 GEL for my online store"

  • "Check the status of order ord-12345"

  • "Refund 50 GEL from order ord-67890"

  • "Pre-authorize 200 GEL for a hotel reservation"

  • "Set up a recurring payment of 30 GEL for customer cust-001"

License

MIT

Available Tools

8 tools
charge_recurringB

Charge a recurring subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to charge
currencyNoCurrency codeGEL
subscription_idYesRecurring subscription ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely states the action without revealing side effects (e.g., payment processing, irrevocability), required subscription state, or what happens on success or failure. This is insufficient for a charged 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 a single, economical sentence with no redundant words. It is front-loaded with the action and resource, and there is zero waste—every word contributes to the meaning.

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?

With no output schema and no annotations, the description is too sparse for the agent to fully understand the tool's behavior. It omits return values, error conditions, and any necessary context like whether a charge is idempotent or requires an active subscription, leaving significant 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 covers 100% of parameter meanings: amount, currency, and subscription_id each have concise descriptions. The tool description adds no additional parameter semantics, so a baseline of 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description 'Charge a recurring subscription' uses a specific verb ('charge') and a clear resource ('recurring subscription'), distinguishing it from sibling tools like create_recurring and order-related tools. It unambiguously states the tool's action.

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 when to use the tool (to charge a recurring subscription), but it provides no explicit guidance on when not to use it or how it compares to alternatives like create_recurring or refund_order. There is no mention of preconditions or exclusions.

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

complete_preauthC

Complete/capture a pre-authorized order.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesCapture amount
order_idYesPre-authorized order ID

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits, but 'Complete/capture a pre-authorized order' is purely declarative. It does not explain whether this triggers an actual charge, if it is idempotent, requires specific permissions, or what side effects occur.

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

Conciseness5/5

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

The description is a single short sentence that immediately communicates the core action. There is no unnecessary information or repetition, making it highly concise and front-loaded.

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

Completeness1/5

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

For a financial tool with no output schema and no annotations, the description is far from complete. It does not address return values, idempotency, whether the capture amount can differ from the authorized amount, or any conditions that must be met. The tool's simplicity does not excuse this lack of essential operational context.

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

Parameters3/5

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

The input schema covers both parameters fully (order_id and amount) with descriptions, so schema coverage is 100%. The description adds no additional meaning beyond what the schema already provides, matching the baseline for well-documented parameters.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb and resource: 'Complete/capture a pre-authorized order.' This distinguishes it from siblings like 'preauth_order' (which presumably creates the pre-authorization) and 'create_order' (used for orders without a pre-auth).

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 implies this tool is for finalizing pre-authorized orders but provides no explicit guidance on when to use it vs. alternatives. There is no mention of prerequisites, exclusions, or scenarios where other tools like 'refund_order' or 'preauth_order' would be more appropriate.

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

create_orderC

Create a new payment order.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesOrder amount
currencyNoCurrency code (GEL, USD, EUR)GEL
descriptionYesOrder description
redirect_urlYesRedirect URL after payment
shop_order_idYesYour unique order ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Create a new payment order') and does not disclose side effects, authentication requirements, idempotency, or what the response contains.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words or redundancy. It is appropriately front-loaded and concise.

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?

For a tool with 5 parameters and no output schema, the description lacks essential context such as what the tool returns (e.g., payment link or order ID) or any preconditions. It is incomplete for an agent to invoke confidently.

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 all parameters are adequately documented in the schema. The description adds no additional semantic meaning beyond the schema, so the baseline of 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?

The description clearly states the action ('Create') and resource ('payment order'), which distinguishes it from read/refund/charge operations. However, it does not explicitly differentiate from the sibling tool 'create_recurring', so it doesn't fully distinguish all alternatives.

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 create_recurring or preauth_order. The description simply states the function without any context, exclusions, or mention of alternatives.

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

create_recurringC

Set up a recurring payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRecurring payment amount
currencyNoCurrency codeGEL
customer_idYesCustomer ID for recurring billing
descriptionNoSubscription description

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states the basic action ('Set up') without mentioning side effects, permissions, whether it charges immediately, or what the response indicates. This is insufficient for a mutation-like tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It conveys the core action efficiently, earning a top score for conciseness.

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

Completeness2/5

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

Given the tool has 4 parameters, no output schema, and no annotations, the description is far too minimal. It fails to explain what 'recurring payment' entails, potential prerequisites (e.g., existing customer), or any behavioral consequences, 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.

Parameters3/5

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

The schema description coverage is 100%, with all parameters (amount, currency, customer_id, description) documented in the input schema. The description adds no additional parameter-specific meaning, so the baseline score of 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?

The description 'Set up a recurring payment' uses a specific verb ('set up') and clearly identifies the resource (recurring payment). It is distinguishable from sibling tools like charge_recurring, which implies executing a charge rather than creating the recurring arrangement, though it does not explicitly differentiate.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. Sibling tools like charge_recurring suggest a related but distinct use case, yet the description fails to clarify selection criteria.

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

get_auth_tokenA

Get OAuth 2.0 access token from BOG iPay.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It identifies the operation as retrieving a token but omits critical details such as required credentials, token expiry/refresh behavior, caching, and potential error conditions, leaving the agent without sufficient understanding of side effects or prerequisites.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that wastes no words. It conveys the essential purpose directly and is appropriately sized for the simplicity of the tool.

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 zero-parameter tool, the description is adequate for basic selection and invocation, but gaps remain: there is no output schema or description explaining the token's format, lifetime, or how it should be used with the sibling tools. The context signals suggest a larger payment API, but the description does not connect to it.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. There is no need for the description to explain parameter semantics, and indeed it does not attempt to, making it appropriate for 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 the action ('Get'), the resource ('OAuth 2.0 access token'), and the source ('from BOG iPay'). It is distinct from sibling tools which all relate to payment operations, making the tool's purpose unambiguous.

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

Usage 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 or how it fits with the sibling tools. It does not state that this token is a prerequisite for other operations, nor does it mention alternatives or exclusions.

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

get_order_statusA

Get order status by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesBOG order ID

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states 'get,' implying a read operation, but does not disclose return format, error handling, authorization needs, or whether the status is real-time or cached. This minimal disclosure leaves significant ambiguity for an agent.

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 one short sentence that directly conveys the tool's action and input. No superfluous words or repetition, making it efficient and easy to parse.

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 one-parameter read tool, the description is minimally viable but lacks any detail on the response structure or potential edge cases (e.g., invalid order ID). Without an output schema, the agent has no indication of what data will be returned, leaving a gap for a tool that otherwise is quite straightforward.

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 schema already fully describes the single parameter 'order_id' with 100% coverage. The description's 'by ID' merely echoes the schema without adding new meaning such as format, required format, or examples. Per the baseline, a score of 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description uses a specific verb 'get' with a clear resource 'order status' and specifies the lookup key 'by ID.' This cleanly distinguishes it from sibling tools like create_order, refund_order, or get_auth_token.

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 purpose implicitly indicates this is for retrieving status, but there is no explicit guidance about when to use this tool versus alternatives like refund_order or preauth_order. The description provides no exclusions or comparison with siblings, so usage is only implied.

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

preauth_orderB

Pre-authorize (hold) an amount on a card.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPre-authorization amount
currencyNoCurrency codeGEL
descriptionYesOrder description
redirect_urlNoRedirect URL after auth

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. The word 'hold' hints at a temporary state, but it does not mention whether the pre-authorization expires, requires completion, or has side effects like fund reservation. No permissions or reversibility are discussed.

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

Conciseness5/5

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

The description is a single, front-loaded sentence. Every word provides value, and there is no redundant filler.

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 exists, so the description should explain what happens after a pre-authorization (e.g., returns an ID, holds funds for a limited time). It does not mention the relationship to sibling tools like complete_preauth, leaving the agent without a full picture of the workflow.

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 four parameters, so the schema already documents what each parameter means. The description itself adds no additional parameter semantics, but per the rubric the baseline of 3 applies when schema 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 'Pre-authorize (hold) an amount on a card' uses a specific verb and resource, clearly distinguishing it from sibling tools like complete_preauth and refund_order. The parenthetical '(hold)' adds clarity about the nature of the action.

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. Sibling tools suggest a payment workflow, but the description does not state whether this should be called before create_order, requires an auth token, or how it relates to complete_preauth.

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

refund_orderB

Refund an order (full or partial).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRefund amount
order_idYesBOG order ID to refund

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are absent, so the description must disclose behavioral traits on its own. It only notes that the refund can be full or partial, but omits important details such as side effects (e.g., order status changes), reversibility, or currency/authorization requirements. Minimal behavioral information is 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?

The description is a single concise sentence that front-loads the action and object. Every word carries meaning with no redundancy, making it easy to parse quickly.

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 mutation tool with no annotations or output schema, the description carries the full burden of context. It lacks information on return values, prerequisites, error handling, or the financial implications of the refund. More details are needed for a tool that alters order state.

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 both parameters already clearly documented (order_id and amount). The description adds a small contextual hint about partial refunds, but this does not substantially go beyond the schema. Baseline 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 (Refund) and resource (order), and specifies the scope (full or partial). It is distinct from sibling tools like create_order, preauth_order, and charge_recurring which handle other parts of the order lifecycle.

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. The description does not mention prerequisites like the order needing to exist or be paid, and does not indicate 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.1
    • First observedcharge_recurring
    • First observedcomplete_preauth
    • First observedcreate_order
    • First observedcreate_recurring
    • First observedget_auth_token
    • First observedget_order_status
    • First observedpreauth_order
    • First observedrefund_order

TDQS

A3.6/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct payment operation: auth, order creation, status check, refund, recurring setup/charge, preauth and capture. No overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_auth_token, create_order, refund_order). Even compound verbs like preauth_order fit the pattern.

Tool Count5/5

8 tools is well-scoped for a payment processing server, covering core payment lifecycle without unnecessary bloat.

Completeness4/5

Covers the main payment lifecycle: auth, create, status, refund, recurring, preauth/capture. Missing explicit cancel/void for orders and recurring cancellation, but core workflows are functional.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for T-Kassa (T-Bank/Tinkoff) payment API. Provides 16 tools for payments, refunds, recurring charges, customer management, saved cards, SBP, receipts, and T-Invest portfolio.
    35 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for PayMongo payment gateway (Philippines). Supports payment intents, sources, payments, refunds, and checkout sessions via Basic Auth.
    24
    12 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for MAIB e-commerce payments (Moldova). Supports payments, refunds, recurring billing, one-click payments, and transaction status via OAuth 2.0.
    8
    13 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for bePaid payment gateway enabling payment operations including create, capture, void, refund, card tokenization, and subscriptions through natural language prompts.
    17 npm
    MIT