Skip to main content
Glama
XavierBeheydt

mcp-kraken

mcp-kraken

License: MIT test release dev image CodeQL pages GHCR PyPI Python Downloads uv Ruff Checked with mypy

WARNING

Alpha software. Interfaces and defaults may change in any minor release until v1.0. No liability for any financial loss, missed trades or misrouted withdrawals. Not financial advice. Not affiliated with Kraken or Payward Inc. See the full Disclaimer below before granting the server credentials with trading or withdrawal permissions.

An MCP server that exposes the Kraken cryptocurrency exchange Spot REST API over HTTP, secured with bearer tokens you manage locally.

  • Full Kraken Spot REST surface, mapped to typed MCP tools.

  • Proactive API-key permission detection — calls that the key cannot perform are rejected before they leave the box, with a clear error.

  • Built-in token CLI: generate, list, and revoke bearer tokens used by HTTP clients to authenticate against the MCP itself.

  • GET /health liveness probe — no credentials required; safe for Docker healthchecks, Kubernetes probes, and load-balancer pings.

  • Single-process, stateless beyond the SQLite token store; ready for containerised deployment behind a reverse proxy.

WebSocket v2 and FIX transports are explicitly out of scope for the first release — see TODO.md.

Architecture

┌────────────┐    HTTPS / bearer    ┌───────────────┐    HMAC-signed    ┌─────────┐
│ MCP client │ ───────────────────▶ │  mcp-kraken   │ ─────────────────▶│ Kraken  │
│ (Claude…)  │ ◀─────────────────── │  FastMCP HTTP │ ◀───────────────  │ REST v0 │
└────────────┘                      └───────────────┘                   └─────────┘
                                          │
                                          ▼
                                   SQLite (bearer-token hashes)

Two authentication boundaries:

Boundary

Mechanism

MCP client → mcp-kraken (you control)

Opaque bearer tokens (SHA-256)

mcp-kraken → Kraken (you control)

KRAKEN_API_KEY + HMAC signature

Related MCP server: freqtrade-mcp-server

Requirements

  • Python >=3.12

  • uv for dependency management

  • just for the dev command runner (optional)

  • A Kraken Spot API key — generate one in Account → Security → API. The permissions you enable on the key directly determine which MCP tools succeed (see Permissions below).

Quick start

# Clone and install
git clone https://github.com/XavierBeheydt/mcp-kraken.git
cd mcp-kraken
uv sync --dev

# Configure
cp .env.example .env
$EDITOR .env  # set KRAKEN_API_KEY and KRAKEN_API_SECRET

# Issue a bearer token for your MCP client
uv run mcp-kraken token create "claude-desktop" --expires-in 90d
# → copy the printed token; it will never be shown again

# Start the HTTP server (defaults to 0.0.0.0:8765/mcp)
uv run mcp-kraken serve

Point your MCP client at http://localhost:8765/mcp/ and authenticate with the bearer token. Two methods are supported:

Method

When to use

Authorization: Bearer mck_… header

Preferred — token stays out of URLs and logs

?apikey=mck_… query parameter

Fallback for clients that cannot set custom headers (e.g. Claude Desktop remote connector)

The server strips ?apikey= from the URL before forwarding to the MCP layer, and redacts it from access logs (apikey=***).

CLI

mcp-kraken serve              # run the HTTP server
mcp-kraken token create NAME  # mint a new bearer token (printed once)
mcp-kraken token list         # list known tokens (hashes only)
mcp-kraken token revoke ID    # revoke a token by id
mcp-kraken version            # print the installed version

token create accepts --expires-in 90d (or 12h, 30m, 3600 seconds). Omit it for a token that never expires. The full plaintext is only shown once at creation — the server only stores the SHA-256 hash plus the short id.

Local testing with Claude Desktop

Claude Desktop accepts MCP servers either as a remote HTTPS connector or as a local command (stdio). Pure self-signed certs are rejected — the cert has to be signed by a CA the OS trusts.

Option A — HTTPS via mkcert (Custom Connector)

mkcert creates a local CA, installs it into the system trust store, and signs certs from it.

brew install mkcert            # or your package manager's equivalent
just cert-local                # mkcert -install + generates certs/{key,cert}.pem
just serve-https               # serves HTTPS on 0.0.0.0:8765/mcp

Then in Claude Desktop: Settings → Connectors → Add custom connector, with URL https://localhost:8765/mcp/ and the bearer token from mcp-kraken token create.

Tip — Claude Desktop cannot set custom headers. If the connector UI has no "Authorization header" field, append the token as a query param instead: https://localhost:8765/mcp/?apikey=mck_…
The server converts it to a proper Authorization: Bearer header internally and redacts the value from its access logs.

Option B — stdio (Command Connector)

For purely local use you can skip HTTPS entirely:

uv run mcp-kraken serve --stdio

Wire it into Claude Desktop's config file (claude_desktop_config.json):

{
  "mcpServers": {
    "kraken": {
      "command": "uv",
      "args": ["--directory", "/abs/path/to/mcp-kraken", "run", "mcp-kraken", "serve", "--stdio"],
      "env": {
        "KRAKEN_API_KEY": "...",
        "KRAKEN_API_SECRET": "..."
      }
    }
  }
}

stdio sessions are inherently local — the bearer-token layer is bypassed.

Configuration

Settings come from environment variables, optionally loaded from .env:

Variable

Default

Purpose

KRAKEN_API_KEY

Kraken API public key.

KRAKEN_API_SECRET

Kraken API private key (base64).

KRAKEN_BASE_URL

https://api.kraken.com

Override for testing.

MCP_KRAKEN_HOST

0.0.0.0

Bind address.

MCP_KRAKEN_PORT

8765

TCP port.

MCP_KRAKEN_PATH

/mcp

HTTP path the MCP transport mounts on.

MCP_KRAKEN_TOKEN_DB

./data/tokens.db

SQLite file holding bearer-token metadata.

MCP_KRAKEN_SSL_KEYFILE

TLS private key (PEM). Pair with _SSL_CERTFILE.

MCP_KRAKEN_SSL_CERTFILE

TLS certificate (PEM). Pair with _SSL_KEYFILE.

MCP_KRAKEN_HTTP_TIMEOUT

30

Seconds before outbound Kraken calls time out.

MCP_KRAKEN_LOG_LEVEL

INFO

Standard Python log level.

MCP_KRAKEN_AUTH_DISABLED

false

Dev only. Skip bearer-token enforcement.

The full sample lives in .env.example.

Tools

Public market-data tools (no Kraken credentials needed):

get_server_time, get_system_status, get_assets, get_asset_pairs, get_ticker, get_ohlc, get_order_book, get_recent_trades, get_recent_spreads.

Private tools (require KRAKEN_API_KEY + KRAKEN_API_SECRET):

  • Account: get_account_balance, get_extended_balance, get_trade_balance, get_trade_volume, get_ledgers, query_ledgers, get_credit_lines, get_api_key_info, request_export_report, get_export_status, retrieve_export, remove_export.

  • Trading: get_open_orders, get_closed_orders, query_orders, get_trade_history, query_trades, get_open_positions, add_order, add_order_batch, amend_order, edit_order, cancel_order, cancel_all_orders, cancel_all_orders_after, cancel_order_batch.

  • Funding: get_deposit_methods, get_deposit_addresses, get_deposit_status, get_withdrawal_methods, get_withdrawal_addresses, get_withdrawal_info, withdraw, get_withdrawal_status, cancel_withdrawal, wallet_transfer.

  • Earn: list_earn_strategies, list_earn_allocations, allocate_earn, deallocate_earn, get_earn_allocation_status, get_earn_deallocation_status.

  • Subaccounts: create_subaccount, account_transfer.

  • WebSocket auth: get_websockets_token (token for the future WS layer — see TODO.md).

Kraken API key permissions

Kraken keys can be issued with any subset of:

UI label

Capability flag

Query funds

query_funds

Deposit

deposit

Withdraw

withdraw

Earn

earn

View open orders & trades

query_open_orders

View closed orders & trades

query_closed_orders

Create & modify orders

create_modify_orders

Cancel & close orders

cancel_orders

View ledger entries

query_ledger

Export data

export_data

WebSocket interface

websocket

On the first private call, mcp-kraken introspects the key via GetAPIKeyInfo and caches the resulting permission set. Subsequent tool invocations are checked against that cache; missing permissions raise KrakenPermissionError with the list of flags the key would need. If the introspection itself fails (older keys may not support GetAPIKeyInfo), the server falls back to letting Kraken enforce permissions over the wire.

IP restrictions, expiry, query date ranges, and custom nonce windows are configured on the key itself in the Kraken UI; the server passes through whatever the key allows.

Development

just sync          # uv sync --all-extras --dev
just test          # pytest
just check         # lint + format-check + mypy + tests
just fix           # auto-fix lint and format
just docker-build  # local image build

Run just with no arguments for the full recipe list.

Docker

The published image is ghcr.io/xavierbeheydt/mcp-kraken:

Tag

Pushed by

Notes

latest

release workflow

Latest non-prerelease tag.

vX.Y.Z, vX.Y, vX

release workflow

Semver tags on every release.

dev

