Skip to main content
Glama
Infini Payment MCP Server

Infini Payment MCP Server

by yanboishere

Infini Payment MCP Server

A Model Context Protocol (MCP) server built on the Infini Payment API that provides cryptocurrency payment processing capabilities.

Features

  • ✅ Complete Order Management: Create, query, list, and reissue tokens

  • ✅ Fund Withdrawal: Multi-chain withdrawal support

  • ✅ Currency Support: Get supported cryptocurrency list

  • ✅ Webhook Verification: Verify callback notification signatures

  • ✅ HMAC-SHA256 Authentication: Compliant with Infini official signature specifications

  • ✅ Environment Switching: Support for sandbox and production environments

Related MCP server: Yolfi MCP Server

Quick Start

1. Install Dependencies

uv sync

2. Configure Environment Variables

Copy the environment template:

cp .env.example .env

Edit the .env file and fill in your Infini API credentials:

INFINI_API_KEY=your_api_key_here
INFINI_SECRET_KEY=your_secret_key_here
INFINI_ENV=sandbox  # or production

3. Run the Server

uv run server.py

Connect to Infini's MCP Server

Cursor

To add Infini MCP to Cursor, add the following to your ~/.cursor/mcp.json file:

{
  "mcpServers": {
    "infini": {
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/Users/yanbo/infini-mcp"
    }
  }
}

To learn more, see the Cursor documentation.

VS Code

To add Infini MCP to VS Code, add the following to your .vscode/mcp.json file in your workspace:

{
  "servers": {
    "infini": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/Users/yanbo/infini-mcp"
    }
  }
}

To learn more, see the VS Code documentation.

Claude Code

To add Infini MCP to Claude Code, run the following command:

claude mcp add --transport stdio infini uv run server.py

To learn more, see the Claude Code documentation.

ChatGPT

To add Infini MCP to ChatGPT, you need to configure it through the ChatGPT interface:

  1. Go to Settings > Beta features > MCP Servers

  2. Click "Add MCP Server"

  3. Select "Local Server"

  4. Enter the command: uv run server.py

  5. Set the working directory: /Users/yanbo/infini-mcp

Available Tools

Order Management

create_payment_order

Create a new payment order

Parameters:

  • request_id (str, required): Unique request ID

  • amount (str, required): Order amount

  • client_reference (str, optional): Client reference

  • order_desc (str, optional): Order description

  • merchant_alias (str, optional): Custom merchant alias

  • expires_in (int, optional): Expiration time in seconds, 0 for default

  • success_url (str, optional): Success callback URL

  • failure_url (str, optional): Failure callback URL

Returns: Order details including order_id and checkout_url

get_payment_order

Query order details

Parameters:

  • order_id (str, required): Order ID

list_payment_orders

Get order list

Parameters:

  • currency (str, optional): Currency filter (USDC/USDT)

  • status (str, optional): Status filter

  • page (int, optional): Page number, default 1

  • page_size (int, optional): Page size, default 10

reissue_order_token

Reissue checkout URL token

Parameters:

  • order_id (str, required): Order ID

Currency and Funds

get_supported_currencies

Get supported cryptocurrency list

withdraw_funds

Withdraw funds to external wallet

Parameters:

  • chain (str, required): Blockchain network

  • token_type (str, required): Token type

  • amount (str, required): Withdrawal amount

  • wallet_address (str, required): Destination wallet address

  • note (str, optional): Note

Webhook Verification

verify_webhook_signature

Verify webhook notification signature

Parameters:

  • body (str, required): Webhook request body

  • signature (str, required): Signature

  • timestamp (str, required): Timestamp

  • webhook_secret (str, optional): Webhook secret

Error Handling

The server automatically handles common HTTP errors including:

  • 400: Request parameter errors

  • 401: Authentication failure

  • 403: Insufficient permissions

  • 404: Resource not found

  • 409: Business conflicts

  • 500: Internal server errors

Test Environment

Test Network

Currently supports Tron Testnet (Nile) for testing:

Test Bank Card

Test card number: 4000000000000085 (test environment only)

