Ashar Exchange MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP server port, used when the http transport is selected. | 3001 |
| TRANSPORT | No | Alias for ASHAR_EXCHANGE_TRANSPORT. Accepted values: stdio or http. | stdio |
| ASHAR_EXCHANGE_BASE_URL | No | API base URL. | https://api.ashar.finance/v2 |
| ASHAR_EXCHANGE_TRANSPORT | No | Transport mode: stdio or http. Defaults to stdio. Can also be set using the TRANSPORT variable. | stdio |
| ASHAR_EXCHANGE_TENANT_KEY | Yes | Tenant API key (ash_proxy_...) used in the X-Ashar-Tenant-Key header. Required for protected endpoints; admin endpoints work without it. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ashar_create_payin_quoteA | Create a deposit (PIX -> USDC/USDT) quote for the tenant, including the Ashar platform fee markup. Args:
Returns: The marked-up quote: quote_id, request_amount, estimated_receive, fx_rate, expires_at, and the platform_fee breakdown. Use before ashar_execute_payin. |
| ashar_create_payout_quoteA | Create a withdrawal (USDC/USDT -> PIX) quote for the tenant, including the Ashar platform fee markup. Args:
Returns the marked-up quote: quote_id, request_amount, estimated_receive_brl, fx_rate, expires_at, and platform_fee. Use before ashar_execute_payout. |
| ashar_get_fx_rateA | Consult a quick FX rate (with platform markup) without creating a quote. Args:
Returns base_rate (BlindPay) and client_rate (after markup) plus platform_fee. |
| ashar_create_transfer_quoteB | Create a crypto -> crypto (cross-chain) transfer quote for the tenant. Args:
Returns quote_id, estimated_receive, fx_rate, expires_at, and platform_fee. |
| ashar_execute_payinA | Execute a PIX deposit using a previously created payin quote. Args:
Returns the payin_id, status, and the PIX payload (pix_copiacola, pix_qrcode_base64, expires_at). The client pays the generated PIX to complete the deposit. |
| ashar_list_payinsA | List deposit transactions for the tenant, newest first. Args:
Returns a paginated list with total count. |
| ashar_get_payinA | Get details of a single deposit by its payin_id. Args:
Returns live status (queries BlindPay when possible) plus the fee record. |
| ashar_execute_payoutA | Execute a USDC/USDT -> PIX withdrawal using a previously created payout quote. Args:
Returns the payout_id and status. |
| ashar_list_payoutsB | List withdrawal transactions for the tenant, newest first. Args:
Returns a paginated list with total count. |
| ashar_get_payoutA | Get details of a single withdrawal by its payout_id. Args:
Returns live status (queries BlindPay when possible) plus the fee record. |
| ashar_execute_transferA | Transfer stablecoins from a BlindPay wallet to an external address (creates a quote and executes in one call). Args:
Returns the transfer_id, status, tx_hash, and amounts. |
| ashar_list_transfersB | List crypto transfers for the tenant, newest first. Args:
Returns a paginated list with total count. |
| ashar_get_transferA | Get details of a single crypto transfer by its transfer_id. Args:
Returns live status plus on-chain tx_hash when available. |
| ashar_list_walletsA | List the tenant's custodial wallets with their balances. No arguments. Returns an array of wallets (id, name, network, address, token, balance). |
| ashar_get_wallet_balanceA | Get the balance of a single custodial wallet. Args:
Returns available, total, pending, and token. |
| ashar_create_walletB | Create a new custodial wallet for the tenant. Args:
Returns the created wallet. |
| ashar_list_bank_accountsA | List the tenant's PIX/TED bank accounts. No arguments. Returns an array of bank_accounts (id, bank_name, pix_key, status). |
| ashar_create_bank_accountB | Register a PIX/TED bank account for the tenant. Args:
Returns the created bank account. |
| ashar_delete_bank_accountB | Remove a PIX/TED bank account. Args:
Returns { deleted: true }. |
| ashar_get_daily_statsA | Get today's volume and platform fees for the tenant across payins and payouts. No arguments. Returns count, volume_brl, and platform_fee_brl broken down by payin/payout plus the day total. |
| ashar_get_monthly_statsA | Get the current month's volume and platform fees for the tenant across payins and payouts. No arguments. Returns count, volume_brl, and platform_fee_brl broken down by payin/payout plus the month total. |
| ashar_get_fee_ratesA | Get the current platform fee rates and limits applied to the tenant. No arguments. Returns the tenant fees (payin/payout/transfer spreads and fixed fees), the end-user markup (user_markup), and daily/monthly volume limits in BRL. |
| ashar_list_customersA | List customers (KYC/KYB) on the tenant's instance. Args (all optional): limit, offset, starting_after, ending_before, full_name, customer_name, status, customer_id, country. Returns an array of customers. |
| ashar_create_customerB | Create a customer (individual or business) for KYC/KYB. Args:
Returns the created customer. |
| ashar_get_customerB | Get a customer by id. Args:
Returns the customer details. |
| ashar_update_customerB | Update a customer by id. Args:
Returns the updated customer. |
| ashar_delete_customerB | Delete a customer by id. Args:
Returns 204 No Content on success. |
| ashar_list_customer_bank_accountsB | List a customer's bank accounts. Args:
Returns an array of bank_accounts. |
| ashar_create_customer_bank_accountB | Add a bank account to a customer. Args:
Returns the created bank account. |
| ashar_delete_customer_bank_accountB | Remove a customer's bank account. Args:
Returns 204 No Content on success. |
| ashar_list_customer_walletsB | List a customer's blockchain wallets. Args:
Returns an array of blockchain_wallets. |
| ashar_create_customer_walletC | Add a blockchain wallet to a customer. Args:
Returns the created wallet. |
| ashar_delete_customer_walletB | Remove a customer's blockchain wallet. Args:
Returns 204 No Content on success. |
| ashar_list_customer_virtual_accountsB | List a customer's virtual accounts. Args:
Returns an array of virtual_accounts. |
| ashar_create_customer_virtual_accountC | Create a virtual account for a customer. Args:
Returns the created virtual account. |
| ashar_list_customer_custodial_walletsB | List a customer's custodial (wallet) wallets. Args:
Returns an array of curated wallets. |
| ashar_get_customer_custodial_walletB | Get a single custodial wallet by customer id and wallet id. Args:
Returns the curated wallet. |
| ashar_get_customer_custodial_wallet_balanceB | Get the balance of a customer's custodial wallet. Args:
Returns the sanitized balance (available/total/pending/token). |
| ashar_create_customer_custodial_walletC | Create a custodial (wallet) for a customer. Args:
Returns the created wallet. |
| ashar_delete_customer_custodial_walletB | Remove a customer's custodial wallet. Args:
Returns 204 No Content on success. |
| ashar_list_customer_offramp_walletsA | List a customer's offramp wallets (crypto settlement wallets for a bank account). Args:
Returns an array of offramp_wallets. |
| ashar_get_customer_offramp_walletB | Get a single offramp wallet by id. Args:
Returns the curated offramp wallet. |
| ashar_create_customer_offramp_walletC | Create an offramp wallet for a customer's bank account. Args:
Returns the created offramp wallet. |
| ashar_list_partner_feesA | List the tenant's partner fee schedules (spread/fixed fees applied on payins and payouts). No arguments. Returns a sanitized list of partner_fees. |
| ashar_get_partner_feeB | Get a single partner fee schedule by id. Args:
Returns the sanitized fee schedule. |
| ashar_create_partner_feeB | Create a partner fee schedule for the tenant. Args:
Returns the created partner fee. |
| ashar_delete_partner_feeA | Remove a partner fee schedule by id. Args:
Returns 204 No Content on success. |
| ashar_upload_payoutB | Upload a file (e.g. payout supporting document) to the tenant's instance. Args:
The server stores the binary and returns the sanitized upload id/details. |
| ashar_provision_test_tenantA | Create a sandbox tenant with a fresh X-Ashar-Tenant-Key. This is an ADMIN operation (public endpoint on the API). Args:
Returns the provisioned tenant, its minted api_key, and base_url. |
| ashar_list_test_tenantsA | List all provisioned sandbox tenants. ADMIN operation. No arguments. Returns the list of sandbox_tenants with their API key prefixes. |
| ashar_get_tenant_credentialsA | List the (masked) upstream credentials metadata of a tenant. ADMIN operation. The upstream API key is never exposed. Args:
Returns credential metadata (instance_id, api_key_prefix, receiver_id, is_active). |
| ashar_rotate_tenant_credentialsA | Create or rotate the upstream credential of a tenant. ADMIN operation. Args:
Returns the rotated credential metadata. |
| ashar_delete_tenant_credentialsA | Remove the upstream credentials of a tenant (falls back to the global credential). ADMIN operation. Args:
Returns { status: 'deleted', count }. |
| ashar_get_user_markupA | Get the end-user markup (2nd spread layer on top of the Ashar margin) for a tenant. ADMIN operation. This markup is Ashar-specific — the upstream only sees the Ashar partner, so the end-user spread is configured locally. Args:
Returns user_markup with payin_spread_percent and payout_spread_percent. |
| ashar_set_user_markupA | Set the end-user markup (2nd spread layer on top of the Ashar margin) for a tenant. ADMIN operation. This markup is Ashar-specific — the upstream only sees the Ashar partner, so the end-user spread is configured locally. Both rates apply multiplicatively on top of the Ashar spread when quoting. Args:
Returns the updated user_markup. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 55 tools
Most tools are distinguishable by resource and action, but the wallet surface is crowded with overlapping concepts such as custodial wallets, blockchain wallets, and offramp wallets at both tenant and customer levels. An agent can confuse list_wallets, list_customer_wallets, list_customer_custodial_wallets, and list_customer_offramp_wallets without careful reading. Quote vs execute vs FX-rate tools are better separated.
All tools use the same ashar_ prefix and a consistent snake_case verb_noun pattern (list_, get_, create_, update_, delete_, execute_, etc.). Minor semantic quirks like upload_payout do not break the naming convention.
With 55 tools, the surface is far beyond a well-scoped MCP tool set and exceeds the 50-tool threshold for extreme mismatch. While the API domain is broad, many operations could be consolidated or scoped into narrower servers.
The server covers core exchange workflows well: customer CRUD, bank accounts, wallets, payins and payouts with quote/execute lifecycles, transfers, fees, stats, FX, and admin credential management. Some lifecycle gaps remain, such as missing delete/get operations for virtual accounts and offramp wallet deletion, but core operations are largely covered.