Skip to main content
Glama
theYahia

idpay-mcp

by theYahia

idpay-mcp

MCP server for IDPay payment gateway (Iran). Supports payment creation, verification, inquiry, transaction listing, and payment links. Uses X-API-KEY header with optional X-SANDBOX mode.

Tools (8)

Tool

Description

create_payment

Create a payment

verify_payment

Verify a payment

get_payment

Get payment details

list_transactions

List transactions

create_link

Create a payment link

get_link

Get payment link details

list_links

List all payment links

delete_link

Delete a payment link

Related MCP server: vnpay-mcp

Quick Start

{
  "mcpServers": {
    "idpay": {
      "command": "npx",
      "args": ["-y", "@theyahia/idpay-mcp"],
      "env": {
        "IDPAY_API_KEY": "<YOUR_API_KEY>",
        "IDPAY_SANDBOX": "0"
      }
    }
  }
}

Environment Variables

Variable

Required

Description

IDPAY_API_KEY

Yes

API key from IDPay dashboard

IDPAY_SANDBOX

No

Set to "1" for sandbox mode

Demo Prompts

  • "Create a payment for 50000 IRR with order ID ORD-001"

  • "Verify payment abc123 for order ORD-001"

  • "List my recent transactions"

  • "Create a payment link for 100000 IRR"

  • "Delete payment link lnk_abc123"

License

MIT

Available Tools

8 tools
create_paymentC

Create an IDPay payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailNoPayer email
nameNoPayer name
phoneNoPayer phone number
amountYesPayment amount in IRR (min 1000)
callbackYesCallback URL after payment
order_idYesUnique order ID from your system
descriptionNoPayment description

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only states that a payment is created, with no mention of side effects, return value, authentication requirements, or payment flow steps.

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

Conciseness3/5

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

The description is a single concise sentence, but it is under-specified for a tool with 7 parameters. It lacks any structural breakdown or elaboration, though it has no fluff.

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?

There is no output schema, no annotations, and minimal description. Missing critical context about what happens after creation (e.g., response format, payment URL, redirect flow) and how this tool fits into the broader payment lifecycle.

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 documented. The description adds no extra parameter context, but the schema already provides sufficient meaning for each field.

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 'Create an IDPay payment' clearly states a specific action (create) on a specific resource (IDPay payment). It distinguishes from siblings like create_link by the resource type, but does not elaborate on what an IDPay payment entails.

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 usage guidance is provided. The description does not mention when to use this tool versus alternatives like verify_payment or create_link, nor any prerequisites or scenarios.

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

get_paymentC

Get payment details by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment ID from IDPay
order_idYesYour 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, the description must carry the full burden of behavioral disclosure. 'Get' implies a read operation, but the description does not explicitly state that it is safe/read-only, nor does it describe the return format, error behavior, or required permissions. Minimal behavioral detail 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.

Conciseness4/5

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

The description is a single concise sentence that front-loads the action. It avoids unnecessary verbosity while being sufficiently informative for a simple retrieval tool. Slightly more detail could be added without breaking conciseness, but the current structure is 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?

Without an output schema or annotations, the description is incomplete. It does not explain what 'payment details' includes, how this differs from verify_payment, or provide edge-case context. The tool has two required parameters and a specific domain (IDPay), but the description offers no contextual richness.

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 schema provides clear meanings for both 'id' (Payment ID from IDPay) and 'order_id' (Your order ID). The description's 'by ID' adds no additional semantic value and could be ambiguous due to two IDs, but the schema fully compensates, so the baseline 3 applies.

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 specific verb (Get) and resource (payment details), clearly indicating the tool's retrieval function. It is distinct from create/verify siblings in purpose, though it does not explicitly differentiate itself from verify_payment. The 'by ID' phrase is slightly ambiguous given two ID parameters, but the core purpose is clear.

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 offers no guidance on when to use this tool versus alternatives like verify_payment or list_transactions. It simply states the action, leaving the agent to infer usage from the name and context.

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

list_transactionsC

