Skip to main content
Glama
matteoantoci

MCP Bitpanda Server

MCP Bitpanda Server

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.

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)

Related MCP server: MCP YNAB Server

Setup

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

  2. Install dependencies:

    npm install
  3. Build the server:

    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:

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

Running the Server

  • Directly:

    node build/index.js

    or, if you have a start script:

    npm run start
  • Via MCP runner: Configure your MCP client to run the server using stdio transport. Example MCP settings entry:

    "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.

Available Tools

8 tools
get_asset_infoC

Retrieves detailed information for a specific asset by its symbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesThe trading symbol of the asset (e.g., BTC, XAU)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral context. It implies a read-only operation ('Retrieves'), but doesn't disclose error handling, rate limits, authentication needs, or what 'detailed information' includes. This is inadequate for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' returns, error cases, or behavioral traits. For a tool in a financial context with siblings, more context is needed to guide proper usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already fully documents the single 'symbol' parameter. The description adds marginal value by mentioning 'trading symbol' and examples (BTC, XAU), but this is redundant with the schema's description. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('detailed information for a specific asset'), specifying it's for a single asset identified by symbol. However, it doesn't differentiate from potential sibling tools like list_asset_wallets or list_trades, which might also retrieve asset-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like list_asset_wallets or list_trades, nor does it specify prerequisites or exclusions (e.g., when symbol lookup is needed vs. bulk listing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_asset_walletsB

Lists all user's asset wallets grouped by asset type from the Bitpanda API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a list operation, implying it's likely read-only and non-destructive, but doesn't confirm this or address other traits like authentication needs, rate limits, or response format. The description adds minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description is minimally adequate by stating what it does. However, as a list operation with sibling tools that might overlap (e.g., 'list_crypto_wallets'), it lacks context on scope or differentiation, and without annotations, it doesn't address behavioral aspects like safety or response format, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, and the baseline for this scenario is 4, as it avoids redundancy while being complete for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lists') and resource ('user's asset wallets grouped by asset type from the Bitpanda API'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_crypto_wallets' or 'list_fiat_wallets', which appear to be more specific versions of this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_crypto_wallets' or 'list_fiat_wallets'. It doesn't mention prerequisites, exclusions, or comparative contexts, leaving the agent to infer usage from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_commodity_transactionsA

Lists all user's commodity transactions from the Bitpanda API. Newest commodity transactions come first. Response is cursor paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoId 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_sizeNoSize of a page for the paginated response

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and adds valuable behavioral context: it specifies that results are sorted with 'newest commodity transactions come first' and that the 'response is cursor paginated.' This discloses key operational traits beyond basic listing, though it could mention rate limits or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by ordering and pagination details in two concise sentences. Every sentence adds essential information without redundancy, making it efficient and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is fairly complete: it covers purpose, ordering, and pagination. However, it lacks details on response format, error handling, or authentication requirements, which would enhance completeness for an API tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents both parameters (cursor and page_size) thoroughly. The description does not add any parameter-specific details beyond what the schema provides, such as syntax examples or default values, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Lists'), resource ('all user's commodity transactions'), and source ('from the Bitpanda API'), distinguishing it from sibling tools like list_crypto_transactions or list_fiat_transactions by specifying commodity transactions. It provides a complete purpose statement without being tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving commodity transactions in a paginated, newest-first order, but does not explicitly state when to use this tool versus alternatives (e.g., compared to list_trades or other transaction types). It offers some context through ordering and pagination, but lacks explicit guidance on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_crypto_transactionsA

Lists all user's crypto transactions from the Bitpanda API. Newest crypto transactions come first. Response is cursor paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOne of `buy`, `sell`, `deposit`, `withdrawal`, `transfer`, `refund` or `ico`.
statusNoOne of `pending`, `processing`, `unconfirmed_transaction_out`, `open_invitation`, `finished` or `canceled`.
cursorNoId 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_sizeNoSize of a page for the paginated response

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: ordering ('Newest crypto transactions come first'), pagination method ('cursor paginated'), and that it's a read operation (implied by 'Lists'). However, it lacks details on rate limits, authentication needs, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three concise sentences with zero waste: states purpose, ordering, and pagination method. Each sentence adds essential information, making it front-loaded and appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good context on behavior (ordering, pagination) but lacks details on response format, error cases, or authentication. It's mostly complete for a list operation but could be enhanced with output expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing full documentation of all 4 parameters. The description adds no parameter-specific information beyond what the schema already states, so it meets the baseline of 3 without compensating with additional semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Lists') and resource ('all user's crypto transactions from the Bitpanda API'), distinguishing it from siblings like list_fiat_transactions, list_commodity_transactions, and list_trades by specifying crypto transactions. It provides specific scope and data source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving crypto transactions, but does not explicitly state when to use this tool versus alternatives like list_fiat_transactions or list_trades. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_crypto_walletsB

