Skip to main content
Glama
matteoantoci

MCP Bitpanda Server

README.md
# MCP Bitpanda Server

[![smithery badge](https://smithery.ai/badge/@matteoantoci/mcp-bitpanda)](https://smithery.ai/server/@matteoantoci/mcp-bitpanda)

A Model Context Protocol (MCP) server that exposes tools for interacting with the Bitpanda API. This server allows programmatic access to Bitpanda features like trades, wallets, and transactions via the MCP protocol.

<a href="https://glama.ai/mcp/servers/@matteoantoci/mcp-bitpanda">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@matteoantoci/mcp-bitpanda/badge" alt="Bitpanda Server MCP server" />
</a>


## Prerequisites

- Node.js (v18 or later recommended)
- npm (comes with Node.js)
- A Bitpanda API Key (set as `BITPANDA_API_KEY` environment variable)
- (Optional) MCP-compatible client or runner (e.g., VSCode extension, CLI)

## Setup

1. **Clone the repository or ensure you are in the project directory.**

2. **Install dependencies:**
   ```bash
   npm install
   ```

3. **Build the server:**
   ```bash
   npm run build
   ```
   This will create a `build` directory with the compiled JavaScript code.

### Installing via Smithery

To install MCP Bitpanda Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@matteoantoci/mcp-bitpanda):

```bash
npx -y @smithery/cli install @matteoantoci/mcp-bitpanda --client claude
```

## Running the Server

- **Directly:**
  ```bash
  node build/index.js
  ```
  or, if you have a start script:
  ```bash
  npm run start
  ```

- **Via MCP runner:**
  Configure your MCP client to run the server using stdio transport.
  Example MCP settings entry:
  ```json
  "mcp-bitpanda": {
    "transportType": "stdio",
    "command": "node",
    "args": [
      "/path/to/mcp-bitpanda/build/index.js"
    ]
    // Add environment variables, e.g., for the API key
    "environmentVariables": {
      "BITPANDA_API_KEY": "YOUR_BITPANDA_API_KEY" // Replace with your actual API key or use a secure method to provide it
    }
    // ... other optional settings ...
  }
  ```

## Available Tools

-   `get_asset_info`: Retrieves detailed information for a specific asset by its symbol (e.g., BTC, XAU).
    -   Parameters: `symbol` (string, required)
    -   Note: This tool does not require an API key.

-   `get_ohlc`: Retrieves OHLC (Open/High/Low/Close) data for a specific asset, fiat currency, and timeframe.
    -   Parameters:
        -   `symbol` (string, required): The trading symbol.
        -   `fiatCurrency` (string, required): The fiat currency (e.g., USD, EUR).
        -   `timeframe` (string, required): Either "day" or "week".
    -   Note: This tool does not require an API key.


-   `list_trades`: Lists all user's trades from the Bitpanda API. Newest trades come first. Response is cursor paginated.
    -   Parameters:
        -   `type` (string, optional): One of `buy` or `sell`.
        -   `cursor` (string, optional): Id of the last known trade by the client. Only trades after this id are returned. Empty or missing cursor parameter will return trades from the start.
        -   `page_size` (integer, optional): Size of a page for the paginated response.

-   `list_asset_wallets`: Lists all user's asset wallets grouped by asset type from the Bitpanda API.
    -   Parameters: None.

-   `list_fiat_wallets`: Lists all user's fiat wallets from the Bitpanda API.
    -   Parameters: None.

-   `list_fiat_transactions`: Lists all user's fiat transactions from the Bitpanda API. Newest fiat transactions come first. Response is cursor paginated.
    -   Parameters:
        -   `type` (string, optional): buy, sell, deposit, withdrawal, transfer, refund.
        -   `status` (string, optional): pending, processing, finished, canceled.
        -   `cursor` (string, optional): Id of the last known fiat transaction by the client. Only fiat transactions after this id are returned. Empty or missing cursor parameter will return fiat transactions from the start.
        -   `page_size` (integer, optional): Size of a page for the paginated response.

-   `list_crypto_wallets`: Lists all user's crypto wallets from the Bitpanda API.
    -   Parameters: None.

-   `list_crypto_transactions`: Lists all user's crypto transactions from the Bitpanda API. Newest crypto transactions come first. Response is cursor paginated.
    -   Parameters:
        -   `type` (string, optional): One of `buy`, `sell`, `deposit`, `withdrawal`, `transfer`, `refund` or `ico`.
        -   `status` (string, optional): One of `pending`, `processing`, `unconfirmed_transaction_out`, `open_invitation`, `finished` or `canceled`.
        -   `cursor` (string, optional): Id of the last known crypto transaction by the client. Only crypto transactions after this id are returned. Empty or missing cursor parameter will return crypto transactions from the start.
        -   `page_size` (integer, optional): Size of a page for the paginated response.

-   `list_commodity_transactions`: Lists all user's commodity transactions from the Bitpanda API. Newest commodity transactions come first. Response is cursor paginated.
    -   Parameters:
        -   `cursor` (string, optional): Id of the last known commodity transaction by the client. Only commodity transactions after this id are returned. Empty or missing cursor parameter will return commodity transactions from the start.
        -   `page_size` (integer, optional): Size of a page for the paginated response.

## Extending

To add more Bitpanda API endpoints as tools, implement a new tool file in `src/tools/` and register it in `src/tools/index.ts`.

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation4/5

The tools are mostly distinct, focusing on different resource types like assets, wallets, transactions, and trades. However, there is some potential overlap between 'list_trades' and the transaction tools (commodity, crypto, fiat), as trades might be a subset or related to transactions, which could cause minor confusion without additional context.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' or 'list_' prefixes, using snake_case throughout. This predictability makes it easy for agents to understand and select tools based on their naming conventions.

Tool Count5/5

With 8 tools, the server is well-scoped for a Bitpanda API integration, covering key areas like asset information, wallets, transactions, and trades. Each tool serves a clear purpose without being overly broad or too limited for the domain.

Completeness3/5

The tools provide good read/list coverage for assets, wallets, transactions, and trades, but there are notable gaps in CRUD operations. For example, there are no tools for creating, updating, or deleting resources (e.g., executing trades or modifying wallets), which limits the server's functionality to querying only.

Maintenance

ActivityInactive
ResponsivenessNo issues