dev-publish workflow

Tip of the dev branch.

dev-<sha7>

dev-publish workflow

Per-commit tag on dev.

The reference deployment uses compose.yml:

cp .env.example .env  # set KRAKEN_API_KEY / KRAKEN_API_SECRET
docker compose up -d

The container runs as a non-root user (uid 10001), with a read-only root filesystem, no added capabilities, and a SQLite token-store volume at /data. Put it behind a TLS-terminating reverse proxy in production — the server speaks plain HTTP internally.

Health endpoint

GET /health returns 200 {"status":"ok"} without a bearer token — safe for orchestrators, load balancers, and uptime monitors:

curl http://localhost:8765/health
# {"status":"ok"}

Both the Dockerfile HEALTHCHECK and compose.yml use this endpoint.

Versioning & release flow

Versions are derived from git tags via hatch-vcs; there is no version number to bump in pyproject.toml.

        feature → PR → dev   →  dev-publish workflow → ghcr.io/…:dev[-sha]
                                                      ↑
                                                test workflow

                  tag v1.2.3  →  release workflow    → ghcr.io/…:1.2.3, :latest
                                                      + GitHub Release
                                                      + fast-forward main to the tag

Branch conventions:

  • main — protected; always equals the latest released commit.

  • dev — default integration branch; every push runs tests and republishes the :dev image.

  • topic branches → PR into dev.

  • Releases are cut by tagging the desired dev commit vX.Y.Z. The release workflow tests it, builds and pushes the image with semver tags, opens a GitHub Release with auto-generated notes, and fast-forwards main to the tag. If main cannot be fast-forwarded (e.g. main has diverged) the workflow emits a warning and leaves the merge for a human.

To prerelease, tag v1.2.3-rc1: the workflow builds and pushes 1.2.3-rc1, 1.2-rc1, 1-rc1, marks the GitHub Release as prerelease, and does not publish the :latest tag.

Disclaimer

CAUTION

Read this section before pointingmcp-kraken at a Kraken API key with trading or withdrawal permissions.

Alpha software. Tool signatures, default behaviours, configuration keys and the on-disk token format may change in any minor release until v1.0. Run a non-production instance against a read-only Kraken API key first, and read each tool's docstring before granting the server credentials with trading or withdrawal permissions.

No liability. The software is provided as is, without warranty of any kind, express or implied. The author is not responsible for any direct, indirect, incidental, or consequential financial loss arising from the use, misuse or unavailability of this software — including but not limited to misrouted withdrawals, unintended trades, missed executions, exchange downtime, API rate-limit hits, or compromised credentials.

Not financial advice. Nothing in this software, its documentation, or any tool output constitutes investment, trading, tax or legal advice. You are solely responsible for the decisions you make and the orders you submit.

Not affiliated with Kraken or Payward Inc. "Kraken" is a trademark of its respective owner. This project is an independent client of the public Kraken REST API, written against the publicly documented API surface.

Available Tools

54 tools
account_transferC

Transfer funds between the master account and a sub-account.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset code.
amountYesAmount.
from_accountYesSource account email or username.
to_accountYesDestination account email or username.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states 'Transfer funds' without disclosing behavioral traits like fees, permissions, or reversibility.

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

Conciseness4/5

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

Single sentence, very concise. Could include more structure (e.g., usage examples) but remains efficient.

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?

No output schema, no annotations, simple parameters. Description is somewhat complete for a basic transfer but lacks details on limitations or side effects.

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 coverage is 100% and each parameter has a description in the schema. The tool description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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?

Clearly states verb 'transfer', resource 'funds', and scope 'master account and sub-account'. However, it does not differentiate from sibling tool 'wallet_transfer'.

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 on when to use this tool vs alternatives like 'wallet_transfer'. No mention of prerequisites, context, or when not to use.

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

add_orderC

Place a new order.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesAsset pair (e.g. `XBTUSD`).
typeYes`buy` or `sell`.
ordertypeYes`market`, `limit`, `stop-loss`, `take-profit`, `stop-loss-limit`, `take-profit-limit`, `trailing-stop`, `trailing-stop-limit`, `iceberg`, `settle-position`.
volumeYesOrder quantity in base asset units.
priceNoLimit/stop price.
price2NoSecondary price (e.g. for stop-limit).
leverageNoMargin leverage (e.g. `2:1`).
oflagsNoOrder flags (`post`, `fcib`, `fciq`, `nompp`, `viqc`).
timeinforceNo`GTC`, `IOC`, `GTD`.
starttmNo
expiretmNoExpiration time.
userrefNoUser reference id (integer).
cl_ord_idNoClient order id (string).
validateNoIf True, only validate — do not submit.
close_ordertypeNo
close_priceNo
close_price2No
deadlineNo
reduce_onlyNoReduce existing position only (margin).
stptypeNoSelf-trade prevention behaviour.
triggerNoPrice trigger source (`index` or `last`).
displayvolNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects. It only states 'Place a new order', implying a write operation but omits effects like submission to the matching engine, potential order fills, or auth requirements. Minimal transparency.

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

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices completeness. For a complex tool with 22 parameters, it is too brief to be fully useful.

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

Completeness1/5

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

Given the tool's complexity (22 parameters, no output schema, no annotations), the description provides almost no context. It does not explain order lifecycle, return values, or validation behavior, leaving the agent underinformed.

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 coverage is 73%, so the parameter descriptions already provide significant meaning. The tool description adds no additional parameter context beyond the schema. Baseline 3 is appropriate.

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

Purpose3/5

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

The description 'Place a new order' identifies a verb and resource but is vague, lacking differentiation from sibling tools like `add_order_batch` or `edit_order`. It does not specify the context (e.g., trade order on an exchange).

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 on when to use this tool versus alternatives. There is no mention of prerequisites, order types, or when to prefer this over `add_order_batch` or `amend_order`.

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

add_order_batchB

Submit up to 15 orders for the same pair in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesAsset pair the batch targets.
ordersYesList of order dicts (same fields as `add_order`, but as a list of objects rather than positional parameters).
deadlineNoSend timeout.
validateNoOnly validate — do not submit.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must bear the transparency burden. It only states submission, but lacks details on side effects, permissions, validation behavior (despite 'validate' parameter), rate limits, or failure handling. Minimal behavioral disclosure.

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, well-structured sentence that front-loads the core purpose with no extraneous words. Every part is essential.

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?

With 4 parameters, no output schema, and no annotations, the description should cover return values, error handling, and important behaviors like partial success. It does not mention what the tool returns or how to interpret results, leaving significant gaps for an agent.

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 baseline is 3. The description adds value for the 'orders' parameter by referencing 'add_order' fields and clarifying format. Other parameters (pair, deadline, validate) receive no additional clarification beyond schema.

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 specifies the verb 'submit', the resource 'orders', and the constraint 'up to 15 orders for the same pair'. This distinguishes it from sibling tools like 'add_order' (single order) and other batch operations.

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 when to use (batch submission of same pair) but does not explicitly state when not to use or compare with alternatives like 'add_order'. The limit of 15 is given, but no guidance on exceeding it.

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

allocate_earnC

Allocate amount of the strategy's asset into strategy_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
amountYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but only states 'allocate', which implies a write operation. It fails to mention side effects, reversibility, error conditions, or required permissions.

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

Conciseness3/5

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

The description is a single sentence with no waste, but it is too brief. While concise, it sacrifices valuable context that could be added without becoming verbose.

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?

No output schema is provided, and the description does not explain what the tool returns upon success or failure. For a mutating tool, this lack of context about side effects and results is a significant gap.

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

Parameters1/5

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

