IMBA spend MCP: USDT TRC-20 deposit and catalog buy with your key. No withdraw.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Decimal agent client_id
Operator Ed25519 private key, one HTTP header line (PEM with \n or base64url). IMBA does not host a shared spend wallet.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Issue a Visa/MasterCard prepaid from this agent 2401 USDT so the agent can pay merchants that require a card (airlines, hotels, SaaS, datacenter/GPU clouds). POST /api/pin/create_card. ext_id required. imba_product_id is core.card_product.id. Never payment_source=stars. Never pass client_id. IMBA does not create the booking.
Idempotency key. Reuse the same id to retry the same order.
Cardholder KYC email, not the agent 3DS mailbox.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Issue a Visa/MasterCard prepaid from this agent 2401 USDT so the agent can pay merchants that require a card (airlines, hotels, SaaS, datacenter/GPU clouds). POST /api/pin/create_card. ext_id required. imba_product_id is core.card_product.id. Never payment_source=stars. Never pass client_id. IMBA does not create the booking.
| Argument | Type | Description |
|---|---|---|
| string | Cardholder KYC email, not the agent 3DS mailbox. | |
| phone | string | |
| ext_id* | string | Idempotency key. Reuse the same id to retry the same order. |
| country | string | |
| last_name | string | |
| birth_date | string | |
| first_name | string | |
| imba_product_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"imba_product_id",
"ext_id"
],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "Cardholder KYC email, not the agent 3DS mailbox."
},
"phone": {
"type": "string",
"maxLength": 32
},
"ext_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Idempotency key. Reuse the same id to retry the same order."
},
"country": {
"type": "string",
"maxLength": 8
},
"last_name": {
"type": "string",
"maxLength": 64
},
"birth_date": {
"type": "string",
"maxLength": 32
},
"first_name": {
"type": "string",
"maxLength": 64
},
"imba_product_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}GET /api/balance. USDT is the spendable catalog currency.
No arguments.
{
"type": "object",
"properties": {}
}POST /api/pin/get_card_details for a card this agent owns. Needed to present PAN at merchant checkout (airline, datacenter, SaaS). PAN/CVV arrive as card_encrypted JWE when jwe_public_key is registered (PATCH webhook). Without that key the number is masked. Never logs raw PAN. cvv defaults true. Never pass client_id.
| Argument | Type | Description |
|---|---|---|
| cvv | boolean | |
| card_id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"card_id"
],
"properties": {
"cvv": {
"type": "boolean"
},
"card_id": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}POST /api/deposit_address blockchain=tron. Address is issued for the authenticated agent only. Always re-fetch before send. Do not cache. USDT TRC-20 only. 24h unfunded hold.
No arguments.
{
"type": "object",
"properties": {}
}Forbidden rails and tier rules. Allowed catalog: Visa prepaid, travel eSIM, gift cards, paid KYT address screen. Read-only.
No arguments.
{
"type": "object",
"properties": {}
}Screen a crypto address for dirt (sanctions / mixer exposure). Use BEFORE you accept a TRC-20 send, or AFTER a wallet is blocked and the reason is unclear. POST /api/kyt_check. Body: network (tron_usdt | eth | btc) + address. Debits ~0.99 USDT from 2401. Returns a report — does not gate deposit, does not ban or unblock. TON is not in this catalog. Never pass client_id. Space ~1s.
| Argument | Type | Description |
|---|---|---|
| address* | string | |
| network* | string | |
| refresh | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"network",
"address"
],
"properties": {
"address": {
"type": "string",
"maxLength": 128,
"minLength": 8
},
"network": {
"type": "string",
"maxLength": 32,
"minLength": 2
},
"refresh": {
"type": "boolean"
}
}
}POST /api/kyt_check_get. Poll until the report is ready. Own check only (404 otherwise). Use after kyt_check when a wallet was blocked and you need the dirt report. Never pass client_id.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}POST /api/kyt_checks. Own KYT history plus quote fields. Use to find a past address check. Space ~1s. Never pass client_id.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| last_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"last_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}POST /api/kyt_quote. Price for a paid crypto-address screen (Didit). Debit is on kyt_check (~0.99 USDT from 2401), not on quote. Off unless didit.enabled and didit.agent_api. Does not gate TRON deposit. Not /api/client/kyt_* and not partner. Space ~1s.
No arguments.
{
"type": "object",
"properties": {}
}POST /api/card_products. Use id as imba_product_id for create_card (Visa prepaid). Space catalog calls ~1s apart.
No arguments.
{
"type": "object",
"properties": {}
}POST /api/cards for the authenticated agent. No client_id argument.
No arguments.
{
"type": "object",
"properties": {}
}POST /api/esim/plans. Travel/data eSIM. esim_provider=yesim. Optional country ISO2. Use plan id with purchase_esim. Space catalog calls ~1s apart (agent catalog_gap).
| Argument | Type | Description |
|---|---|---|
| country | string | |
| esim_provider | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"country": {
"type": "string",
"maxLength": 8
},
"esim_provider": {
"type": "string",
"maxLength": 32
}
}
}POST /api/offers. Live gift catalog (~20k positions / ~2k unique: Apple, Google Play, Steam, games, travel, retail). Optional query string. Then purchase_gift with offer_id + ext_id. Space catalog calls ~1s apart. Do not assume a SKU.
| Argument | Type | Description |
|---|---|---|
| query | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query": {
"type": "string",
"maxLength": 64
}
}
}POST /api/notifications. Poll this when a Visa payment asks for 3-D Secure. Agents keep payload.code (never SMS, never Telegram). category=codes for 3-D Secure OTP. Also delivered on webhook field otp if callback_url is set, and optional email. Space catalog calls ~1s apart.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| prev_id | integer | |
| prev_ts | number | |
| category | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"prev_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"prev_ts": {
"type": "number"
},
"category": {
"enum": [
"all",
"codes",
"support",
"tx"
],
"type": "string"
}
}
}POST /api/esim/new_plan5. Buy a travel/data eSIM plan from this agent 2401. Omit blank/null iccid so SQL takes the new-eSIM path. A set iccid must already belong to this agent. ext_id required. Never Stars.
| Argument | Type | Description |
|---|---|---|
| iccid | string | |
| ext_id* | string | |
| plan_id* | string | |
| payment_source | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"plan_id",
"ext_id"
],
"properties": {
"iccid": {
"type": "string",
"maxLength": 32
},
"ext_id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"plan_id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"payment_source": {
"type": "string",
"maxLength": 32
}
}
}POST /api/purchase. Buy a brand gift code (Apple, Steam, Google Play, … — live list). ext_id required. Never payment_source=stars.
| Argument | Type | Description |
|---|---|---|
| ext_id* | string | |
| offer_id* | string | |
| expected_price | object | |
| payment_source | string | |
| required_fields | object |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"offer_id",
"ext_id"
],
"properties": {
"ext_id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"offer_id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"expected_price": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 32
},
"additionalProperties": {
"type": "number"
}
},
"payment_source": {
"type": "string",
"maxLength": 32
},
"required_fields": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 64
},
"additionalProperties": {
"type": "string",
"maxLength": 512
}
}
}
}POST /auth/v1/agent/hmac/rotate. Previous HMAC dies immediately. Requires an existing callback_url (400 callback_url required before rotate otherwise). Pass callback_url here to PATCH webhook first. Plaintext HMAC is returned once — store it; never a Wallet JWT.
| Argument | Type | Description |
|---|---|---|
| string | ||
| callback_url | string | |
| jwe_public_key | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"maxLength": 254
},
"callback_url": {
"type": "string",
"maxLength": 512
},
"jwe_public_key": {
"type": "string",
"maxLength": 4096
}
}
}PATCH /auth/v1/agent/webhook. Sets https callback_url (required before hmac/rotate), optional X25519 jwe_public_key for card_encrypted, optional email for 3DS OTP. Not SMS. HMAC plaintext is shown once when a URL is first accepted.
| Argument | Type | Description |
|---|---|---|
| string | ||
| callback_url | string | |
| jwe_public_key | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"maxLength": 254
},
"callback_url": {
"type": "string",
"maxLength": 512
},
"jwe_public_key": {
"type": "string",
"maxLength": 4096
}
}
}POST /api/pin/topup_card from this agent 2401 USDT. card_id must belong to the same agent (SQL owner guard). ext_id required. Never Stars.
| Argument | Type | Description |
|---|---|---|
| amount* | number | |
| ext_id* | string | |
| card_id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"card_id",
"amount",
"ext_id"
],
"properties": {
"amount": {
"type": "number",
"maximum": 1000000,
"exclusiveMinimum": 0
},
"ext_id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"card_id": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}