BananaCrystal MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Enable verbose debug logging | false |
| BANANACRYSTAL_API_KEY | Yes | Your API key from agents.bananacrystal.com/account. Sandbox keys start with bc_test_ (no real money). Live keys have no prefix. | |
| BANANACRYSTAL_API_URL | No | Override API endpoint (for MCP tools). Rate service uses /api/v1/mcp/rate/* endpoints on same domain. | https://agentic.bananacrystal.com/mcp |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Health check tool that returns pong |
| get_server_infoB | Returns basic server information |
| echoA | Echoes the input message back to the caller |
| get_my_profileA | Get your BananaCrystal profile including user ID, wallets, and account details |
| get_balancesA | Get Hedera account balances for all tokens or a specific token |
| request_transfer_otpA | Step 1: Request an OTP code to authorize a token transfer. An email will be sent with the code. |
| transfer_tokensA | Step 2: Execute the token transfer. If OTP is enabled on your key (default), provide otpCode and transactionRef from request_transfer_otp. If OTP is disabled, these fields are not required. |
| swap_currencyB | Swap between two Hedera tokens. Exchange rate calculated automatically. |
| estimate_swap_feesA | Estimate fees for a currency swap before executing |
| get_exchange_rateA | Get current buy/sell exchange rates for a currency |
| list_supported_currenciesA | List all supported currencies and tokens on BananaCrystal |
| list_available_tokensA | List all available Hedera tokens for the platform |
| get_transaction_historyB | Get your transaction history with filtering options |
| get_my_limitsA | Get your API key limits and current usage |
| update_my_agent_settingsA | Update agent approval settings (require_human_approval, require_otp, callback_url) |
| initiate_kycA | Initiate KYC verification for a user. Returns a Sumsub access token. |
| get_kyc_statusB | Get KYC verification status for a user |
| initiate_depositB | Initiate a fiat deposit via Brale. Requires verified KYC. |
| request_withdrawalA | Request a fiat withdrawal via Brale. Requires verified KYC. |
| get_deposit_statusA | Get the status of a fiat deposit by transfer ID |
| get_withdrawal_statusA | Get withdrawal requests for a user via Brale |
| list_offersA | Browse the prediction market. Returns active offers with trade stats. |
| get_offerA | Get full details of a single offer including trade stats and time remaining |
| get_my_offersA | Get all offers created by a specific user |
| create_offerA | Create a prediction market offer. The creator locks totalAmount in escrow. |
| update_offerA | Edit an existing offer. Only allowed when the offer has no trades yet. |
| delist_offerA | Delist (deactivate) your own offer from the marketplace. Releases locked escrow. |
| delete_offerA | Permanently delete your own offer. Blocked if the offer has active trades. |
| list_tradesA | List all trades on the platform. Filter by trade type or state. |
| get_tradeA | Get full details of a single trade including the parent offer stats |
| get_my_tradesA | Get all trades for a user, including trades they created and trades on offers they own |
| engage_offerC | Engage (trade against) an open offer. The trader locks the same totalAmount in escrow. |
| cancel_tradeA | Cancel an active trade and release your locked escrow. Only possible while trade is active. |
| get_escrow_balancesA | Get a user's escrow balance breakdown, including total, available, and locked amounts |
| get_escrow_historyB | Get a user's full escrow transaction history, covering locks, releases, wins, losses, and fees |
| reset_sandbox_balanceA | Reset your sandbox account balances back to the default pre-seeded amounts. Only works with sandbox keys (bc_test_*). |
| request_agent_transactionA | Request a transaction on behalf of another user. They will receive an email to approve. |
| check_approval_statusB | Check the status of a pending agent transaction approval |
| execute_approved_transactionB | Execute a transaction after it has been approved |
| get_agent_configB | Look up another user's agent configuration |
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 40 tools
Most tools clearly target distinct resources and actions, but list_supported_currencies and list_available_tokens are nearly identical in purpose, and delist_offer vs delete_offer could confuse agents. These minor overlaps prevent a perfect score.
All tool names follow a consistent snake_case verb_noun pattern (get_, list_, create_, update_, delete_, request_, etc.). Even exceptions like ping and echo are simple verbs that fit the style. No mixed casing or arbitrary names.
With 40 tools, the server exposes a very large surface area. Although the platform spans multiple subsystems, this count far exceeds the typical well-scoped range and will burden agents with selection complexity.
The tool set provides comprehensive lifecycle coverage for offers (create/read/update/delete/delist), trades (engage/cancel/list), escrow (balances/history), transfers, KYC, fiat deposits/withdrawals, and agent transactions. No obvious critical gaps or dead ends.