The Infini Payment MCP Server is a cryptocurrency payment processing server that integrates with Infini's API to handle payment orders, fund withdrawals, and webhook verification.
Order Management: Create new payment orders with customizable parameters (amount, description, expiration time, callback URLs, merchant alias, client reference); retrieve specific order information by ID; list and filter orders by currency (USDC/USDT) and status with pagination support; and reissue checkout URL tokens for existing orders.
Fund Operations: Withdraw funds to external wallets across multiple blockchain networks by specifying chain, token type, amount, and destination address; query all supported cryptocurrencies available for payment processing.
Security & Verification: Verify webhook callback signatures using HMAC-SHA256 to authenticate incoming notifications from Infini with timestamp and body validation.
Additional Features: Switch between sandbox (testing) and production environments; HMAC-SHA256 authentication compliant with Infini specifications; Tron Testnet (Nile) support for testing; rate limiting of 600 requests per minute per API key; comprehensive error handling for HTTP 400, 401, 403, 404, 409, and 500 errors; integrates with development tools (Cursor, VS Code, Claude Code, ChatGPT) via Model Context Protocol (MCP) configurations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Infini Payment MCP Servercreate a USDC payment order for $50"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Quick Start
1. Install Dependencies
uv sync2. Configure Environment Variables
Copy the environment template:
cp .env.example .envEdit 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 production3. Run the Server
uv run server.pyConnect 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.pyTo learn more, see the Claude Code documentation.
ChatGPT
To add Infini MCP to ChatGPT, you need to configure it through the ChatGPT interface:
Go to Settings > Beta features > MCP Servers
Click "Add MCP Server"
Select "Local Server"
Enter the command:
uv run server.pySet 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 IDamount(str, required): Order amountclient_reference(str, optional): Client referenceorder_desc(str, optional): Order descriptionmerchant_alias(str, optional): Custom merchant aliasexpires_in(int, optional): Expiration time in seconds, 0 for defaultsuccess_url(str, optional): Success callback URLfailure_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 filterpage(int, optional): Page number, default 1page_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 networktoken_type(str, required): Token typeamount(str, required): Withdrawal amountwallet_address(str, required): Destination wallet addressnote(str, optional): Note
Webhook Verification
verify_webhook_signature
Verify webhook notification signature
Parameters:
body(str, required): Webhook request bodysignature(str, required): Signaturetimestamp(str, required): Timestampwebhook_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:
Chain: Tron Testnet
Token: USDT (test coins)
Wallet: TronLink
Faucet: https://nileex.io/join/getJoinPage
Test Bank Card
Test card number: 4000000000000085 (test environment only)
Security Tips
Key Security: API keys and secrets must be securely stored, never expose to frontend
Request Idempotency: Use globally unique
request_idto ensure idempotencyRate Limiting: Default 600 requests per minute per API Key
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.