Lists all user's crypto wallets from the Bitpanda API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'Lists all user's crypto wallets' but doesn't mention authentication requirements, rate limits, pagination behavior, or what data is returned. For a read operation with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose with no wasted words. It's appropriately sized and front-loaded, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a tool that presumably returns wallet data. It doesn't explain what information is included in the listing (e.g., balances, addresses) or any behavioral aspects like authentication needs. For a tool with no structured metadata, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter information, and it correctly implies no parameters are required by not mentioning any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lists') and resource ('all user's crypto wallets from the Bitpanda API'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like 'list_fiat_wallets' or 'list_asset_wallets', but the specificity of 'crypto wallets' provides some implicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'list_fiat_wallets' or 'list_asset_wallets'. The description simply states what it does without indicating context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_fiat_transactionsA

Lists all user's fiat transactions from the Bitpanda API. Newest fiat transactions come first. Response is cursor paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNobuy, sell, deposit, withdrawal, transfer, refund
statusNopending, processing, finished, canceled
cursorNoId 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_sizeNoSize of a page for the paginated response

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: it specifies that results are ordered newest-first and cursor-paginated. However, it doesn't cover critical aspects like authentication requirements, rate limits, error handling, or what the response format looks like, leaving gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by two concise sentences adding key behavioral details (ordering and pagination). Every sentence earns its place with no wasted words, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is moderately complete: it covers purpose, ordering, and pagination but lacks details on authentication, error handling, response format, and usage guidelines. For a list tool with 4 parameters and no structured support, it should do more to compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond what the schema provides, such as explaining parameter interactions or usage examples. Baseline 3 is appropriate when the schema handles all parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Lists') and resource ('all user's fiat transactions from the Bitpanda API'), specifying the scope and data source. It distinguishes from siblings like list_crypto_transactions by focusing on fiat transactions, making the purpose specific and well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as list_crypto_transactions or list_trades. It lacks context about use cases, prerequisites, or exclusions, leaving the agent without direction for tool selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_fiat_walletsB

Lists all user's fiat wallets from the Bitpanda API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a list operation, implying it's likely read-only, but doesn't confirm this or add any other behavioral context such as authentication requirements, rate limits, pagination, or what happens if no wallets exist. This leaves significant gaps for a tool interacting with an external API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that efficiently conveys the core purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but not complete. It specifies the resource type ('fiat wallets') and source ('Bitpanda API'), which is helpful, but lacks behavioral details like authentication needs or response format, which are important for API tools. The absence of an output schema increases the need for more context in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100% (though empty). The description doesn't need to add parameter semantics, so it meets the baseline expectation. It appropriately doesn't discuss parameters, avoiding unnecessary detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Lists') and resource ('all user's fiat wallets from the Bitpanda API'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_crypto_wallets' or 'list_asset_wallets', which would require mentioning it specifically retrieves fiat (not crypto or asset) wallets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_crypto_wallets' or 'list_asset_wallets', nor does it specify prerequisites, contexts, or exclusions for its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tradesA

Lists all user's trades from the Bitpanda API. Newest trades come first. Response is cursor paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOne of `buy` or `sell`
cursorNoId 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_sizeNoSize of a page for the paginated response

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: it specifies ordering ('Newest trades come first') and pagination behavior ('Response is cursor paginated'), which are not covered by the schema. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by ordering and pagination details in two concise sentences. Every sentence adds value without redundancy, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description partially compensates by explaining ordering and pagination. However, for a tool with 3 parameters and no structured output information, it should ideally cover more behavioral aspects like response format or error cases to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining interactions between parameters or default values. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Lists' and the resource 'all user's trades from the Bitpanda API', specifying the scope as the user's trades. It distinguishes from siblings like list_asset_wallets or list_crypto_transactions by focusing specifically on trades rather than wallets or transaction types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as list_crypto_transactions or list_fiat_transactions, which might overlap in functionality. It mentions cursor pagination but does not specify prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • Changedlist_asset_wallets1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_crypto_wallets1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_fiat_wallets1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 8 tool updates
    • First observedget_asset_info
    • First observedlist_asset_wallets
    • First observedlist_commodity_transactions
    • First observedlist_crypto_transactions
    • First observedlist_crypto_wallets
    • First observedlist_fiat_transactions
    • First observedlist_fiat_wallets
    • First observedlist_trades

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

Related MCP Connectors

Related MCP Servers