mcp-exchange-gateway-bitpanda
Standardized Model Context Protocol (MCP) interface providing automated control over Bitpanda financial operations, encompassing trade execution, asset custody management, and historical transaction retrieval.
Author

matteoantoci
Quick Info
Actions
Tags
MCP Bitpanda Service Adapter
An implementation of a Model Context Protocol (MCP) endpoint designed to facilitate secure, programmatic interaction with the comprehensive functionality exposed by the Bitpanda trading and asset management platform via its official API.
Prerequisites for Operation
To successfully deploy and utilize this adapter, the following dependencies must be satisfied:
- Runtime Environment: Node.js, version 18 or superior is strongly recommended.
- Package Manager: npm, typically bundled with Node.js installations.
- Authentication Credentials: A valid Bitpanda API access key must be configured, usually injected via the
BITPANDA_API_KEYenvironmental variable. - Execution Host: An MCP-compliant intermediary or client environment (such as a specialized CLI or IDE extension) for communication.
Deployment Procedure
-
Source Acquisition: Obtain the project source code (either via cloning or direct download).
-
Dependency Resolution: Install necessary project packages: bash npm install
-
Compilation Step: Execute the build script to transform source code into deployable assets: bash npm run build
This process generates the executable artifacts within the ./build directory.
Installation via Smithery Ecosystem
Automated setup for environments compatible with Claude Desktop can be managed using the Smithery command-line utility:
bash npx -y @smithery/cli install @matteoantoci/mcp-bitpanda --client claude
Launching the Adapter
Local Execution
Initiate the service directly using the compiled output: bash node build/index.js
Alternatively, utilize the defined start script if present: bash npm run start
Integration with MCP Runner
Configure your host MCP client to establish communication using the standard input/output (stdio) transport mechanism. A typical configuration snippet might look like this:
"mcp-bitpanda": { "transportType": "stdio", "command": "node", "args": [ "/path/to/mcp-bitpanda/build/index.js" ] "environmentVariables": { "BITPANDA_API_KEY": "YOUR_SECRET_API_KEY_HERE" } }
Exposed Functional Modules (Tools)
-
get_asset_info: Fetches comprehensive specification details for a cryptocurrency or commodity identified by its ticker symbol (e.g., 'BTC', 'ETH').- Arguments:
symbol(String, Mandatory) - Note: Access to public market data does not necessitate API key authentication.
- Arguments:
-
get_ohlc: Queries time-series data points (Open, High, Low, Close) for a specified financial instrument over a defined interval.- Arguments:
symbol(String, Mandatory): Instrument identifier.fiatCurrency(String, Mandatory): Base currency denomination (e.g., EUR, USD).timeframe(String, Mandatory): Granularity; restricted to "day" or "week".
- Note: Public data retrieval only.
- Arguments:
-
list_trades: Fetches a paginated registry of the user's executed trading activities, sorted by most recent first.- Arguments:
type(String, Optional): Filter by transaction intent (buyorsell).cursor(String, Optional): Pagination token pointing to the last retrieved item's identifier, enabling continuation from that point.page_size(Integer, Optional): Desired quantity of records per response page.
- Arguments:
-
list_asset_wallets: Retrieves an inventory summary of all holdings across various crypto asset custody accounts.- Arguments: None.
-
list_fiat_wallets: Returns the current balance status for all fiat currency holding accounts.- Arguments: None.
-
list_fiat_transactions: Provides a chronologically reversed record of all fiat movements (deposits, sales, withdrawals, etc.).- Arguments:
type(String, Optional): Categorization of the fiat action (e.g.,deposit,withdrawal).status(String, Optional): Current state of the transaction (finished,pending, etc.).cursor(String, Optional): Token for resuming paginated queries.page_size(Integer, Optional): Record limit per page.
- Arguments:
-
list_crypto_wallets: Yields a ledger detailing the balances held in cryptocurrency custody containers.- Arguments: None.
-
list_crypto_transactions: Outputs a time-sequenced history of all cryptocurrency movements (buys, transfers, etc.).- Arguments:
type(String, Optional): Filter by crypto operation type (e.g.,deposit,transfer,ico).status(String, Optional): Operational status filter.cursor(String, Optional): Continuation marker for list retrieval.page_size(Integer, Optional): Page volume setting.
- Arguments:
-
list_commodity_transactions: Lists historical exchanges or movements pertaining to digital commodities.- Arguments:
cursor(String, Optional): Pagination identifier for sequential access.page_size(Integer, Optional): Maximum entries per response payload.
- Arguments:
Extending Functionality
To incorporate additional capabilities mapped to the Bitpanda REST API, developers should author a new tool definition file within the src/tools/ directory and subsequently register its interface within src/tools/index.ts.