List payment transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based)
date_toNoEnd date (Unix timestamp)
date_fromNoStart date (Unix timestamp)
page_sizeNoItems per page

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations available, the description carries the full burden. It merely restates the tool's name and provides no information about read-only behavior, pagination defaults, date filtering, or return format.

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?

The description is a single, concise sentence with no redundant wording. It is front-loaded with the key action and resource, though it lacks detail.

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 four parameters and no output schema, this description is too thin. It does not explain pagination behavior, the meaning of date filters, or what the response looks like, leaving the agent to rely solely on schema parameter descriptions.

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 parameters are fully documented in the schema. The description adds no additional parameter context but does not need to because the schema handles it.

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 'List payment transactions' clearly states the action (list) and the resource (payment transactions). It distinguishes itself from sibling tools like list_links and create_payment, which operate on different resources or actions.

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. It does not mention that this is for retrieving a paginated list as opposed to getting a single payment (get_payment) or creating one (create_payment).

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

verify_paymentD

Verify an IDPay payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment ID from IDPay
order_idYesYour order ID

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations available, the description carries the full burden of disclosing behavior. It only says 'Verify', which gives no information about side effects, external API calls, authentication requirements, or what the tool actually does beyond the name. No return format or error behavior is described.

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

Conciseness2/5

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

The description is extremely short at one phrase, but this is under-specification rather than good conciseness. It doesn't earn its place because it provides no more information than the tool name. A concise but informative description would add context, but this one merely restates.

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?

The tool has only two parameters and no output schema, so the description is the primary source of context. It fails to explain what verification involves, what the result looks like, or how it differs from related payment tools. This is completely inadequate for an agent to correctly select and invoke the 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% coverage with descriptions for both parameters ('Payment ID from IDPay' and 'Your order ID'). The description adds no additional meaning, so the baseline of 3 is appropriate since the schema already documents the parameters adequately.

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

Purpose2/5

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

The description 'Verify an IDPay payment' is almost a direct restatement of the tool name 'verify_payment'. It does not specify what verifying means (e.g., checking status, validating against IDPay), nor does it distinguish this from the sibling tool get_payment. This is essentially a tautology with a brand name attached.

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?

There is no guidance on when to use verify_payment versus alternatives such as get_payment or list_transactions. No context is provided about scenarios where verification is needed, nor are exclusions or prerequisites mentioned.

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 observedcreate_link
    • First observedcreate_payment
    • First observeddelete_link
    • First observedget_link
    • First observedget_payment
    • First observedlist_links
    • First observedlist_transactions
    • First observedverify_payment

TDQS

B3.3/5.0

Scored across 8 tools

Disambiguation5/5

Each tool clearly targets a distinct resource: payment links (list/create/get/delete) and payments (create/verify/get), with transactions listed separately. There is no ambiguity as the purpose of each tool is unique.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., list_links, create_payment, verify_payment). The verbs and nouns are predictable and consistently use snake_case.

Tool Count5/5

With 8 tools, the server is well-scoped for a payment processing domain, covering both payments and payment links without unnecessary redundancy. The number is appropriate and neither too sparse nor overwhelming.

Completeness4/5

The tool set covers the core lifecycle for payments (create, verify, get) and payment links (create, list, get, delete). The only notable missing operation is an update for payment links, but this is a minor gap and does not severely hinder the primary workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server for managing Paytm payment links and transactions. It enables users to create payment links, list created links, and retrieve transaction details for specific payment links.
    -
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for VNPay payment gateway (Vietnam). Supports payment URL generation, transaction queries, refunds, tokenized payments, and IPN verification with HMAC-SHA512 signing.
    8
    10 npm
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    MCP server for Payme payment system (Uzbekistan). Supports transactions, statements, payment links, and balance queries via JSON-RPC 2.0.
    8
    10 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Bank of Georgia iPay payment gateway, enabling payment orders, refunds, recurring payments, and pre-authorization via OAuth 2.0 + JWT.
    8
    16 npm
    MIT