Security Tips

  1. Key Security: API keys and secrets must be securely stored, never expose to frontend

  2. Request Idempotency: Use globally unique request_id to ensure idempotency

  3. Rate Limiting: Default 600 requests per minute per API Key

  4. Time Synchronization: Ensure server time accuracy (±300 seconds)

Development Notes

Signature Algorithm

This implementation strictly follows Infini official signature specifications:

Request without Body (GET):

{keyId}
{METHOD} {path}
date: {GMT_time}

Request with Body (POST):

{keyId}
{METHOD} {path}
date: {GMT_time}
digest: SHA-256={body_digest_base64}

Webhook Signature

Webhook uses timestamp + body for signature verification.

Support and Contact

For issues, please refer to Infini Official Documentation or contact technical support.

LICENSE

GNU AFFERO GENERAL PUBLIC LICENSE V3.0

Available Tools

7 tools
create_payment_orderB
Create a new payment order in Infini.

Args:
    request_id: Unique request ID (UUID recommended)
    amount: Order amount (e.g., "100.00")
    client_reference: Client reference string
    order_desc: Order description
    merchant_alias: Custom merchant alias
    expires_in: Time to live in seconds (0 for default)
    success_url: Success redirect URL
    failure_url: Failure redirect URL

Inputs: request_id (required), amount (required), client_reference, order_desc, +4 more. Returns: result

get_payment_orderC
Get payment order details by order ID.

Args:
    order_id: The order ID to query

Inputs: order_id (required). Returns: result

get_supported_currenciesB

Get list of all supported cryptocurrencies for creating orders.

Inputs: no named parameters. Returns: result

list_payment_ordersC
List payment orders with optional filters.

Args:
    currency: Filter by currency (USDC/USDT)
    status: Filter by order status
    page: Page number (1 to n)
    page_size: Page size (default 10)

Inputs: currency, status, page, page_size. Returns: result

reissue_order_tokenC
Reissue checkout URL token for an existing order.

Args:
    order_id: The order ID to reissue token for

Inputs: order_id (required). Returns: result

verify_webhook_signatureB
Verify webhook signature from Infini.

Args:
    body: Raw webhook body string
    signature: Signature from webhook header
    timestamp: Timestamp from webhook header
    webhook_secret: Webhook secret (uses INFINI_SECRET_KEY if not provided)

Inputs: body (required), signature (required), timestamp (required), webhook_secret. Returns: result

withdraw_fundsB
Withdraw funds to external wallet.

Args:
    chain: Blockchain network name
    token_type: Token identifier
    amount: Amount to withdraw
    wallet_address: Destination wallet address
    note: Optional note

Inputs: chain (required), token_type (required), amount (required), wallet_address (required), +1 more. Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: create_payment_order for creation, get_payment_order for retrieval, list_payment_orders for listing, reissue_order_token for token renewal, verify_webhook_signature for security, get_supported_currencies for currency info, and withdraw_funds for withdrawals. The descriptions reinforce these unique functions, eliminating any ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case, such as create_payment_order, get_payment_order, list_payment_orders, and verify_webhook_signature. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions.

    Tool Count5/5

    With 7 tools, the server is well-scoped for payment processing, covering core operations like order management, currency support, webhook verification, and fund withdrawals. Each tool serves a specific, necessary function without being excessive or insufficient for the domain.

    Completeness4/5

    The tool set provides strong coverage for payment order lifecycle (create, get, list, reissue) and essential utilities (currency info, webhook verification, withdrawals). A minor gap exists in lacking an update or cancel operation for orders, but agents can work around this by creating new orders or using existing tools effectively.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Non-custodial multi-chain crypto payment gateway via CoinVoyage. 15 tools for creating PayOrders, managing webhooks, and cross-chain swaps. Supports BTC, SOL, ETH, Base, Arbitrum, Polygon, BSC, Sui, USDC/USDT.
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables an AI coding assistant to create and manage products, prices, payment links, invoices, customers, subscriptions, entitlements, refunds, and webhooks, simulate test payments, read payments and receipts, and verify buyer access through a crypto payment API.
      38
      532 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI assistants to create, look up, list, and cancel crypto invoices, manage reusable payment links, check USDT and TRX rates, and simulate test payments through a secure API.
      7
      MIT