Schema description coverage is 0%, and the tool description does not clarify the meaning of 'strategy_id' or 'amount' beyond their names. It does not specify valid formats, allowed values, or constraints for these parameters.

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 uses a specific verb ('Allocate') and clearly identifies the resource (strategy's asset) and the target (strategy_id). It effectively distinguishes the tool from its sibling 'deallocate_earn'.

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 'deallocate_earn' or other allocation-related tools. There is no mention of prerequisites, limitations, or typical use cases.

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

amend_orderC

Amend an existing order in-place (preserves queue priority where the venue allows). Provide either txid or cl_ord_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidNo
cl_ord_idNo
order_qtyNo
display_qtyNo
limit_priceNo
trigger_priceNo
post_onlyNo
deadlineNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations present, so description carries full burden. Mentions 'in-place' and 'preserves queue priority' (conditional), but omits many behavioral aspects: permissions, destructive nature, behavior when both identifiers provided, rate limits, and return values.

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?

Two sentences, no fluff. First sentence captures purpose and key behavior; second sentence gives essential parameter hint. Efficient and front-loaded.

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?

Despite 8 optional parameters and no output schema or annotations, the description only covers identification. Missing validation rules, effect of multiple parameters, error scenarios, and return details. Incomplete for a complex amendment tool.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate. It explains semantics for txid and cl_ord_id, but the remaining 6 parameters (order_qty, display_qty, limit_price, trigger_price, post_only, deadline) have no explanation, leaving ambiguity.

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 (amend), the resource (existing order), and adds context about preserving queue priority. It distinguishes from siblings like 'add_order' and 'cancel_order', though it may overlap with 'edit_order'.

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?

Provides a hint to provide either txid or cl_ord_id, but no explicit guidance on when to use this tool versus alternatives like cancel+add or edit_order. Lacks context for when to amend vs re-enter.

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

cancel_all_ordersB

Cancel every open order.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It only says 'cancel every open order,' omitting details like irreversibility, scope across markets, or impact on order book.

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?

Single sentence with no extraneous words. Efficient and front-loaded.

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?

Despite low complexity, the description lacks behavioral context for a destructive action. No mention of idempotency, confirmation, or whether it cancels orders across all trading pairs.

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?

Input schema has zero parameters, so the description adds no parameter info. Baseline for 0 parameters is 4, as schema coverage is inherently 100%.

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 'Cancel every open order,' using a specific verb and resource. It effectively distinguishes from sibling tools like cancel_order and cancel_all_orders_after.

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 on when to use this tool versus alternatives (e.g., cancel_order for a single order). Lacks any mention of context or exclusions.

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

cancel_all_orders_afterA

Dead-man-switch: schedule a bulk cancel after timeout seconds.

Setting timeout=0 disables the switch.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It explains the core mechanism (scheduled cancel, disable via timeout=0) but omits details like idempotency or behavior if called multiple times.

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?

Two sentences, front-loaded with the key concept, no wasted words. Every sentence earns its place.

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 one parameter and no output schema, the description covers the main behavior. It could mention whether the switch applies to all orders or can be reset, but it's mostly complete for a simple tool.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates by explaining the timeout parameter's role: it sets the delay in seconds and a value of 0 disables the switch. This provides essential meaning beyond the bare integer type.

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 it's a 'dead-man-switch' that 'schedule a bulk cancel after timeout seconds'. This specific verb+resource combination distinguishes it from siblings like cancel_all_orders (immediate) and cancel_order.

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

Usage Guidelines4/5

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

The description indicates when to use by naming the tool 'dead-man-switch' and specifying timeout=0 disables it. However, it does not explicitly contrast with siblings like cancel_all_orders or provide exclusions.

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

cancel_orderC

Cancel one order by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidNo
cl_ord_idNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states cancellation by id, but does not disclose any side effects, authentication needs, or reversibility.

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

Conciseness3/5

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

The description is extremely concise (four words), but it sacrifices necessary detail. It is not wasteful, but it is under-specified.

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

Completeness1/5

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

Given two parameters, no output schema, and no annotations, the description is grossly incomplete. It fails to convey required inputs, behavior, or expected outcomes.

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

Parameters1/5

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

Schema description coverage is 0%, and the description fails to explain the two parameters (txid, cl_ord_id). It merely says 'by id', which is ambiguous and does not clarify which parameter to use or their relationship.

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 'Cancel one order by id' clearly states the verb (cancel) and resource (order), and distinguishes it from siblings like cancel_order_batch or cancel_all_orders.

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 on when to use this tool versus alternatives such as cancel_order_batch or cancel_all_orders_after. The description lacks context for appropriate usage.

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

cancel_order_batchA

Cancel up to 50 orders in a single call.

orders may contain txids or cl_ord_ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
ordersYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must cover behavior. It mentions the 50-order limit but fails to disclose side effects, partial success/failure handling, permissions, or idempotency.

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

Conciseness4/5

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

Two concise sentences with the main action in the first line. Could benefit from bullet points or a structured format, but not verbose.

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 output schema and a single parameter, the description is minimally adequate but lacks details on return value (e.g., per-order status) that would be expected for a batch operation.

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 description adds meaning by stating 'orders may contain txids or cl_ord_ids', clarifying the array content beyond the schema's generic string items. However, it does not specify format or maximum array length.

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 action 'cancel' for resource 'orders' with a batch scope of up to 50, distinguishing it from single-cancel and all-cancel siblings.

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?

While it implies use for canceling multiple orders at once, it lacks explicit when-not-to-use or comparisons to alternatives like cancel_all_orders or cancel_all_orders_after.

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

cancel_withdrawalC

Request cancellation of a pending withdrawal.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
refidYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Request cancellation' without specifying whether cancellation is immediate, requires special permissions, or any side effects.

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

Conciseness2/5

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

The description is extremely concise but under-specified; it does not provide enough value for an agent to use the tool correctly, so it is not appropriately sized.

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?

The tool is simple but the description omits parameter details and behavioral context, leaving gaps in completeness for an AI agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the meaning or usage of parameters 'asset' and 'refid', failing to compensate for the gap.

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 (cancel) and the target (a pending withdrawal), differentiating it from order cancellation tools among siblings. However, it does not explicitly mention that the cancellation is for a specific withdrawal identified by refid.

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 cancel_order or account_transfer, nor are prerequisites (e.g., withdrawal must be in pending state) mentioned.

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

create_subaccountC

Create a new sub-account.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUnique username for the sub-account.
emailYesContact email.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description only says 'Create', implying mutation without disclosing permissions, side effects, or constraints.

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

Conciseness3/5

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

The description is a single sentence, concise but under-specified. It lacks structure to add value beyond the name.

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?

For a creation tool with no output schema or annotations, the description fails to explain return values, success/failure, or prerequisites, leaving 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 coverage is 100% with descriptions for both parameters, so the description adds no further meaning. Baseline 3 is appropriate.

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 'Create' and the resource 'a new sub-account', but does not distinguish it from siblings like account_transfer or wallet_transfer.

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 vs alternatives. Siblings include many account-related tools, but no comparison is made.

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

deallocate_earnC

Withdraw amount from strategy_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
amountYes

TDQS

C2.6/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond the basic action. No annotations exist, so the agent has no insight into side effects, reversibility, permissions, or return behavior.

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

Conciseness3/5

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

The description is very concise—one sentence—but is overly brief, bordering on tautological. It could add a bit more context without losing conciseness.

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, output schema, and parameter details, the description is incomplete. It does not cover return values, error conditions, or usage constraints, leaving the agent underinformed.

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

Parameters2/5

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

With 0% schema description coverage, the description adds minimal meaning: it names the parameters but does not explain their formats, constraints, or units (e.g., amount as string with decimals).

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 it withdraws an amount from a strategy, using a verb and resource. It implicitly distinguishes from sibling 'allocate_earn' by using the opposite action, but does not explicitly name the sibling.

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, prerequisites, or when not to use it. The description lacks context for decision-making.

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

edit_orderC

Edit an order by replacing it (cancels + recreates atomically).

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYes
pairYes
volumeNo
priceNo
price2No
oflagsNo
deadlineNo
cancel_responseNo
userrefNo
validateNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description must reveal behavioral traits itself. It discloses that the operation is destructive (cancel) and creates a new order atomically. However, it omits details like error handling (e.g., partial failure), effect on order IDs, and required permissions, leaving gaps.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core operation, but could arguably add a bit more context without losing conciseness.

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

Completeness1/5

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

Given 10 parameters, no output schema, and no annotations, the description is critically incomplete. It fails to explain parameter usage, return values, prerequisites, or error states, severely hindering the agent's ability to invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameter roles. It does not mention any parameters, leaving the agent to guess the meaning of txid, pair, volume, etc. The property names alone are insufficient for correct usage.

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 tool edits an order by atomic replacement (cancel + recreate). This distinguishes it from siblings like amend_order (modify) and cancel_order (only cancel). The verb 'edit' combined with the parenthetical explanation provides specific, actionable meaning.

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 gives no explicit guidance on when to use this tool versus alternatives like amend_order or cancel_order then add_order. While the atomic replacement hint suggests use cases where amend is insufficient, the agent is left to infer this without direction.

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

get_account_balanceB

Return the spot wallet balance per asset.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided and the description lacks details on behavior like authentication requirements, output format, or whether it returns all assets.

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

Conciseness4/5

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

Single sentence, no redundancy, but could be more structured with example output. It's appropriately concise.

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?

For a tool with no parameters and no output schema, the description is brief but sufficient for basic understanding. Missing details like return structure or constraints.

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?

No parameters exist, so the schema covers everything. The description is clear on what the tool returns, adding no extra param semantics needed.

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?

Description specifies the verb 'Return' and resource 'spot wallet balance per asset', clearly distinguishing it from siblings like get_trade_balance.

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 on when to use this tool vs alternatives such as get_trade_balance or get_extended_balance.

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

get_api_key_infoA

Return metadata about the API key currently in use, including the set of permissions granted to it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/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. It explains the output but lacks details on idempotency, rate limits, or required permissions. For a read-only zero-parameter tool, it is minimally adequate.

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 clear sentence with no wasted words, and it front-loads the key information.

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?

For a simple tool with no parameters and no output schema, the description adequately explains what is returned. It could be slightly expanded but is sufficient for the tool's simplicity.

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 no parameters (100% coverage trivially). The description adds value by specifying that the return includes metadata and permissions, which is useful context beyond the empty schema.

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 tool returns metadata and permissions of the current API key, which is specific and distinguishes it from sibling tools that handle orders, balances, and other operations.

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

Usage Guidelines4/5

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

The description implies this tool is for checking the current API key's info, but does not explicitly state when to use vs. alternatives. However, the context is clear enough given the simplicity of the tool.

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

get_asset_pairsC

Return tradable pair metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoRestrict to specific pairs (e.g. `["XBTUSD"]`).
infoNoOne of `info`, `leverage`, `fees`, `margin`.
country_codeNoTwo-letter ISO code, filters region-restricted pairs.

TDQS

C2.7/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 full burden. It does not disclose any behavioral traits like read-only nature, rate limits, authentication needs, or side effects. The minimal description fails to inform about important operational characteristics.

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

Conciseness2/5

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

A single sentence is concise but under-specified. The description does not convey enough information for effective use, making it insufficient rather than efficient.

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?

With no output schema and no annotations, the description should explain what 'metadata' includes and how the parameters affect results. It lacks this context, leaving the agent with incomplete information for correct invocation.

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 coverage is 100% with descriptive parameter definitions. The tool description adds no additional semantics beyond what the schema already provides, so baseline score applies.

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 states it returns tradable pair metadata, which is a specific verb and resource. However, it does not differentiate from sibling tools like get_assets or get_ticker that also return metadata but for different entities.

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 on when to use this tool versus alternatives such as get_ticker or get_assets. The description lacks any context about selection criteria.

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

get_assetsC

Return info about one or more assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoRestrict to specific asset codes (e.g. `["XBT", "ETH"]`).
aclassNoAsset class filter (default `currency`).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It merely states 'Return info' without disclosing any behavioral traits such as error handling, rate limits, or the nature of the returned data. This is insufficient.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It is front-loaded and to the point, though it could benefit from additional detail without becoming verbose.

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 100% schema coverage and no output schema, the description is adequate for a simple info retrieval tool. However, it omits details about the return format and behavior for missing assets, which an agent might need.

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 both parameters thoroughly. The description adds no additional meaning beyond the schema, earning a baseline score of 3.

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 'Return info about one or more assets,' using a specific verb and resource. However, it does not differentiate from sibling tools like get_asset_pairs or get_ticker, which also return 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?

No guidance on when to use this tool versus alternatives. It does not specify context, exclusions, or prerequisites, leaving the agent without decision support.

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

get_closed_ordersC

List closed orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradesNoEmbed individual trade fills.
userrefNoFilter by user-supplied reference id.
cl_ord_idNoFilter by client order id.
startNoLower bound (unix or transaction id).
endNoUpper bound.
ofsNoPagination offset.
closetimeNo`open`, `close` (default), or `both`.
consolidate_takerNoAggregate fills (default True).
without_countNoSkip total-count for speed.

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'List closed orders,' implying a read operation, but provides no details about ordering, pagination, rate limits, or side effects. The brevity leaves agents uninformed about important behavior.

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

Conciseness2/5

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

At only three words, the description is extremely concise, but it sacrifices essential information. Conciseness should not come at the cost of completeness; here the description is under-specified rather than efficiently structured.

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

Completeness1/5

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

Given the tool has 9 parameters, no output schema, and no annotations, the description is severely inadequate. It fails to explain the return format, filtering capabilities, or pagination. The agent is left with almost no useful context beyond the tool name.

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 input schema has 100% description coverage (all parameters have descriptions in the schema). The tool description itself adds no additional meaning beyond the schema, so the baseline of 3 applies. It does not enhance understanding of the parameters.

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

Purpose3/5

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

The description 'List closed orders' clearly indicates the tool retrieves a list of closed orders, but fails to define what 'closed' specifically means in this context (e.g., vs 'open' or 'canceled'). It also does not distinguish from similar tools like 'get_open_orders' or 'query_orders', limiting its clarity.

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. There is no mention of prerequisites, typical use cases, or exclusions. The description lacks any context that would help an agent choose appropriately among sibling tools.

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

get_credit_linesB

Return any available credit facilities on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It implies a read operation but does not explicitly state read-only, authentication requirements, or potential side effects. The single word 'return' is insufficient for full transparency.

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 sentence with no wasted words. It is appropriately sized for a tool with no parameters and common functionality.

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 low complexity (0 parameters, no output schema), the description is sufficiently complete. It states the output clearly. However, without annotations, it could benefit from stating that it returns a list or object of credit facilities.

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?

There are no parameters, so the description cannot add information beyond the schema. Baseline for 0 parameters is 4, as the description does not need to explain parameter semantics.

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 it returns available credit facilities, with a specific verb (return) and resource (credit facilities). It is distinct from sibling tools like get_account_balance or get_trade_balance, which return different account-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?

No guidance on when to use this tool versus alternatives. There is no comparison to siblings or conditions under which this should be invoked. It only implies usage for checking credit facilities but provides no exclusions or context.

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

get_deposit_addressesC

Return deposit addresses for asset via method.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset code (e.g. `XBT`).
methodYesDeposit method as returned by `get_deposit_methods`.
newNoGenerate a new address if True.
amountNoOptional amount, for methods that bind addresses to amounts.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states a read operation without disclosing any behavioral traits such as idempotency, side effects, rate limits, or required permissions.

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

Conciseness3/5

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

The description is extremely concise, consisting of a single sentence. While it is front-loaded, it lacks necessary detail about parameters and behavior, making it under-specified.

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 tool has 4 parameters, no output schema, and no annotations, the description is very incomplete. It does not explain what the return data looks like, constraints, or how the optional parameters affect behavior.

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 baseline is 3. The description mentions asset and method but adds no additional meaning beyond what the schema already provides. It does not clarify the purpose of 'new' or 'amount' parameters.

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 'Return' and resource 'deposit addresses', and specifies the key parameters 'asset' and 'method'. However, it does not distinguish this tool from siblings like get_deposit_methods or get_deposit_status.

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. There is no mention of typical scenarios, prerequisites, or when not to use it.

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

get_deposit_methodsC

List available deposit methods for an asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
aclassNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, and the description fails to disclose behavioral traits such as read-only nature, required permissions, rate limits, or side effects. For a listing operation, being read-only is likely, but it is not stated.

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

Conciseness3/5

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

The description is exceptionally short (one sentence), which is concise but lacking in necessary details. It earns its place by being direct, but could include more information without losing conciseness.

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?

With no output schema and 0% parameter descriptions, the description is insufficient for an agent to fully understand tool behavior. It lacks details on response structure, error handling, or data format.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameters 'asset' or 'aclass'. The agent cannot infer what values to provide or the purpose of 'aclass'.

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 'List available deposit methods for an asset,' which includes a specific verb ('list'), a distinct resource ('deposit methods'), and context ('for an asset'). It differentiates well from siblings like 'get_deposit_addresses' and 'get_withdrawal_methods'.

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 'get_deposit_addresses' or 'get_withdrawal_methods'. The description does not specify prerequisites or scenarios.

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

get_deposit_statusC

Return status of recent deposits.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
methodNo
startNo
endNo
cursorNo
limitNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must cover behavioral traits. It fails to explain what 'recent' means, what statuses are returned, or any authentication or rate limiting.

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

Conciseness3/5

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

The description is extremely concise (4 words) and front-loaded, but lacks any structure or additional context that would aid understanding.

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 tool has 6 optional parameters and no output schema, the description is insufficient; it should clarify parameter usage, pagination, and output format.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any of the six parameters (asset, method, start, end, cursor, limit).

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 tool returns status of deposits, distinguishing it from related siblings like get_deposit_addresses or get_withdrawal_status.

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 on when to use this tool vs alternatives, such as when to use get_deposit_status vs get_deposit_methods.

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

get_earn_allocation_statusC

Track the progress of a pending allocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavior beyond the basic purpose. It does not mention whether the tool is read-only, what happens if the allocation is not pending, or any error conditions.

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

Conciseness3/5

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

The description is a single concise sentence, but it lacks structure or front-loading of critical details. It is adequate but not optimally organized.

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 output schema and no annotations, the description is minimal. It does not explain return values, error handling, or prerequisites, leaving significant gaps for a status-checking tool.

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

Parameters2/5

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

With 0% schema description coverage, the description adds no meaning to the strategy_id parameter beyond its name. It fails to explain what a strategy_id is or where to find it.

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 tool tracks the progress of a pending allocation, using a specific verb and resource. It distinguishes the tool from siblings like allocate_earn and deallocate_earn which handle allocation changes.

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 alternative status tools like get_earn_deallocation_status or list_earn_allocations. The description lacks context for selection.

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

get_earn_deallocation_statusC

Track the progress of a pending deallocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes

TDQS

C2.7/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 'track the progress', implying a read-only operation, but does not explicitly confirm safety, side-effects, or any other traits such as rate limits or required authentication contexts.

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

Conciseness4/5

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

The description is very concise, consisting of a single sentence. It is front-loaded with the core purpose. However, its brevity comes at the cost of completeness, which is acceptable here given the tool's narrow scope.

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

Completeness1/5

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

Given the tool has one parameter, no output schema, and no annotations, the description is severely lacking. It does not explain the parameter, return format, or any expected behavior. The agent would be left with significant uncertainty about how to use the tool correctly.

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

Parameters1/5

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

The input schema has one parameter 'strategy_id' with no description. Schema description coverage is 0%, so the description must compensate by explaining the parameter's role. However, the description adds no information about what 'strategy_id' is or how to determine its value.

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 uses a specific verb 'Track' and a clear resource 'progress of a pending deallocation'. It effectively distinguishes the tool from sibling tools like 'deallocate_earn' (which initiates deallocation) and 'get_earn_allocation_status' (which tracks allocation differently).

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 does not mention that it should be used after initiating a deallocation, nor does it specify any conditions or exclusions. An agent would lack context for appropriate invocation.

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

get_export_statusC

List the current status of every export of type report.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It implies a read operation but does not explicitly state it is read-only, nor does it disclose any side effects, data freshness, or rate limits.

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

Conciseness3/5

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

The description is very concise (one sentence) but lacks detail on parameters and usage. It could be restructured to include more informative content without excessive length.

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?

For a simple tool with one parameter, the description covers the basic purpose. However, it omits parameter explanation and response format, leaving gaps for an AI agent to infer.

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

Parameters2/5

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

Schema description coverage is 0%, so description should compensate. It hints that 'report' is a type identifier but does not explain expected format, values, or meaning in 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 tool lists the current status of exports, and specifies a type filter ('report'). It distinguishes from sibling tools like 'retrieve_export' which likely retrieves a specific export.

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 on when to use this tool vs. alternatives, such as 'retrieve_export' or other listing tools. The description does not mention prerequisites or limitations.

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

get_extended_balanceA

Return balance with hold/available breakdowns per asset.

Note: ExtendedBalance is not supported on all Kraken account types or regions. If this tool returns an error, use get_account_balance instead (same data, without the hold/available breakdown).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/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. It discloses a key behavioral trait: the tool is not supported on all Kraken account types or regions, and warns that errors may occur. It does not mention authentication or rate limits, but for a zero-parameter read-only tool, this is adequate.

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 two sentences, concise and front-loaded. The first sentence states the purpose, and the second provides essential usage notes. Every word earns its place.

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

Completeness5/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, no output schema, and is a simple read operation, the description is complete. It covers the purpose, limitations, and a fallback alternative, which is sufficient for effective agent use.

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?

There are zero parameters and 100% schema coverage (empty schema). The baseline for zero parameters is 4. The description adds no parameter info, but it explains the output semantics (hold/available breakdown), which compensates for the lack of parameter details.

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 'Return' and resource 'balance with hold/available breakdowns per asset'. It distinguishes itself from the sibling tool 'get_account_balance' by emphasizing the breakdown feature and providing a fallback alternative.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (to get hold/available breakdown) and provides a clear alternative: use 'get_account_balance' if this tool errors or is not supported. This helps the agent decide between tools.

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

get_ledgersC

Return ledger entries (deposits, withdrawals, trades, fees…).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoRestrict to specific assets.
aclassNoAsset class filter (default `currency`).
typeNoEntry type filter (`deposit`, `withdrawal`, `trade`, ...).
startNoUnix start time, exclusive.
endNoUnix end time, exclusive.
ofsNoPagination offset.
without_countNoSkip total-count computation for speed.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'Return ledger entries' without mentioning pagination, performance, or that it is a read operation (though implied). The description does not add significant behavioral context beyond the schema.

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

Conciseness4/5

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

The description is one short sentence with no wasted words. It is concise, though it could benefit from slight expansion for clarity.

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, no output schema, and 7 parameters, the description is incomplete. It does not explain what ledger entries are, how pagination works, or how this tool differs from similar ones like 'query_ledgers'.

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 coverage is 100%, so param descriptions are already present. The description adds a list of entry types that aligns with the 'type' parameter, but no additional meaning beyond what the schema provides. Baseline of 3 is appropriate.

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 states the tool returns ledger entries and lists examples (deposits, withdrawals, trades, fees). This is clear and specific. However, it does not differentiate from the sibling tool 'query_ledgers', which likely serves a similar purpose.

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 on when to use this tool versus alternatives like 'query_ledgers'. Context about use cases, prerequisites, or scenarios is absent.

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

get_ohlcC

Return OHLC candles.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesTrading pair (e.g. `XBTUSD`).
intervalNoCandle width in minutes — one of `1, 5, 15, 30, 60, 240, 1440, 10080, 21600`.
sinceNoUnix timestamp; return candles after this.

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Return OHLC candles' without mentioning caching, rate limits, data source, timeframe limits, or whether results are paginated. This leaves significant gaps for the agent.

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

Conciseness2/5

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

The description is only three words, which is under-specified. While concise, it sacrifices completeness and does not earn its place with valuable information beyond the tool name.

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 output schema, the description should detail what the candles contain (open, high, low, close, volume, etc.). It fails to do so. The tool is simple but the description is insufficient for an agent to understand the return format.

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 input schema already explains each parameter. The description adds no extra meaning beyond the schema, making it adequate but not better.

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 'Return OHLC candles' clearly states the tool returns Open-High-Low-Close candle data, using a specific verb and resource. It is distinct from sibling tools like get_ticker or get_order_book, though it could elaborate on the exact fields returned.

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 get_recent_trades or get_ticker. No context about prerequisites, typical use cases, or exclusions is given.

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

get_open_ordersC

List currently open orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradesNo
userrefNo
cl_ord_idNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states the basic function but omits behavioral traits like read-only nature, return format, pagination, or rate limits.

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

Conciseness3/5

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

The description is a single concise sentence, which is appropriately sized for the basic purpose but lacks structure and additional context that would improve usability.

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 simple tool with three optional parameters and no output schema, the description is insufficient. It does not specify result details, pagination, or behavior when parameters are used.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any of the three optional parameters (trades, userref, cl_ord_id). Without schema or description support, the agent cannot understand parameter purpose.

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 'List currently open orders' uses a specific verb ('List') and resource ('open orders'), clearly distinguishing from siblings like get_closed_orders and query_orders.

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 on when to use this tool versus alternatives (e.g., query_orders for filtered views). The description does not provide when-not or context for use.

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

get_open_positionsC

List open margin positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidNoRestrict to specific position ids.
docalcsNoInclude realised P&L calculations.
consolidationNo`market` to consolidate by market.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It only says 'List open margin positions' with no disclosure of side effects, authentication needs, rate limits, data freshness, or other behavioral traits.

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

Conciseness3/5

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

The description is very concise at four words, which is efficient but lacks structure. It could benefit from additional context without becoming verbose.

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?

The tool has no output schema and no annotations, yet the description provides minimal context. It does not explain return format, default values, pagination, or user/workspace scope, leaving significant gaps for the agent.

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?

All three parameters have descriptions in the schema (coverage 100%), so the tool description need not add more. However, it adds no extra context beyond the schema, resulting in a baseline score of 3.

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 'List open margin positions,' specifying the verb 'List' and the resource 'open margin positions.' This is specific enough to distinguish from tools like get_open_orders, though it does not differentiate from a potential closed positions 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?

No guidance is provided on when to use this tool versus alternatives. For example, it does not explain that it is for margin positions only, nor does it mention scenarios where other tools like get_trade_balance might be more appropriate.

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

get_order_bookB

Return an order-book snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesTrading pair.
countNoMax number of asks/bids (1–500).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the snapshot is real-time, cached, or any rate limits. It only states the return type without operational details.

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

Conciseness4/5

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

The description is brief and front-loaded, using only a single sentence. It is concise without unnecessary words, though it could benefit from slight expansion for completeness.

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?

The tool lacks an output schema and the description does not explain the return structure (e.g., asks/bids format). Given the tool returns a complex type (order book), this omission leaves the agent underinformed.

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 coverage is 100%, with both parameters described in the schema. The description adds no further meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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?

Description clearly states the action (return) and resource (order-book snapshot). It succinctly conveys the tool's purpose and differentiates it from sibling tools like get_ticker or get_ohlc.

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. There are no explicit conditions, prerequisites, or exclusions, leaving the agent with insufficient context for selecting this tool over related ones.

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

get_recent_spreadsC

Return recent bid/ask spread snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYes
sinceNo

TDQS

C2/5.0
Behavior2/5

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

No annotations exist, and the description only says 'return recent snapshots.' It omits behavioral details such as whether the data is historical, how 'recent' is defined, or any rate limits. With no annotations, the description should disclose more.

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

Conciseness2/5

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

The description is a single sentence but lacks substance. While concise, it under-specifies the tool's behavior and provides no front-loaded key details. Better to include parameter context or usage hints.

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

Completeness1/5

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

Given no annotations, no output schema, two parameters with zero coverage, and no usage context, the description is severely incomplete. The agent cannot effectively use this tool without guessing critical details like input format or output structure.

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

Parameters1/5

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

Parameter descriptions are missing entirely (0% schema coverage). The description does not explain 'pair' (e.g., format like BTC/USD) or 'since' (timestamp semantics). The agent receives zero guidance beyond raw schema names.

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

Purpose3/5

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

The description states 'Return recent bid/ask spread snapshots,' which indicates the tool returns spread data. However, it does not define 'snapshots' (e.g., time series or single point) and fails to differentiate from siblings like get_order_book or get_ticker that also provide bid/ask info.

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 usage guidance is provided. The description does not specify when to use this tool over alternatives like get_order_book for full depth or get_ticker for current quote. Without context, an agent might misuse it.

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

get_recent_tradesC

Return recent trades for a pair.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYes
sinceNo
countNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, so description must disclose behavior. It only states 'return recent trades' without details on sorting, pagination, limits, or data freshness. Minimal behavioral disclosure.

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

Conciseness3/5

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

Single sentence is concise but at the expense of completeness. It is front-loaded but lacks structure to include necessary detail.

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

Completeness1/5

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

With no output schema, no parameter descriptions, and no annotations, the description fails to provide adequate context for a tool with 3 parameters. Agents cannot reliably invoke this tool.

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

Parameters1/5

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

Schema coverage is 0%; description adds no meaning to parameters. The meaning of 'since' and 'count' is not explained, leaving the agent to guess their types or formats.

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 tool returns recent trades for a pair. It is specific about the resource and action, but lacks explicit differentiation from sibling tools like get_trade_history or query_trades.

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 provided on when to use this tool versus alternatives. Does not mention prerequisites, context, or alternatives among siblings.

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

get_server_timeA

Return Kraken's current server time (unix and RFC1123).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must fully convey behavior. It correctly indicates a read-only operation returning time, but does not mention authentication requirements or potential rate limits.

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 sentence that efficiently conveys the tool's purpose without any unnecessary words.

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?

For a simple tool with no output schema, the description adequately explains what is returned. Some context about whether it requires authentication could be added, but it's not critical.

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 no parameters, so the description adds value by specifying the return format (Unix and RFC1123). Baseline for 0 parameters is 4.

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 it returns the server time in both Unix and RFC1123 formats. It is specific about the verb and resource, and it distinguishes itself from sibling tools that handle orders, balances, etc.

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 on when to use this tool versus alternatives. While the tool is simple, there is no mention of prerequisites or when not to use it.

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

get_system_statusA

Return the current trading-engine status (online, maintenance, cancel_only, post_only).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/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. It indicates a read-only operation returning status, but does not disclose rate limits, caching, or other behavioral traits. Adequate but minimal.

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 sentence with zero wasted words. It front-loades the action and explicitly enumerates the possible return values, making it efficient and easy to parse.

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

Completeness5/5

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

Given no parameters and no output schema, the description fully informs the agent of what the tool does and its return values. No additional context is necessary for correct invocation and interpretation.

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 zero parameters, and the description adds no parameter info needed. Per rubric, 0 parameters yields a baseline of 4, as the schema coverage is complete and no further semantics are required.

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 tool returns the current trading-engine status and lists the four possible values. It specifies the verb ('Return') and the resource ('trading-engine status'), distinguishing it from sibling tools which perform different operations.

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?

No explicit guidance is given on when to use this tool versus alternatives. However, the purpose is self-evident given the unique return value, so implied usage is clear. Lack of exclusions or context for when-not keeps it at a 3.

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

get_tickerC

Return ticker data (ask, bid, last, vol, etc.) for the given pairs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It only states the return data type, but omits behavioral traits like rate limits, pagination, or side effects. The tool is read-only, but this is implied rather than stated.

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 sentence with no unnecessary words, directly stating the tool's purpose and output. It is front-loaded and efficient.

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?

For a simple tool with one optional parameter and no output schema, the description covers the basic purpose but lacks detail on parameter usage and behavioral context. It is minimally complete but could be improved with more specificity.

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

Parameters2/5

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

Schema description coverage is 0%, but the description adds minimal value: it mentions 'for the given pairs' but does not explain the format or meaning of the 'pair' array elements, nor whether multiple pairs are supported. The description fails to compensate for the missing schema documentation.

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 tool returns ticker data (ask, bid, last, vol, etc.) for given pairs, using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like get_ohlc or get_order_book, though the data type is distinct.

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, nor does it mention any prerequisites or context. With many sibling tools, explicit usage guidance is missing.

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

get_trade_balanceB

Return trade balance summary (equity, margin, free margin) in asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoZUSD

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description should disclose behavioral traits. It only states the tool returns a summary, failing to mention if it has side effects, requires authentication, or has rate limits. The read-only nature is implied but not explicit.

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, concise sentence that efficiently communicates the tool's purpose without unnecessary words.

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, the description covers the basic return fields but lacks details on output format or structure. Without an output schema, more specificity would be helpful.

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 coverage is 0%, but the description adds context by noting the result is in the specified 'asset'. However, it does not explain the default value or list possible assets, leaving ambiguity.

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 tool returns a trade balance summary including equity, margin, and free margin for a specified asset. It distinguishes from other balance tools by focusing on trade-specific metrics.

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 siblings like get_account_balance or get_extended_balance. The agent must infer context from the tool name alone.

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

get_trade_historyC

Return historical fills.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo`all`, `any position`, `closed position`, `closing position`, `no position`.
tradesNoEmbed associated trade records.
startNoLower bound (unix or txid).
endNoUpper bound.
ofsNoPagination offset.
consolidate_takerNo
without_countNo

TDQS

C2.8/5.0
Behavior2/5

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

The description is minimal and does not disclose behavioral traits like pagination (via 'ofs'), data freshness, or any limitations. With no annotations provided, the description carries the full burden but fails to add 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.

Conciseness3/5

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

The description is extremely short (3 words), which is concise but lacks necessary detail for a tool with 7 parameters and no output schema. It is not front-loaded with key information; it is merely a basic statement.

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 output schema, 7 parameters, and many sibling trade-related tools, the description is incomplete. It does not explain return format, pagination behavior, or how parameters affect results, leaving significant gaps for an agent.

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 coverage is 71%, with 5 of 7 parameters having descriptions. The tool description adds no additional meaning beyond the schema; it repeats nothing but also enriches nothing. The baseline is 3 given moderate coverage and no extra value.

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 'Return historical fills' clearly states the verb and resource, indicating it retrieves past trade executions. However, it does not distinguish it from siblings like 'get_recent_trades' or 'query_trades', which also deal with trade history.

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 on when to use this tool versus alternatives such as 'get_recent_trades' or 'query_trades'. No mention of filtering by type, date range, or other criteria that might differentiate it.

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

get_trade_volumeB

Return 30-day volume and current fee tier for the requested pairs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states the basic output. It does not disclose rate limits, data freshness, error handling, or side effects, which is needed without annotations.

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, front-loaded sentence with no unnecessary words. It efficiently communicates the core function.

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 output schema and a single optional parameter, the description covers the basic purpose but lacks output format details, edge cases, and behavior when no pairs are specified.

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

Parameters2/5

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

Schema description coverage is 0%. The description mentions 'for the requested pairs' but does not explain the format, default behavior, or required nature of the 'pair' parameter, leaving significant ambiguity.

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 specifies the tool returns 30-day volume and current fee tier for requested pairs. It uses a specific verb and resource, distinguishing it from sibling tools like get_ticker.

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 volume/fee data but gives no explicit when-to-use or alternatives. No exclusions or context provided despite available sibling tools.

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

get_websockets_tokenA

Issue a token for use with the private WebSocket API.

Tokens are valid for 15 minutes from issue. Re-issue before expiry. Requires the API key to have the WebSocket interface permission enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses token lifetime (15 min) and permission requirement, but does not describe error behavior (e.g., what happens if permission is missing) or any side effects. Additional detail would improve transparency.

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?

Two sentences, each conveying distinct and essential information (purpose, validity, permission). No redundancy or filler.

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?

For a parameterless tool without output schema, description covers purpose, token lifetime, and required permission. It could be enhanced by mentioning error scenarios or token format, but current detail is sufficient for basic usage.

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?

Tool has no parameters (schema coverage 100%), so baseline is 4. Description adds value by explaining the token's purpose, validity period, and permission requirement, which goes beyond the empty schema.

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?

Description clearly states 'Issue a token for use with the private WebSocket API,' using a specific verb and resource. It distinguishes itself from sibling tools focused on trading, orders, and account management by being the only tool for WebSocket authentication.

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

Usage Guidelines4/5

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

Mentions required permission (WebSocket interface enabled) and token validity (15 minutes), providing context for proper use. However, it lacks explicit guidance on when not to use or alternatives, such as other authentication methods.

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

get_withdrawal_addressesC

List whitelisted withdrawal addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
aclassNo
methodNo
keyNo
verifiedNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so description must cover behavioral traits. It fails to mention authentication requirements, that only whitelisted addresses are returned, or any output characteristics.

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?

Single sentence with no fluff, efficiently communicating the core action.

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?

With 5 undocumented parameters and no output schema, the description is insufficient for an agent to effectively use filtering or understand return values.

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

Parameters1/5

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

Schema has 0% description coverage and description adds no information about the 5 optional parameters (asset, aclass, method, key, verified), leaving their purpose completely undocumented.

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 'list' and resource 'whitelisted withdrawal addresses', distinguishing it from siblings like get_withdrawal_methods and get_withdrawal_info.

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 on when to use this tool vs alternatives. With many withdrawal-related siblings, the description lacks context for proper tool selection.

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

get_withdrawal_infoB

Preview withdrawal cost (fee, limits).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset code.
keyYesWithdrawal-address nickname as registered on Kraken.
amountYesAmount of `asset` to withdraw.

TDQS

B3.4/5.0
Behavior3/5

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

The description implies a read-only operation ('Preview'), but without annotations, it should explicitly state that no withdrawal is initiated. It does not disclose any behaviors beyond fee and limits, such as whether the amount parameter affects the preview.

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?

A single, front-loaded sentence with no redundant information. Every word contributes to the purpose.

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?

With no output schema and no annotations, the description lacks details on return format, error handling, or behavior when parameters are varied. It is too brief for a tool with three required parameters.

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 coverage is 100% with basic descriptions for each parameter. The description adds general context ('fee, limits') but does not elaborate on how parameters interact or any specific constraints beyond the schema.

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 tool's purpose: 'Preview withdrawal cost (fee, limits).' The verb 'Preview' and resource 'withdrawal cost' are specific and distinct from sibling tools like 'withdraw' or 'cancel_withdrawal'.

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 such as get_withdrawal_status or withdraw. There is no mention of prerequisites or when not to use it.

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

get_withdrawal_methodsC

List available withdrawal methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
aclassNo
networkNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states 'list', implying read-only, but omits any behavioral traits such as authentication needs, rate limits, or what constitutes a 'withdrawal method'. Very minimal disclosure.

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

Conciseness3/5

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

The description is a single phrase, making it concise but under-specified. It is not verbose, but the brevity leads to missing critical information. It earns its place but does not suffice.

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 presence of sibling tools, 3 undocumented optional parameters, and no output schema, the description is insufficient. It does not explain return values, filtering behavior, or what constitutes a withdrawal method.

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

Parameters1/5

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

Schema coverage is 0%, meaning parameters asset, aclass, and network have no descriptions. The description adds no information about these parameters, failing to compensate for the schema's lack of documentation.

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 states 'List available withdrawal methods', which clearly identifies the verb (List) and resource (withdrawal methods). However, it does not differentiate from similar siblings like get_deposit_methods, slightly reducing clarity.

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 on when to use this tool vs alternatives. It does not mention that it is for withdrawal methods only, nor does it provide context for when the optional parameters should be applied.

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

get_withdrawal_statusC

Return status of recent withdrawals.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
aclassNo
methodNo
startNo
endNo
cursorNo
limitNo

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, description must cover behavior. It only says 'return status' but omits details like pagination, filtering, or rate limits. Incomplete for a 7-parameter tool.

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

Conciseness2/5

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

Single sentence is too short for a tool with 7 parameters. Under-specification, not concise in a helpful way.

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

Completeness1/5

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

No output schema, no annotations, 7 undocumented parameters. Description fails to provide enough context for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to any of the 7 parameters. Leaves agent guessing parameter roles.

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?

Clearly states it returns status of withdrawals, but does not differentiate from sibling 'get_withdrawal_info'. The term 'recent' is vague.

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 on when to use this tool versus alternatives like 'get_withdrawal_info'. No exclusion criteria or context provided.

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

list_earn_allocationsC

List current allocations across earn strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
ascendingNo
hide_zero_allocationsNo
converted_assetNo

TDQS

C2.7/5.0
Behavior2/5

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

Without annotations, the description carries the full burden for behavioral disclosure. It only says 'list,' implying read-only, but no details on rate limits, data freshness, or other constraints. Minimal context beyond the obvious.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, but it is too sparse to be effective. Conciseness should not come at the expense of necessary detail.

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 output schema and the tool's simplicity, the description still fails to explain what a typical response contains or how the optional parameters affect results. Incomplete for agent decision-making.

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

Parameters1/5

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

Three parameters exist with 0% schema description coverage, and the tool description does not explain any of them (ascending, hide_zero_allocations, converted_asset). No value added beyond the schema itself.

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 uses a specific verb 'List' and clearly identifies the resource 'current allocations across earn strategies.' It distinguishes well from sibling tools like allocate_earn (create), deallocate_earn (remove), and get_earn_allocation_status (status check).

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 on when to use this tool versus alternatives. It does not mention prerequisites, context, or when not to use it, leaving the agent to infer based on the name alone.

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

list_earn_strategiesC

Browse available earn strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
lock_typeNo
cursorNo
limitNo
ascendingNo

TDQS

C2.4/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 for disclosing behavioral traits. It only says 'Browse,' implying read-only, but does not elaborate on pagination, sorting, authentication, or any side effects. This is insufficient for an AI agent to understand the tool's behavior.

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

Conciseness2/5

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

The description is extremely concise at only two words, but this comes at the cost of essential information. It lacks structure and detail, wasting the opportunity to convey purpose and usage. An effective description would be concise yet informative.

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 tool has 5 parameters with no schema descriptions, no output schema, and no annotations, the description is far from complete. It fails to provide enough context for an agent to correctly invoke and interpret results, especially compared to sibling tools that may have richer documentation.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the input schema provides no parameter descriptions. The description adds no meaningful information about the five parameters (asset, lock_type, cursor, limit, ascending), leaving the agent without guidance on how to use them. The tool needs explicit parameter documentation.

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 'Browse available earn strategies.' clearly states the action (browse/list) and the resource (earn strategies). It distinguishes from sibling tools by naming a specific resource, but lacks detail on scope or filtering, which prevents a higher score.

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. The description does not mention context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name.

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

query_ledgersC

Look up specific ledger entries by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUp to 20 ledger ids.
tradesNoInclude trade detail rows for `trade` entries.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, rate limits, or error conditions. The minimal description adds little value beyond what the schema already indicates.

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

Conciseness4/5

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

The description is a single concise sentence with no waste. It is front-loaded and easy to read, though it could be slightly more structured with bullet points for multi-param tools.

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?

The description is too minimal for a tool with no output schema. It does not explain the return format, pagination, or error behavior, leaving the agent without sufficient context for reliable invocation.

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 both parameters. The description adds no additional meaning beyond 'by id,' which is redundant with the schema. Baseline score of 3 is appropriate.

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 'Look up' and the resource 'ledger entries by id,' making the tool's purpose understandable. However, it does not differentiate from the sibling tool 'get_ledgers,' which may have a similar function.

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 'get_ledgers.' The description simply says 'by id' but lacks context about appropriate usage scenarios or exclusions.

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

query_ordersA

Look up specific orders by transaction id (up to 50).

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYes
tradesNo
userrefNo
consolidate_takerNo

TDQS

A3.5/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 full burden. It states the tool is a lookup operation but does not disclose behavior when txids are invalid, whether it is read-only, any authentication requirements, or rate limits. The optional parameters (trades, userref, consolidate_taker) are not mentioned, leaving gaps in behavioral understanding.

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, front-loaded sentence that conveys the essential information (verb, resource, parameter, limit) without any extraneous words. Every part is necessary.

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 4 parameters, no output schema, and no annotations, the description is too sparse. It covers only the txid parameter and the 50-limit constraint, omitting the optional parameters and their impact on results. There is no description of the return data or error handling, leaving the tool incomplete for an agent.

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

Parameters2/5

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

Schema coverage is 0%, meaning the description must explain parameters. It only references the required 'txid' (transaction id) without specifying format or constraints. The three optional parameters (trades, userref, consolidate_taker) are not described at all, so the description adds minimal meaning beyond the schema.

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 specifies 'Look up specific orders by transaction id (up to 50)', clearly stating the verb (look up), resource (orders), and key constraint (up to 50 txids). This distinguishes it from sibling tools like query_trades (trades) or get_open_orders (open orders).

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

Usage Guidelines4/5

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

The description provides clear context: use this tool when you have specific transaction IDs to look up orders, with a limit of 50. It does not explicitly state when not to use it or name alternatives, but the context is sufficient for an agent to distinguish from siblings.

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

query_tradesB

Look up specific trades by id (up to 20).

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYes
tradesNo

TDQS

B3.4/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 full burden of behavioral disclosure. It only states the action and does not mention any behavioral traits such as read-only nature, authentication requirements, rate limits, or side effects. For a read operation, this is insufficient.

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 sentence of 7 words with no unnecessary information. Every word is meaningful, achieving maximum conciseness while conveying the core purpose.

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 low complexity (2 parameters, no output schema), the description covers the basic purpose but omits details about return values and the use of the second parameter. It is minimally adequate but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the txid parameter (by id) but provides no information about the 'trades' parameter (boolean/null), leaving its purpose unclear.

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 action 'look up', the resource 'trades', and the scope 'by id (up to 20)'. This distinguishes it from sibling tools like get_recent_trades or get_trade_history, which serve different purposes.

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 specific trades by ID, but does not provide explicit guidance on when to use this tool versus alternatives. No when-not or alternative tool names are mentioned.

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

remove_exportA

Cancel a pending export or delete the file of a completed one.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesExport request id.
typeNo`cancel` or `delete`.delete

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It implies destructive actions (cancellation and file deletion) but does not mention consequences, permissions required, reversibility, or error handling. For example, it doesn't state what happens if a wrong type is chosen or if the request ID is invalid.

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, front-loaded sentence that conveys the two main actions efficiently. No unnecessary words or repetition, making it easy to parse.

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 (2 parameters, no output schema, no nested objects), the description covers the core functionality. However, it omits information about return values, error cases, or side effects (e.g., whether the file is permanently deleted). This leaves gaps for an AI agent to handle edge cases.

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?

With 100% schema description coverage, the baseline is 3. The description adds meaningful context beyond the schema by linking the 'cancel' and 'delete' type values to the export's state (pending vs. completed), which helps the agent understand the parameter's impact.

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 ('Cancel' or 'delete') and the resource ('export'), and distinguishes two distinct use cases (pending vs. completed). This is specific and unambiguous, setting it apart from query tools like get_export_status or retrieve_export.

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 explains when to use the tool (for pending or completed exports) but does not explicitly state when not to use it or suggest alternatives. For example, it could mention that checking status should use get_export_status, or that request_export_report creates the export. This lack of exclusion guidance reduces clarity.

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

request_export_reportB

Submit a request to export trades or ledgers as CSV/TSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportYes`trades` or `ledgers`.
descriptionYesHuman label shown in the UI.
formatNo`CSV` (default) or `TSV`.
fieldsNoComma-separated column list (`all` for everything).
starttmNoStart time (unix), defaults to one year ago.
endtmNoEnd time (unix), defaults to now.

TDQS

B3.2/5.0
Behavior2/5

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

The description implies an asynchronous operation ('submit a request') but does not disclose the response format (likely an export ID), potential errors, rate limits, or that it does not return data directly. With no annotations, the description carries the full burden and falls short.

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?

Single sentence of 8 words, front-loaded with essential purpose. No wasted words.

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 6 parameters, required fields, and no output schema, the description omits critical workflow context: it does not mention that the request is asynchronous, what the response contains (e.g., a report ID for later retrieval), or the need to check status via 'get_export_status'. Incomplete for a multi-step export process.

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 baseline is 3. The description restates 'trades or ledgers' and 'CSV/TSV', adding no new information beyond the schema. It does not compensate for any gaps.

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 action ('submit a request'), the resource ('export trades or ledgers'), and the output format ('CSV/TSV'). It effectively distinguishes from siblings like 'retrieve_export' (which retrieves the file) and 'get_export_status' (which checks status).

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 on when to use this tool versus alternatives (e.g., 'get_ledgers' or 'query_ledgers' for direct data retrieval). Lacks context about when to submit a request vs. other actions.

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

retrieve_exportA

Retrieve the binary content of a completed export by id.

Returns the raw bytes Base64-encoded as a string under the data key.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses the return format (Base64-encoded bytes) and implies a read operation by using 'retrieve'. However, with no annotations, it does not explicitly state non-destructive behavior, required permissions, or any side effects (e.g., whether multiple retrievals are possible).

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?

Two sentences deliver the purpose and output format directly with no extraneous words. Every sentence adds value.

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?

The description explains the output format, which is helpful given no output schema. However, it lacks information about error handling (e.g., what if the export is not yet completed or the id is invalid) and does not address the dependency on export completion status.

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 single 'id' parameter is described as 'by id', but no additional meaning or format constraints are provided. While the context of 'export id' is inferred, schema coverage is 0%, so the description adds minimal value beyond the schema.

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 action (retrieve), the resource (binary content of a completed export), and the input (by id). It also specifies the output format (Base64-encoded string under 'data' key). This distinguishes it from sibling tools like 'request_export_report' or 'get_export_status'.

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 the tool should be used after an export is completed, but does not explicitly state when to use it versus alternatives like 'get_export_status' or 'request_export_report'. No 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.

wallet_transferB

Transfer between Kraken wallet types (e.g. Spot ↔ Futures).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset code.
from_walletYesSource wallet (`Spot Wallet`, `Futures Wallet`, ...).
to_walletYesDestination wallet.
amountYesAmount.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description alone must disclose behavioral traits. It only mentions 'transfer', implying mutation, but lacks details on fees, reversibility, authorization requirements, or what happens on failure. This is a significant gap for a transfer operation.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is front-loaded with the core action. However, it may be too short to fully serve its purpose.

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 tool has 4 required parameters and no output schema, the description should provide sufficient context. It only describes the basic function, omitting important aspects like error handling, permissions, or return behavior. It is not complete enough for an agent to use without additional information.

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 baseline is 3. The description adds a usage example ('Spot ↔ Futures') but does not go beyond the schema descriptions. It adds minimal extra meaning.

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 tool transfers between Kraken wallet types, with a concrete example (Spot ↔ Futures). It uses a specific verb and resource, distinguishing it from sibling tools like account_transfer.

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 provides no explicit guidance on when to use this tool versus alternatives like account_transfer or withdraw. The example gives context but no when-not-to-use or prerequisite information.

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

withdrawC

Submit a withdrawal.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesAsset code.
keyYesWhitelisted address nickname.
amountYesAmount.
addressNoOptional address override (only for methods that allow it).
max_feeNoMaximum acceptable fee.

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description lacks any behavioral details such as fees, processing time, reversibility, or whether it creates a pending withdrawal. The description is too minimal to inform an agent about side effects.

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

Conciseness2/5

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

The description is extremely short (one sentence), but it is under-specified for the tool's complexity. It sacrifices necessary detail for brevity, making it less useful than it could be.

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 absence of an output schema, the description should explain what happens after a withdrawal is submitted (e.g., returns an ID or status). It fails to do so, leaving the agent without post-invocation 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?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no extra meaning beyond the schema, but the schema itself is sufficiently self-explanatory.

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

Purpose3/5

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

The description states 'Submit a withdrawal,' which is a verb+resource pairing. However, it does not differentiate this tool from sibling tools like 'wallet_transfer' or 'cancel_withdrawal,' and it fails to specify whether this refers to crypto/fiat or internal/external withdrawals.

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?

There is no guidance on when to use this tool versus alternatives (e.g., when to use 'wallet_transfer' instead). No prerequisites or context for its invocation are provided.

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. Dates show when Glama detected each change.

  1. 54 tool updatesv0.1.0
    • First observedaccount_transfer
    • First observedadd_order
    • First observedadd_order_batch
    • First observedallocate_earn
    • First observedamend_order
    • First observedcancel_all_orders
    • First observedcancel_all_orders_after
    • First observedcancel_order
    • First observedcancel_order_batch
    • First observedcancel_withdrawal
    • First observedcreate_subaccount
    • First observeddeallocate_earn
    • First observededit_order
    • First observedget_account_balance
    • First observedget_api_key_info
    • First observedget_asset_pairs
    • First observedget_assets
    • First observedget_closed_orders
    • First observedget_credit_lines
    • First observedget_deposit_addresses
    • First observedget_deposit_methods
    • First observedget_deposit_status
    • First observedget_earn_allocation_status
    • First observedget_earn_deallocation_status
    • First observedget_export_status
    • First observedget_extended_balance
    • First observedget_ledgers
    • First observedget_ohlc
    • First observedget_open_orders
    • First observedget_open_positions
    • First observedget_order_book
    • First observedget_recent_spreads
    • First observedget_recent_trades
    • First observedget_server_time
    • First observedget_system_status
    • First observedget_ticker
    • First observedget_trade_balance
    • First observedget_trade_history
    • First observedget_trade_volume
    • First observedget_websockets_token
    • First observedget_withdrawal_addresses
    • First observedget_withdrawal_info
    • First observedget_withdrawal_methods
    • First observedget_withdrawal_status
    • First observedlist_earn_allocations
    • First observedlist_earn_strategies
    • First observedquery_ledgers
    • First observedquery_orders
    • First observedquery_trades
    • First observedremove_export
    • First observedrequest_export_report
    • First observedretrieve_export
    • First observedwallet_transfer
    • First observedwithdraw

TDQS

B3/5.0
Disambiguation5/5

Each tool targets a distinct action or resource (e.g., add_order vs add_order_batch, cancel_order vs cancel_all_orders). Descriptions clearly differentiate between similar operations, and the batch variants are explicitly noted.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., get_account_balance, add_order), but a few use noun_verb (wallet_transfer, account_transfer). The mix of 'get_' and 'list_' prefixes is minor and does not cause confusion.

Tool Count3/5

54 tools is on the high side for a single server, but the Kraken API covers many areas (orders, account, deposits, earn, exports). The count is justified given the platform's complexity, though it may feel heavy for users.

Completeness4/5

The tool set covers major workflows: order lifecycle, transfers, deposits/withdrawals, earn strategies, reports, and market data. Minor gaps exist (e.g., no direct margin trade tools), but the core trading experience is well-supported.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server for interacting with the CoinEx cryptocurrency exchange, enabling market data queries and authenticated trading operations via AI agents.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for cryptocurrency trading via Freqtrade, enabling trade management, balance checks, strategy configuration, backtesting, and bot lifecycle control from any MCP-compatible AI agent.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for interacting with the Kraken cryptocurrency exchange, providing 32 tools for trading, account management, deposits, withdrawals, and grid trading automation.
    32
    15
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that exposes QuantXData's institutional crypto market data APIs to AI assistants, enabling natural language queries for trades, order books, OHLCV, options, and more across 120+ exchanges.
    12
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/XavierBeheydt/mcp-kraken'

If you have feedback or need assistance with the MCP directory API, please join our Discord server