# Mcp Server Bananacrystal

> Official MCP server for Agent payment infrastructure for AI agents. MCP server for autonomous stablecoin transfers, currency swaps & agent wallets. Works with Claude, LangChain, CrewAI. Settled on Hedera.

- **Type:** MCP server
- **Install:** `agentstack add mcp-bananacrystal-mcp-server-bananacrystal`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [BananaCrystal](https://agentstack.voostack.com/s/bananacrystal)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [BananaCrystal](https://github.com/BananaCrystal)
- **Source:** https://github.com/BananaCrystal/mcp-server-bananacrystal
- **Website:** https://agents.bananacrystal.com

## Install

```sh
agentstack add mcp-bananacrystal-mcp-server-bananacrystal
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Agent Payment Infrastructure

### The MCP Server That Gives AI Agents a Wallet

_One endpoint. Every payment capability. The financial primitive of the agent economy._

[](https://agents.bananacrystal.com/account)
[](https://www.npmjs.com/package/@bananacrystal/mcp-server)
[](https://opensource.org/licenses/MIT)
[](https://hedera.com)
[](https://modelcontextprotocol.io)

**Works with Claude · LangChain · CrewAI · AutoGPT · Cursor · Windsurf · Any MCP client**

> _"The agent economy is forming now. Developers who integrate payment rails first_
> _will define how AI agents transact. This is that infrastructure."_

---

**If this project helps you build payment-capable agents, please star the repo on [GitHub](https://github.com/BananaCrystal/mcp-server-bananacrystal) because it helps other developers find it.**

[](https://github.com/BananaCrystal/mcp-server-bananacrystal)

> **How to star:** Open the repo, then click the ⭐ **Star** button in the top-right corner (free GitHub account required).

---

## What this is

**BananaCrystal** provides **agent payment infrastructure**, which is the missing financial layer of the AI agent stack.

Traditional payment rails (banks, card networks, legacy APIs) were built for humans: human identity, human authorization, human operating hours. When AI agents try to use them they fail architecturally. Fixed fees make micropayments economically impossible, KYC requirements are difficult for agents to satisfy, and 3 to 5 day settlement windows break autonomous workflows.

This MCP server is the alternative. **One configuration line gives any AI agent:**

- An **agent wallet** with a real stablecoin balance
- **Autonomous payment authority** within operator-defined spending limits
- **150+ currencies**, including USDb, EURb, NGNb, GBPb, CADb, and more
- **On-chain settlement in under 5 seconds** on Hedera
- An **immutable audit trail** where every agent action is recorded
- **Real-time currency data** via the dedicated rate service for current rates, historical data, batch conversions, and statistics

This is not a product feature. This is a new category: **autonomous payments**, the financial primitive of the agent economy built for machines from first principles.

---

## Why AI agents need their own payment rails

|                         | Traditional rails                     | BananaCrystal                                     |
| ----------------------- | ------------------------------------- | ------------------------------------------------- |
| **Fee per transaction** | $0.30 + 2.9% (Stripe) · $15–35 (wire) | **0.3% transfers · 0.5% swaps · free for reads**  |
| **Settlement speed**    | 1–5 business days                     | **Under 5 seconds, absolute finality**            |
| **Identity model**      | Human KYC required                    | **Programmatic Agent ID**                         |
| **Authorization**       | Human approval per transaction        | **Autonomous programmatic policy**                |
| **Operating hours**     | Banking hours, weekdays               | **24/7/365**                                      |
| **Micropayments**       | Impossible at $0.30/tx                | **Native and sub-cent viable**                    |
| **Spending controls**   | Card limit only                       | **Per-tx caps, daily limits, allowlists, scopes** |
| **Audit trail**         | Monthly statements                    | **Immutable on-chain, machine-readable**          |

> 1,000 transactions/day on Stripe: **$109,500/year** in fees alone.
> 1,000 transactions/day on BananaCrystal: **$365/year**.
> The agent economy runs on micropayments. The infrastructure fee must be microscopic or the economics will collapse entirely.

---

## Quick start: A working agent in 5 minutes

**Step 1: Install**

```bash
npm install -g @bananacrystal/mcp-server
```

**Step 2: Get a free API key**

Sign up at **[agents.bananacrystal.com](https://agents.bananacrystal.com)** → **[Account → API Keys](https://agents.bananacrystal.com/account)** → Create MCP key.

**Fees:** Transfers: 0.3% of amount · Swaps: 0.5% of amount · Read-only operations (balances, history, rates): free. Rate service (historical data, batch conversions, statistics): free with "rate" scope key.

> **Start with a Sandbox key** for fake money, zero risk, and full functionality. Sandbox keys start with `bc_test_` so you can always tell them apart from live keys. Switch to a Live key (no prefix) when ready.

**Step 3: Pick your agent framework**

Sandbox mode: Test without real money

Create a **Sandbox key** at **[agents.bananacrystal.com/account](https://agents.bananacrystal.com/account)** → API Keys → Create Sandbox Key.

Sandbox keys start with `bc_test_`. This prefix is how you and the package know it's a test key with no real money. Live keys have no prefix. The package automatically routes each key to the correct endpoint.

```json
{
  "mcpServers": {
    "bananacrystal": {
      "command": "bananacrystal-mcp",
      "env": {
        "BANANACRYSTAL_API_KEY": "bc_test_your_sandbox_key_here"
      }
    }
  }
}
```

**Sandbox behaviour:**

- Pre-seeded balances: 10,000 USDb · 5,000,000 NGNb · 50,000 GHSb · 1,000,000 KESb · 150,000 ZARb
- All 40 MCP payment tools available
- Rate service endpoints available at `/mcp/sandbox/rate/*` (no auth needed)
- OTP codes are returned directly in the API response, so no email is sent
- KYC always approved
- Spend limits unlimited
- Reset balances anytime with the `reset_sandbox_balance` tool

Switch to a live key when you're ready. Same tools, same config, real money and live rates.

Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "bananacrystal": {
      "command": "bananacrystal-mcp",
      "env": {
        "BANANACRYSTAL_API_KEY": "bc_live_your_key_here"
      }
    }
  }
}
```

Restart Claude Desktop. Then ask it:

```
"Check my BananaCrystal balance"
"Transfer 50 USDb to 0.0.12345 as payment for the data report"
"Swap 100 USDb to NGNb at the current rate"
"Show my last 10 transactions"
```

Your agent now has a payment wallet.

Cursor / Windsurf / Cline

Add to your IDE MCP config:

```json
{
  "mcpServers": {
    "bananacrystal": {
      "command": "bananacrystal-mcp",
      "env": {
        "BANANACRYSTAL_API_KEY": "bc_live_your_key_here"
      }
    }
  }
}
```

Your coding agent can now pay for API calls, data feeds, and compute per use.

LangChain (Python)

```python
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
import asyncio, os

async def create_payment_agent():
    client = MultiServerMCPClient({
        "bananacrystal": {
            "command": "bananacrystal-mcp",
            "env": {
                "BANANACRYSTAL_API_KEY": os.getenv("BANANACRYSTAL_API_KEY")
            },
            "transport": "stdio"
        }
    })
    tools = await client.get_tools()
    llm = ChatOpenAI(model="gpt-4o", temperature=0)
    prompt = ChatPromptTemplate.from_messages([
        ("system", """You are a financial operations AI agent with an
        agent wallet on BananaCrystal agent payment infrastructure.
        Always check balance before large transfers.
        Always include a memo with every payment.
        Report the transaction ID for every settled payment."""),
        ("human", "{input}"),
        MessagesPlaceholder(variable_name="agent_scratchpad")
    ])
    agent = create_openai_tools_agent(llm, tools, prompt)
    return AgentExecutor(agent=agent, tools=tools, verbose=True)

agent = asyncio.run(create_payment_agent())
result = agent.invoke({
    "input": "Check balance, then pay 12.50 USDb to vendor:data-provider-01 for today's market data report"
})
# Agent checks balance → verifies limits → requests OTP → executes transfer
# Settlement confirmed on Hedera in 3.2s · txId: 0.0.789@1711234567
```

CrewAI

```python
from crewai import Agent, Task, Crew
from langchain_mcp_adapters.client import MultiServerMCPClient
import asyncio, os

async def setup_payment_tools():
    client = MultiServerMCPClient({
        "bananacrystal": {
            "command": "bananacrystal-mcp",
            "env": {"BANANACRYSTAL_API_KEY": os.getenv("BANANACRYSTAL_API_KEY")},
            "transport": "stdio"
        }
    })
    return await client.get_tools()

payment_tools = asyncio.run(setup_payment_tools())

treasury_agent = Agent(
    role="Autonomous Treasury Manager",
    goal="Monitor stablecoin balances and execute payments within defined limits",
    backstory="""You are an AI-native finance agent on the BananaCrystal
    agent payment infrastructure. You manage a multi-currency stablecoin
    treasury, executing transfers, swaps, and vendor payments autonomously.""",
    tools=payment_tools,
    verbose=True
)

treasury_task = Task(
    description="""Check USDb balance. If above 10,000 USDb, swap 5,000 USDb
    to EURb. Then pay vendor invoice of 500 USDb to vendor:accounting-service-01.""",
    agent=treasury_agent,
    expected_output="Balance checked, swap executed, vendor paid. All transaction IDs logged."
)

result = Crew(agents=[treasury_agent], tasks=[treasury_task]).kickoff()
```

AutoGPT

```yaml
plugins:
  - name: BananaCrystal Payments
    package: "@bananacrystal/mcp-server"
    description: >
      Agent payment infrastructure with autonomous stablecoin transfers, 
      currency swaps, and fiat operations on the Hedera blockchain.
    env:
      BANANACRYSTAL_API_KEY: "${BC_API_KEY}"
```

---

## 40 production-ready payment tools

Every tool an agent needs for complete autonomous payment capability. All live. All guarded.

Read-only tools: Free and safe for any agent

| Tool                        | What it does                              |
| --------------------------- | ----------------------------------------- |
| `ping`                      | Health check                              |
| `get_server_info`           | Server version and environment            |
| `echo`                      | Echo a message                            |
| `get_my_profile`            | Your profile, wallets, and MCP key info   |
| `get_balances`              | Token balances (all or specific token)    |
| `get_exchange_rate`         | Live buy/sell rates for any currency      |
| `list_supported_currencies` | All supported stablecoins                 |
| `list_available_tokens`     | All Hedera token IDs                      |
| `get_transaction_history`   | Paginated transaction log with filters    |
| `get_my_limits`             | API key spending limits and current usage |
| `estimate_swap_fees`        | Calculate fees before swapping            |
| `get_agent_config`          | Look up another agent's payment config    |
| `check_approval_status`     | Status of a pending approval request      |
| `get_kyc_status`            | KYC verification status                   |
| `get_deposit_status`        | Fiat deposit status by transfer ID        |
| `get_withdrawal_status`     | Fiat withdrawal requests                  |
| `get_escrow_balances`       | Escrow balance breakdown                  |
| `get_escrow_history`        | Full escrow transaction history           |
| `list_offers`               | Browse prediction market offers           |
| `get_offer`                 | Single offer details                      |
| `get_my_offers`             | Your offers                               |
| `list_trades`               | Browse all trades                         |
| `get_trade`                 | Single trade details                      |
| `get_my_trades`             | Your trades                               |

Transfer tools (require transfer scope · fee: 0.3% of amount)

| Tool                   | What it does                                                            |
| ---------------------- | ----------------------------------------------------------------------- |
| `request_transfer_otp` | Step 1: Request OTP code (email in live, returned directly in sandbox) |
| `transfer_tokens`      | Step 2: Execute transfer with OTP                                      |

Swap tools (require swap scope · fee: 0.5% of amount)

| Tool            | What it does                               |
| --------------- | ------------------------------------------ |
| `swap_currency` | Swap between any two supported stablecoins |

Fiat tools (require fiat scope + KYC)

| Tool                 | What it does             |
| -------------------- | ------------------------ |
| `initiate_kyc`       | Start KYC verification   |
| `initiate_deposit`   | Deposit via ACH or wire  |
| `request_withdrawal` | Withdraw to bank account |

Offers & trades tools (require offers scope)

| Tool           | What it does                      |
| -------------- | --------------------------------- |
| `create_offer` | Create a prediction market offer  |
| `update_offer` | Edit an offer (before any trades) |
| `delist_offer` | Remove offer from marketplace     |
| `delete_offer` | Permanently delete offer          |
| `engage_offer` | Trade against an offer            |
| `cancel_trade` | Cancel an active trade            |

Agent-to-agent tools (require transfer scope)

| Tool                           | What it does                                    |
| ------------------------------ | ----------------------------------------------- |
| `request_agent_transaction`    | Request a transaction from another user's agent |
| `execute_approved_transaction` | Execute after approval                          |
| `update_my_agent_settings`     | Configure approval rules and webhook URL        |

Sandbox-only tools

| Tool                    | What it does                    |
| ----------------------- | ------------------------------- |
| `reset_sandbox_balance` | Reset fake balances to defaults |

---

## Backend rate service (separate from MCP tools)

Beyond the 40 MCP tools above, **BananaCrystal backend provides a separate rate service** for comprehensive currency exchange operations:

Rate service endpoints: Accessed via API with a rate scope key

The rate service is a **backend HTTP API**, not an MCP tool. It's available to agents via REST endpoints (not through this MCP server's tool interface):

| Endpoint | What it does |
| --- | --- |
| `GET /mcp/rate/currencies` | List all supported currencies |
| `GET /mcp/rate/current?from=USD&to=NGN` | Get current exchange rate between two currencies |
| `GET /mcp/rate/convert?from=USD&to=NGN&amount=100` | Convert amount from one currency to another |
| `POST /mcp/rate/batch-convert` | Convert multiple currency pairs in one request |
| `GET /mcp/rate/history?from=USD&to=NGN&startDate=...&endDate=...` | Get historical rates over a date range |
| `GET /mcp/rate/stats?from=USD&to=NGN&days=30` | Get rate statistics (high/low/average) for a period |

**How to use:** Create an API key with `rate` scope, then call these endpoints directly from your agent or backend:

```bash
# Get current rate
curl -H "x-api-key: bc_live_your_key_with_rate_scope" \
     "https://agentic.bananacrystal.com/api/v1/mcp/rate/current?from=USD&to=NGN"

# Response:
{
  "from": "USD",
  "to": "NGN",
  "rate": 1250.50,
  "timestamp": "2026-04-28T17:08:24Z"
}
```

**Note:** These are backend HTTP endpoints, not MCP tools. If you need real-time rate data in your agent workflows, integrate these endpoints directly into your agent logic rather than using the MCP tool interface.

**Sandbox testing:** Use `/mcp/sandbox/rate/*` endpoints (no authentication required) to test rate operations.

---

## Real-world agent economy use cases

Autonomous treasury management

```
Task:    "Monitor USDb balance. If above 50,000, swap 20% to EURb."

Flow:    get

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [BananaCrystal](https://github.com/BananaCrystal)
- **Source:** [BananaCrystal/mcp-server-bananacrystal](https://github.com/BananaCrystal/mcp-server-bananacrystal)
- **License:** MIT
- **Homepage:** https://agents.bananacrystal.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-bananacrystal-mcp-server-bananacrystal
- Seller: https://agentstack.voostack.com/s/bananacrystal
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
