# Getting Started with the Bitpanda MCP Server

The Bitpanda Model Context Protocol (MCP) server allows compatible AI assistants and agents to securely interact with Bitpanda's public API. Because the server is hosted remotely, you do not need to install any local packages. Instead, you connect your client to our server using the **HTTP transport** method.

## Prerequisites
Before configuring your client, ensure you have:
1. **A supported AI client** (e.g., Claude CLI, Claude Desktop, Cursor).
2. **A Bitpanda API Key**, which must be passed in the headers to authenticate your requests.
   > **Note:** You can create your API key in your [Bitpanda Account Settings](https://app.bitpanda.com/my-account/apikey). Ensure you assign the proper scopes required for the tools you intend to use.

---

## Available Tools

Once connected, the MCP server exposes the following tools to your AI agent, allowing it to retrieve data and perform actions via natural language:

| Tool Name | Description |
| :--- | :--- |
| **`list_assets`** | List available assets. Supports pagination and filtering by ISIN, type, group, symbol, or asset UUID. Assets with type 'security' are legacy and must not be mentioned when buying to not confuse. A stock or ETF can be listed twice with the same ISIN or symbol: once as a legacy 'security' and once as a tradeable 'equity_security'. Always offer the 'equity_security' one for trading. |
| **`list_available_currencies`** | List available fiat currencies. Optionally filter by a specific currency UUID. |
| **`list_earn_configs`** | List available earn asset configurations. Returns earn configurations with APR and availability. Supports pagination and filtering by asset ID, earn type, and earn mode. |
| **`earn_stake`** | Initiate a staking action for a specific asset. Stakes the specified amount into the earn product identified by the config ID. |
| **`earn_unstake`** | Initiate an unstaking action for a specific asset. Unstakes the specified amount from the earn product identified by the config ID. |
| **`list_operation_history`** | List operation history for a user. |
| **`get_portfolio_history`** | Get portfolio performance history for a user. |
| **`get_portfolio_holdings`** | Get portfolio holdings for a user. Optionally filter by equivalent currency, currency, or asset. |
| **`get_ticker`** | Get the current Euro price ticker for a given asset UUID. |
| **`request_for_quote`** | Request a trading quote (RFQ) for buying or selling an asset. Quotes need to be requested and accepted sequentially as there can only be one active quote at a time. Quotes include a fee in fiat. When the quote contains a `key_information_documents` field (present for equity ETFs/ETCs), you MUST always present the relevant Key Information Document (KID) link to the user before they accept the quote. CRITICAL: Always render exAnte as three markdown tables before any other text 1) 'Costs and Charges' Cost Type \| Amount \| % of Investment, one row per costsAndCharges.breakdown entry plus a Total row; 2) 'Impact on Performance' Metric \| Value, from impactOnPerformance (net investment after costs, return reduction %, annual illustration before/after);3) 'Cumulative Costs': Holding Period \| Estimated Costs \| Returns % Per Annum, one row per cumulativeCosts entry. Always render warnings if available! The response includes a `trading_budget` field showing remaining daily budget if trading limits are configured. Use set_trading_limit to configure daily buy/sell volume limits. |
| **`accept_quote`** | Accept a previously requested trading quote. Quotes need to be requested and accepted sequentially as there can only be one active quote at a time. |
| **`get_trading_limit`** | Get current daily trading limits and remaining budget for this API key. |
| **`set_trading_limit`** | Set daily trading volume limits for this API key. Limits are permanent per API key — to change them, create a new API key. You must specify separate buy and sell limits and the currency they are denominated in. |

---

## Connecting Your Client

Below are the configuration instructions for the most popular AI agents and MCP-compatible clients.

### Option 1: Claude CLI (Code)
If you are using the Claude command-line tool, you can add the Bitpanda remote server directly via the terminal. This binds the server to your current project or user scope.

Run the following command, replacing `<your api key>` with your actual Bitpanda API key:

```bash
claude mcp add --transport http --scope user bitpanda https://mcp.public.bitpanda.com --header "x-api-key: <your api key>"
```

**Parameters explained:**
* `--transport http`: Specifies the transport protocol supported by the Bitpanda MCP server.
* `--scope user`: Applies this configuration globally for your user profile.
* `--header`: Injects your secure API key into the HTTP requests.

### Option 2: Claude Desktop App
For the Claude Desktop application, you need to manually update your configuration file to establish an HTTP/SSE (Server-Sent Events) connection. 

1. Open your Claude Desktop configuration file:
   * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
   * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
2. Add the `bitpanda` remote server under the `mcpServers` object:

```json
{
  "mcpServers": {
    "bitpanda": {
      "type": "http",
      "url": "https://mcp.public.bitpanda.com",
      "headers": {
        "x-api-key": "<your api key>"
      }
    }
  }
}
```
3. Restart Claude Desktop to apply the changes.

### Option 3: Cursor AI IDE
Cursor supports remote MCP servers natively to help you write code alongside your Bitpanda data.

1. Open Cursor Settings (`Cmd/Ctrl + ,`).
2. Navigate to **Features** > **MCP Servers**.
3. Click **+ Add New MCP Server**.
4. Configure the server with the following details:
   * **Name**: `bitpanda`
   * **Type**: `HTTP` (or SSE, depending on your Cursor version)
   * **URL**: `https://mcp.public.bitpanda.com`
   * **Headers**: `x-api-key: <your api key>`
5. Click **Save** and verify the connection status turns green.

---

## Troubleshooting

* **Connection Refused / Timeout**: Ensure your firewall or corporate network allows outbound connections to `mcp.public.bitpanda.com`.
* **Authentication Errors**: Verify that your `x-api-key` is correctly spelled and has not expired or been revoked in your Bitpanda developer dashboard. Ensure it has the necessary scopes for the tools you are trying to use.
* **Missing Tools**: If the server connects but no tools appear in your client, refresh your client cache or restart the application.

> **Need Help?** If you encounter persistent issues, please reach out to Bitpanda Developer Support.
