Skip to main content
Glama
bunq

bunq Partner MCP

Official
by bunq

bunq Partner MCP

An MCP (Model Context Protocol) server that connects AI assistants like Claude to the bunq Partner API. Once set up, you can drive the entire partner onboarding flow — provisioning users, KYC, accounts, payments, cards, and compliance — through natural language conversation.

What you can do

After connecting, you can ask Claude things like:

  • "Provision a new user with email jan@example.nl and phone +31612345678"

  • "Check the status of provision 4521"

  • "Create a EUR bank account for user 8823"

  • "Make a payment of €50 from account 12 to IBAN NL91ABNA0417164300"

  • "Show me all open compliance inquiries for user 9002"

  • "Register a webhook for mutations on user 8823 pointing to https://myapp.com/webhooks"

Claude handles the full auth lifecycle, request signing, token management, and status polling automatically.

Related MCP server: actual-mcp-server

Prerequisites

Setup

1. Clone and build

git clone https://github.com/bunq/partner-mcp.git
cd partner-mcp
npm install
npm run build

2. Add to Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bunq-partner": {
      "command": "node",
      "args": ["/absolute/path/to/partner-mcp/dist/index.js"],
      "env": {
        "BUNQ_API_KEY": "your_partner_api_key_here",
        "BUNQ_ENV": "sandbox"
      }
    }
  }
}

Replace /absolute/path/to/partner-mcp with the actual path where you cloned the repo.

3. Restart Claude Desktop

Quit and reopen Claude Desktop. You should see the bunq tools available.

4. Verify the connection

Ask Claude: "Check my bunq session info" — it should respond with your authenticated user ID and environment.

Environments

BUNQ_ENV

Base URL

sandbox (default)

https://partner-api.sandbox.bunq.com

production

https://api.partner.bunq.com

Always test in sandbox first. Sandbox API keys contain a sandbox_ prefix.

Updating

When a new version is released:

cd partner-mcp
git pull
npm install
npm run build

Then restart Claude Desktop.

Available tools (41)

The full API documentation — covering auth, OAuth, user provision, onboarding & KYC, webhooks, monetary accounts, payments, cards, and compliance — lives in GitBook:

📚 Partner Onboarding API docs

Project structure

partner-mcp/
├── src/
│   ├── index.ts          # MCP server entry point (stdio transport)
│   ├── bunq-client.ts    # HTTP client + auth lifecycle
│   ├── encryption.ts     # Application-layer request/response encryption
│   ├── tools.ts          # Tool definitions (MCP schemas)
│   └── handler.ts        # Tool → API call mapping
├── test/                 # Unit tests (node:test)
├── partner-api-swagger.yaml       # Maintained OpenAPI spec
├── package.json
└── tsconfig.json

Support

Available Tools

45 tools
close_provisionB

Cancels a user provision. Sets status to CANCELLED.

ParametersJSON Schema
NameRequiredDescriptionDefault
provision_idYesID of the provision to cancel.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the action and outcome, but does not mention side effects, permissions, reversibility, or idempotency. For a cancellation tool, these are critical.

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 at two sentences, quickly conveying the core action. However, it could be better structured with a slightly more informative lead, but still 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?

No output schema exists, and the description does not explain what the tool returns (e.g., the cancelled provision object). Given the complexity of provisioning among many sibling tools, the description is insufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100% for the one parameter, and the description adds no additional meaning beyond the schema. Baseline 3 is appropriate as the description does not enhance parameter understanding.

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 'Cancels a user provision' with a specific verb and resource, and describes the effect 'Sets status to CANCELLED'. It unambiguously distinguishes from sibling tools like create_provision or list_provisions.

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 cancellation is appropriate. The description lacks context on 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.

create_bank_accountC

Creates a EUR IBAN bank account (MonetaryAccountBank) for a provisioned user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the user.
currencyNoISO-4217 currency code.EUR
descriptionNoAccount display name.Main Account

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must bear full behavioral disclosure. It only mentions creation but omits side effects, reversibility, idempotency, authorization needs, or rate limits. Additionally, the description specifies 'EUR IBAN' while the schema allows other currencies via the currency parameter, creating potential confusion.

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 that front-loads the primary action and resource. It is efficient, though a bit more context (like return value) could be added without significant bloat.

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 and no annotations, the description is insufficient. It fails to specify what is returned, prerequisites (e.g., provisioning status), or constraints like account creation limits. The three parameters are simple, but the description does not address the full context needed for safe invocation.

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 100% so baseline is 3, but the description adds no meaningful parameter guidance. Stating 'EUR IBAN' contradicts the schema's currency parameter default and flexibility, potentially misleading agents about permissible values.

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 ('Creates'), the resource ('EUR IBAN bank account (MonetaryAccountBank)'), and the context ('for a provisioned user'). It distinguishes from sibling tools like create_external_account or create_debit_card by specifying the account type and currency.

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 create_external_account or create_credit_card. It does not mention prerequisites (e.g., user must be provisioned) 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.

create_card_cvc2B

Generates a new CVC2 security code for a card. This is an encrypted endpoint — the request is end-to-end encrypted on top of TLS.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoThe type of CVC2 to generate.
card_idYesCard ID.
user_idYesUser ID.

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. It discloses the encrypted endpoint but does not mention side effects (e.g., invalidation of previous CVC2), prerequisites, rate limits, or whether the operation is destructive. Minimal behavioral context.

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 earning its place: first states purpose concisely, second adds essential security context. 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?

With no output schema and no annotations, the description is sparse. It does not explain return values, idempotency, or failure scenarios. Given the tool has 3 parameters and is a mutation, more context is needed.

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 the schema already describes all parameters. The description adds no additional meaning beyond what the schema provides. 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?

The description clearly states 'Generates a new CVC2 security code for a card' with a specific verb ('Generates') and resource ('CVC2 security code for a card'), distinguishing it from siblings like list_card_cvc2 and get_card_cvc2.

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 when-to-use or when-not-to-use guidance. It only mentions encryption, which is a security detail. Usage is implied by the action, but no alternatives or exclusions are discussed.

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

create_card_panB

Generates and retrieves the primary account number (PAN) for a card. This is an encrypted endpoint — the request is end-to-end encrypted on top of TLS.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYesCard ID.
user_idYesUser ID.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It highlights encryption but does not disclose whether the operation is destructive, idempotent, or requires special permissions. The purpose says 'generates and retrieves', which is ambiguous 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.

Conciseness5/5

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

Two concise sentences that front-load the core purpose and add one relevant behavioral detail (encryption). Every word earns its place.

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 ideally clarify what the tool returns (e.g., the generated PAN). It does not. Also, for a potentially sensitive operation, more context about side effects or permissions 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 100%, so baseline is 3. The description does not add any meaning beyond the schema's brief property descriptions ('Card ID.', 'User ID.'). No additional constraints or format details are given.

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 generates and retrieves the primary account number (PAN) for a card, which is a specific action. It distinguishes from sibling tools like create_card or create_card_cvc2 by focusing on the PAN.

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 create_card_cvc2 or get_card. The description only mentions encryption, not usage context or prerequisites.

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

create_credit_cardA

Orders a new Mastercard credit card for a user. Use order_status=VIRTUAL_DELIVERY for immediate virtual card, or NEW_CARD_REQUEST_RECEIVED for physical delivery by post.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
second_lineYesSecond line of text on the card (max 17 chars).
name_on_cardNoName as it appears on the card.
order_statusNoPhysical delivery or virtual card.VIRTUAL_DELIVERY
product_typeYesCard product type.
product_sub_typeNoCard design sub-type (partner-specific value).

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided. Description lacks details on side effects, fees, approval process, error conditions, or prerequisites (e.g., identity verification).

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?

Extremely concise: one sentence verb+resource plus a single usage hint. Every word is informative 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?

Missing key context such as return values, error handling, prerequisites (e.g., user must have submitted identity verification), and behavior specifics for physical card delivery.

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 baseline is 3. Description adds context for order_status parameter (virtual vs physical), but adds minimal value for other 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?

Description uses specific verb 'Orders' and resource 'Mastercard credit card', clearly distinguishing from sibling tools like create_debit_card and create_bank_account.

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?

Explicitly explains when to use each order_status value. However, it does not provide guidance on when to use this tool vs alternatives like create_debit_card.

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

create_debit_cardA

Orders a new Mastercard debit card for a user. Use order_status=VIRTUAL_DELIVERY for immediate virtual card, or NEW_CARD_REQUEST_RECEIVED for physical delivery by post.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
second_lineYesSecond line of text on the card (max 17 chars).
name_on_cardNoName as it appears on the card.
order_statusNoPhysical delivery or virtual card.VIRTUAL_DELIVERY
product_typeYesCard product type (partner-specific value).
product_sub_typeNoCard design sub-type (partner-specific value).
monetary_account_id_fallbackNoFallback account ID if balance is insufficient.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It discloses delivery modes but fails to mention side effects (e.g., cost, shipping time, card activation) or prerequisites (e.g., account must exist). The fallback parameter hint is not explained.

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: first states purpose, second provides key usage hint. No filler, front-loaded with essential information.

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, so description could compensate by hinting at return value (e.g., card ID). It covers the main delivery distinction but omits details on error conditions, card limits, or activation steps. Adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds meaning to order_status by clarifying usage for virtual vs. physical delivery. However, it does not elaborate on other parameters like product_type or monetary_account_id_fallback, which could benefit from additional context.

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

Purpose5/5

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

Description clearly states 'Orders a new Mastercard debit card for a user,' specifying verb and resource. It distinguishes from sibling tools like create_credit_card by naming Mastercard debit, and provides specific delivery options.

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?

Description explicitly states when to use each order_status value (VIRTUAL_DELIVERY for immediate virtual, NEW_CARD_REQUEST_RECEIVED for physical). While it doesn't exclude alternatives like create_credit_card, the context of sibling tools makes the purpose clear.

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

create_external_accountB

Creates a non-EUR external monetary account (MonetaryAccountExternal) via CurrencyCloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoExternal service provider.CURRENCY_CLOUD
user_idYesID of the user.
currencyYesISO-4217 currency code (non-EUR).
descriptionNoAccount display name.External Account
display_nameNoLegal name of user/company.

TDQS

B3.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 but only states the basic purpose. It does not disclose behavioral traits such as required permissions, reversibility, failure modes, or that it is a write/mutation operation.

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 purpose efficiently with 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 the tool has 5 parameters, no output schema, and no annotations, the description is too brief. It does not explain return values, side effects, prerequisites, or what happens on success/failure.

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 the description does not add any parameter explanations beyond what the schema already provides. Baseline of 3 is appropriate as the description adds no 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 verb ('Creates') and the specific resource ('non-EUR external monetary account via CurrencyCloud'). It distinguishes from sibling tools like 'create_bank_account' by specifying the non-EUR and CurrencyCloud context.

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 creating non-EUR external accounts via CurrencyCloud, but provides no explicit when-to-use, when-not-to-use, or alternatives. It does not mention excluding EUR or using 'create_bank_account' for EUR accounts.

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

create_oauth_clientA

Creates a new OAuth client for the partner account. Required before provisioning any users.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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 indicates a mutation ('creates') and a prerequisite, but does not disclose permissions, side effects, or limits, which is insufficient for a tool with no 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 two sentences with zero wasted words, front-loading the action and adding essential context about prerequisite role.

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 provides minimal context. It does not explain what an OAuth client entails, default settings, or the need for subsequent steps (e.g., registering callback URL), leaving gaps for the agent.

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

Parameters4/5

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

The input schema has zero parameters and 100% coverage, so no parameter explanation is needed. The description adds no parameter info, but baseline 4 is appropriate given no parameters exist.

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 ('Creates') and resource ('new OAuth client for the partner account'), and distinguishes from sibling tools like list_oauth_clients and register_oauth_callback_url by specifying creation context.

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 usage context by stating it is 'Required before provisioning any users,' but does not explicitly mention when not to use or alternatives like register_oauth_callback_url.

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

create_paymentB

Creates a payment from a monetary account. For provisioned users without PSD2 access, only internal transfers between Eva and the partner are allowed. Description is limited to 140 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount as decimal string (e.g. '10.00').
user_idYesSending user's ID.
currencyNoISO-4217 currency code.EUR
account_idYesSource monetary account ID.
descriptionYesPayment description (max 140 chars).
counterparty_ibanYesRecipient IBAN.
counterparty_nameNoRecipient name.
merchant_referenceNoOptional merchant reference for tracking (max 35 chars).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It mentions the payment creation and an internal transfer restriction, but fails to disclose other important behaviors such as return values, success indicators, authorization requirements, or whether the operation is destructive.

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 well-structured sentences with no wasted words. The first sentence states the core action, and the second adds an important usage condition. Front-loads the main 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 absence of annotations and output schema, the description covers some context (internal transfer restriction, char limit) but leaves gaps about expected outcomes, error conditions, and process details for an 8-parameter tool.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by noting the 140-character limit for the description parameter, but does not enrich understanding of other parameters beyond the schema.

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 creates a payment from a monetary account, and adds a specific restriction about provisioned users without PSD2 access. This helps distinguish it from sibling tools like list_payments or create_bank_account.

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?

Provides a specific condition for when internal transfers are allowed (provisioned users without PSD2), giving some usage context. However, it does not explicitly state when not to use the tool or suggest alternatives.

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

create_provisionA

Provisions a new UserPerson under the partner account. Kicks off the full onboarding flow. Returns a provision_id to monitor progress via get_provision. The provision goes through sub-statuses: PENDING_PROCESS_USER → PENDING_PROCESS_RELATION_USER → PENDING_PROCESS_OAUTH_REQUEST → PENDING_PROCESS_USER_ONBOARDING. When ACTIVE, a credential.token_value is returned — this is Eva's API key. It expires in 1h (sandbox) / 4h (production): create a session immediately with create_user_session.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesVerified email address of the user.
productsNoProducts to provision. Defaults to ['USER_VERIFIED'].
phone_numberYesVerified phone number of the user (e.g. +31612345678).
external_uuidYesYour unique UUID for this user (for deduplication). Must be a valid UUID.
user_verified_typeNoType of user to provision. Defaults to PARTNER_USER_PERSON.PARTNER_USER_PERSON

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description fully explains the provisioning flow, including sub-statuses and token expiration. It implies a write operation and need for session creation, though permissions or prerequisites are not mentioned.

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 paragraph containing multiple details. It is clear and front-loaded but could be more structured (e.g., using bullets for sub-statuses). Nonetheless, each sentence adds value.

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

Completeness4/5

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

Given no output schema, the description covers return value (provision_id), sub-statuses, and token details. Error handling or idempotency is missing, but for a provisioning tool it is fairly complete.

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?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how parameters relate to the overall flow (e.g., token expiry after provisioning), beyond the schema descriptions.

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 that the tool 'Provisions a new UserPerson' and returns a provision_id for monitoring. It distinguishes from siblings like get_provision and close_provision by specifying its role in the onboarding flow.

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 gives clear context: use to provision a user, then immediately create a session with create_user_session. It also mentions monitoring via get_provision but does not explicitly exclude alternative scenarios (e.g., provisioning a company).

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

create_user_sessionA

Creates a session on behalf of a provisioned user using their credential.token_value (obtained from get_provision when status=ACTIVE). Returns a session token and UserApiKey.id — use this session token for all subsequent calls on behalf of that user. Must be called within 1h (sandbox) / 4h (production) of the token being issued.

ParametersJSON Schema
NameRequiredDescriptionDefault
credential_tokenYesThe credential.token_value from the ACTIVE provision.

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. Discloses that it returns a session token and UserApiKey.id, and that the session token should be used for subsequent calls. Also mentions time constraints. No contradictions.

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 main action, no redundancy. Every sentence adds value.

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 only one parameter and no output schema, the description sufficiently explains the output (session token and id) and usage context. Could mention error cases or prerequisites, but adequate.

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?

Schema coverage is 100% for the single required parameter. Description adds meaning by explaining that credential_token comes from get_provision and is required, which goes beyond the schema's description.

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 creates a session on behalf of a provisioned user using a credential token, and specifies the source of the token from get_provision. This differentiates it from sibling tools like refresh_session and others.

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?

Provides clear context: when to use (after obtaining token from get_provision with status=ACTIVE) and time limits (1h sandbox, 4h production). Does not explicitly mention alternatives, but the context is strong.

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

get_attachmentA

Gets metadata and download URLs for a previously uploaded attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
attachment_idYesAttachment ID.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations exist, so description bears full burden. It discloses read-only behavior ('Gets') but omits details like required permissions, rate limits, or error states. No contradictions.

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, front-loaded with main action and object, no filler. 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 simple tool (2 params, no output schema, no nested objects), the description is complete. It explains the purpose and context sufficiently for an agent to use it effectively.

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?

Schema covers both parameters with descriptions ('User ID.', 'Attachment ID.'). The description adds context by specifying 'previously uploaded attachment', linking parameters to the resource and enhancing meaning beyond bare 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 'Gets metadata and download URLs' for an attachment, specifying the verb and resource. It distinguishes from sibling tool 'upload_attachment' by focusing on retrieval.

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 attachment data but provides no explicit when-to-use or when-not-to-use guidance compared to siblings. There are no exclusions or alternative suggestions.

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

get_cardB

Gets details of a specific card including status, limits, and expiry date.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYesCard ID.
user_idYesUser ID.

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 behavioral traits. It only states 'Gets details', which implies a read operation, but does not mention idempotency, side effects, authentication needs, rate limits, or error conditions. This is insufficient for an agent to fully understand tool behavior.

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 concise and front-loaded, immediately stating the tool's purpose.

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 retrieval tool with 2 parameters, no output schema, and no annotations, the description adequately explains what it does and what data it returns. It could mention that both parameters are required, but that is already in the schema. Overall complete for its complexity.

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 has 100% coverage with brief descriptions for card_id and user_id. The description adds value by mentioning specific returned fields (status, limits, expiry), but does not elaborate on parameter usage or format 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.

Purpose5/5

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

The description clearly states the action 'Gets', the resource 'specific card', and includes specific details it retrieves (status, limits, expiry). Among siblings like list_cards (listing) and update_card (modifying), this distinguishes itself as a single-card retrieval operation.

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 (e.g., list_cards for multiple cards, update_card for changes). It lacks context such as 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_card_cvc2A

Gets the details of a specific generated CVC2 code. This is an encrypted endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYesCard ID.
user_idYesUser ID.
generated_cvc2_idYesGenerated CVC2 ID.

TDQS

A3.7/5.0
Behavior3/5

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

The description adds 'encrypted endpoint' indicating security, but lacks details on side effects, authorization needs, or rate limits. Since no annotations exist, more behavioral context would be beneficial.

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 concise sentences: first stating purpose, second adding encryption context. No 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?

Adequate for a simple retrieval tool, but lacks description of return data. Without output schema, mentioning what details are returned (e.g., CVC2 value, expiration) would improve completeness.

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 concise parameter descriptions. The tool description does not add further meaning beyond what the schema already provides.

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 ('Gets the details') and the resource ('a specific generated CVC2 code'), distinguishing it from sibling tools like create_card_cvc2 and list_card_cvc2.

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?

Usage is implied (retrieve details of a specific CVC2), but no explicit guidelines on when to use this over alternatives (e.g., list_card_cvc2) 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_identity_verificationA

Gets the identity verification session details including the SDK token and status. Use the token field to initialise the Incode SDK in your app.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the provisioned user.
session_idYesID of the identity verification session.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden but only states it gets details without disclosing behavioral traits such as idempotency, read-only nature, or error scenarios. Slightly above 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?

Two sentences, zero wasted words, directly conveys purpose and usage guidance.

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?

No output schema is provided, but description partially covers return values (SDK token and status). For a get operation, this is adequate but could list more fields for completeness.

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 to the parameters themselves; it only mentions the output fields (token, status).

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 uses a specific verb ('Gets') and clearly identifies the resource ('identity verification session details including SDK token and status'). It is distinct from sibling tools like start_identity_verification and submit_identity_verification.

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?

It provides clear context for using the tool ('Use the token field to initialise the Incode SDK'), but does not explicitly state when not to use it or name sibling alternatives.

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

get_monetary_accountB

Gets details of a specific monetary account including balance and IBAN.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
account_idYesMonetary account ID.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description carries the burden. It implies a read operation but does not explicitly state it is read-only or disclose any behavioral traits like side effects, error conditions, or response structure.

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 that is front-loaded with the verb and resource, no unnecessary 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?

With no output schema, the description should fully describe return data but only mentions 'balance and IBAN'. Lacks details on other available fields, error handling, or pagination. In context of many sibling tools, it feels incomplete.

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?

Input schema has 100% coverage with descriptions for both parameters ('User ID.' and 'Monetary account ID.'). The description adds 'including balance and IBAN' but does not add further meaning to the parameters themselves.

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?

Clearly states the verb 'gets' and the resource 'details of a specific monetary account' including 'balance and IBAN'. Distinguishes from sibling tools like list_monetary_accounts which lists accounts.

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. No mention of prerequisites 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.

get_oauth_clientA

Gets details (client_id, secret, callback URLs) for a specific OAuth client.

ParametersJSON Schema
NameRequiredDescriptionDefault
oauth_client_idYesID of the OAuth client.

TDQS

A3.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 bears the full burden of behavioral disclosure. It states 'gets details' suggesting read-only operation, but does not disclose any additional behavioral traits (e.g., authentication requirements, idempotency, rate limits) or what happens if the client does not exist.

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 unnecessary words. Every piece of information 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 the tool's simplicity (one parameter, no output schema), the description is mostly complete. It lists the returned fields (client_id, secret, callback URLs), which compensates for the lack of an output schema. However, it could add a note about error cases or permissions.

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 the schema already documents oauth_client_id. The description adds no additional meaning or context to the parameter beyond what the schema 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?

The description uses a specific verb 'Gets details' and explicitly names the resource 'specific OAuth client' and key fields (client_id, secret, callback URLs). This clearly distinguishes it from siblings like list_oauth_clients and create_oauth_client.

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 (when you need details of a specific OAuth client) but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools like list_oauth_clients for an overview.

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

get_paymentC

Gets details of a specific payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
account_idYesMonetary account ID.
payment_idYesPayment ID.

TDQS

C2.9/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 'gets details', implying a read operation, but does not disclose auth requirements, rate limits, error handling, or 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.

Conciseness4/5

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

Single sentence, concise and to the point. Could be slightly more informative 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?

Given the tool has 3 required parameters, no output schema, and no annotations, the description is too minimal. It lacks return value details, error states, and usage context that would help an agent effectively use this tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions like 'User ID.' The description adds no additional meaning beyond the schema, so 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 'gets details of a specific payment', which is a specific verb+resource. It distinguishes from list_payments and other get_ tools, though it could elaborate on what 'details' entails.

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 list_payments or other get_ tools. The required parameters imply specific IDs are needed, but no explicit context is provided.

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

get_provisionA

Gets the current status and details of a user provision. Poll this after create_provision to track progress. When status=ACTIVE and credential.token_value is present, immediately call create_user_session — the token expires in 1h (sandbox) / 4h (production).

ParametersJSON Schema
NameRequiredDescriptionDefault
provision_idYesID of the provision.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses the polling pattern, status condition, and token expiration (1h sandbox/4h production). This is sufficient for a read- only polling tool, though it does not explicitly state authorization requirements 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.

Conciseness5/5

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

The description is two sentences, no fluff, and front-loads the purpose. Every sentence adds value.

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

Completeness4/5

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

Given the tool's simplicity and lack of output schema, the description adequately explains what to expect (status, details, credential token) and what actions to take. It provides enough context for an agent to use the tool effectively.

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?

There is only one parameter (provision_id) with 100% schema coverage. The description does not add extra meaning beyond what the schema provides; it simply mentions the parameter in context. 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?

The description clearly states the tool gets the current status and details of a user provision. It uses a specific verb ('gets') and resource ('user provision'), and distinguishes it from siblings like create_provision and close_provision.

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 gives explicit usage guidance: poll after create_provision to track progress, and then immediately call create_user_session when status=ACTIVE and credential.token_value is present. It also mentions the token expiry time, aiding decision-making.

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

get_session_infoA

Returns the current session status, authenticated user ID, and active environment (sandbox/production). Useful to verify the connection is working before other calls.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description solely indicates it returns data, suggesting a read-only operation. It does not explicitly disclose that it is safe or has no side effects, leaving some ambiguity.

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 concise with two sentences: the first states the output, the second provides usage context. No superfluous information is present.

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 it returns and when to use it. It could optionally describe the return format, but the basic information is sufficient.

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 zero parameters with 100% coverage, so the description adds no additional meaning. The baseline score of 3 is appropriate as no parameter clarification is 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?

The description clearly states the tool returns current session status, authenticated user ID, and active environment, with a specific verb and resource. It distinguishes from sibling tools like refresh_session or create_user_session.

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 includes a usage context: 'Useful to verify the connection is working before other calls,' implying it's a preliminary check. However, no explicit alternatives or when-not-to-use conditions are stated.

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

get_user_inquiryB

Gets full details of a compliance inquiry including all entries and their status.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
inquiry_idYesInquiry ID.

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. It states a read operation ('gets'), but does not disclose any additional behavioral traits such as permissions, rate limits, or 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.

Conciseness5/5

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

Single sentence that is concise and front-loaded with the verb and resource. No 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?

Given the tool has 2 parameters and no output schema, the description provides sufficient context about what is returned ('full details including all entries and their status'). It is fairly complete for a simple retrieval tool.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The description adds no extra meaning beyond what the schema provides, so 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?

The description clearly states the verb 'gets' and the resource 'compliance inquiry', and specifies scope 'including all entries and their status'. It distinguishes from siblings like 'list_user_inquiries' (which lists inquiries without details) and 'respond_to_inquiry_entry' (which modifies).

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 explicit guidance on when to use this tool versus alternatives. There is no mention of when not to use it or references to sibling tools.

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

list_card_cvc2B

Lists all generated CVC2 codes for a card. This is an encrypted endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYesCard ID.
user_idYesUser ID.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states it is an 'encrypted endpoint' but does not clarify other traits such as read-only nature, output format, pagination, or performance implications.

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 concise with two short sentences. It is front-loaded with the primary purpose and includes a secondary security note. No unnecessary words are present.

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 no annotations, the description provides the basic purpose and encryption context but lacks details about the response structure, limits, or how it differs from get_card_cvc2. It is minimally complete for a simple list operation.

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% coverage with descriptions for both parameters, so the schema already explains them. The description adds no additional parameter semantics beyond what is in 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 specific action ('Lists all generated CVC2 codes') and the resource ('for a card'), effectively distinguishing it from sibling tools like get_card_cvc2 and create_card_cvc2.

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 or when it should not be used. The mention of an encrypted endpoint offers context but no practical usage direction.

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

list_cardsB

Lists all cards (credit and debit) for a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only states the basic function without disclosing whether the operation is read-only, what authorization is needed, or any 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.

Conciseness4/5

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

The description is concise with a single sentence. It is front-loaded but could potentially include more structured information like return value hints.

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 complexity of the sibling tools and the lack of output schema, the description is incomplete. It does not describe what the response contains (e.g., list of card objects, fields), which could confuse an agent trying to use the output.

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?

There is only one parameter (user_id) with 100% schema description coverage. The tool description does not add any additional meaning or context beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Lists' and the resource 'cards (credit and debit)' for a user. It distinguishes this tool from sibling tools like create_credit_card, get_card, etc., by specifying the action of listing all cards.

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 any prerequisites, filters, or the context in which this tool should be chosen over other card-related siblings.

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

list_monetary_accountsB

Lists all monetary accounts for a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.

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 carries the burden of behavioral disclosure. It only indicates a read operation ('lists'), but omits details like authentication needs, data freshness, or whether archived accounts are included.

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, no extraneous information. Efficiently conveys the core action and scope.

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 list endpoint with one parameter and no output schema, the description is mostly sufficient. It covers the basic purpose, though details like pagination or account types could be useful but are not critical.

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 a single parameter 'user_id' described. The description reinforces the parameter's role ('for a user') but adds no new 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 the verb 'lists' and the resource 'monetary accounts' with a scope 'for a user', clearly differentiating from related tools like get_monetary_account (single) and create_monetary_account (create).

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_monetary_account for a specific account). The description only states what it does, leaving the AI agent to infer usage context.

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

list_notification_failuresA

Lists failed webhook deliveries for the partner's company user. The userId should be the UserCompany.id — this returns failures for all underlying provisioned users. Each record includes user_id (which provisioned user the failure belongs to) and user_requested_id (set when the filter was created via an API key, otherwise null).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUserCompany.id of the partner.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool returns failures for all provisioned users and explains response fields (user_id, user_requested_id). However, it omits details like read-only nature, pagination, ordering, or performance implications, which are important for safe invocation.

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 three sentences long and front-loaded with the purpose. Every sentence adds distinct information: the action, the parameter clarification, and the response structure. No words are wasted.

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 single-parameter list tool with no output schema, the description covers the core functionality and response fields. However, it lacks details on expected response format (array?), pagination, or error cases. While adequate for simple usage, it could be more complete given the lack of an output schema.

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 schema already describes the parameter as 'UserCompany.id of the partner.' The description adds significant value by clarifying that the ID is the partner's company ID and that the call returns failures for all underlying provisioned users, enhancing the agent's understanding 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 that the tool lists failed webhook deliveries for a partner's company user. It specifies the resource (failed webhook deliveries) and the scope (per partner company). The name alone suggests listing, and the description elaborates uniquely, distinguishing it from siblings like retry_notification_failures and set_notification_filters.

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 failure records but does not explicitly contrast with related tools or state when to use it over alternatives. No exclusions or prerequisites are mentioned, leaving the agent to infer context from the tool's name and siblings.

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

list_oauth_clientsA

Lists all OAuth clients for the partner account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It implies an idempotent read operation but doesn't disclose side effects, permissions, or return format. Minimal but not misleading.

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 wasted words. Perfectly concise and front-loaded.

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 provided, yet description does not indicate what the list contains (e.g., IDs, names). Adequate but could be more complete to help the agent understand the result.

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 description doesn't need to explain parameters. Baseline score of 4 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 verb 'Lists', resource 'OAuth clients', and scope 'for the partner account'. It distinguishes from sibling tools like get_oauth_client (single client) and create_oauth_client.

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_oauth_client for a specific client). No exclusions or prerequisites mentioned.

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

list_paymentsA

Lists all payments (incoming and outgoing) for a monetary account.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID.
account_idYesMonetary account ID.

TDQS

A3.5/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 read-only nature, pagination, ordering, or potential side effects. For a listing tool, absence of such details is a significant gap.

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 conveys the tool's purpose. It is front-loaded and contains no extraneous information.

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 two parameters and no output schema, the description is adequate but misses details like pagination or response format. Given the lack of annotations, it could be more informative.

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%, with both parameters having clear descriptions ('User ID.' and 'Monetary account ID.'). The description adds no additional semantic value beyond what the schema already provides, meeting the baseline.

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 tool lists all payments (incoming and outgoing) for a monetary account, specifying the verb 'lists' and resource 'payments'. It differentiates from sibling tools like get_payment and create_payment by indicating scope.

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 listing payments but provides no explicit guidance on when to use this tool versus alternatives like get_payment for a single payment. No exclusions or context-specific recommendations are given.

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

list_provisionsB

Lists all partner user provisions with optional filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoComma-separated status filter (e.g. CREATED,ACTIVE).
external_uuidNoFilter by your external UUID.

TDQS

B3.1/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 basic purpose; lacks disclosure on pagination, ordering, rate limits, idempotency, or that it is a read 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?

Single concise sentence of 5 words. However, it is front-loaded and clear; no wasted words. Slightly underspecified but not 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?

Lacks information about return value format, definition of 'provision', or any usage context. With no output schema, description should indicate what is returned. Incomplete for a list tool with 2 filter 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 clear parameter descriptions. The tool description adds no additional meaning beyond stating 'optional filtering', which is already implied. 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?

Clearly states verb 'Lists', resource 'partner user provisions', and scope 'all' with optional filtering. Distinguishes from sibling 'get_provision' which retrieves a single provision.

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_provision for single, create_provision for creation). Does not explain when to apply filters or what the default behavior is.

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

list_user_inquiriesA

Lists compliance information inquiries for a provisioned user. Use status=EXPECTING_REPLY_FROM_USER to find open inquiries requiring action.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by inquiry status.
purposeNoFilter by purpose (e.g. ONBOARDING, COMPLIANCE_TRANSACTION_MONITORING).
user_idYesID of the provisioned user.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided. Description only states it lists data, which implies a safe read operation, but lacks details on pagination, limits, or side effects. For a tool with no annotations, 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?

Two concise sentences with no unnecessary words. Front-loaded with the core purpose, followed by a practical usage tip.

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 exists. The description covers basic functionality but omits pagination, result ordering, or any potential caveats. Adequate for a list operation but not fully thorough.

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 the schema already documents parameters. Description adds minimal value beyond the schema, only mentioning a common use case for the status filter.

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?

Clearly states it lists compliance information inquiries for a provisioned user. Distinguishes from sibling tools like get_user_inquiry and respond_to_inquiry_entry.

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?

Provides a specific usage hint for status=EXPECTING_REPLY_FROM_USER to find open inquiries, guiding when to apply the tool effectively. Does not exclude alternatives but offers clear context.

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

refresh_sessionA

Force-refreshes the bunq session token. Use this if you receive authentication errors.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses force-refresh behavior but does not mention if it invalidates existing sessions or requires re-authentication. 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?

Two sentences, no redundancy, front-loaded information. 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?

For a zero-parameter tool with no output schema, the description is fully sufficient. It explains what the tool does and when to use it.

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; schema coverage is 100% vacuously. Description adds meaning about the tool's purpose beyond schema, earning baseline 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 the tool force-refreshes the bunq session token, using specific verb and resource. It distinguishes from siblings which deal with user data, payments, cards, etc.

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?

Explicitly says to use when receiving authentication errors, providing clear context. Lacks explicit exclusions or alternatives, but the guidance is direct.

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

register_oauth_callback_urlB

Registers an OAuth callback URL for a specific OAuth client.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS callback URL to register.
oauth_client_idYesID of the OAuth client.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Registers,' implying a mutation, but omits details like whether it replaces or appends URLs, idempotency, 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.

Conciseness4/5

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

A single short sentence with no wasted words. While concise, it could be expanded slightly to improve informativeness 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?

With no output schema and simple parameters, the description minimally covers the action. However, it lacks details about return value, side effects, or constraints (e.g., URL must be HTTPS). Contextually adequate but not complete.

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

Parameters3/5

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

Schema coverage is 100% (both parameters have descriptions), so the description adds no extra 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.

Purpose5/5

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

The description uses a specific verb ('Registers') and resource ('OAuth callback URL'), clearly differentiating from sibling tools like 'create_oauth_client' (which creates the client itself).

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., prerequisites like having an existing OAuth client) or when not to use it. Sibling tools like 'create_oauth_client' are not mentioned.

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

reset_provision_tokenA

Requests a new credential API key for a provision whose token was lost, expired, or revoked. Sets status to TOKEN_RESET_REQUESTED. Poll get_provision until a new credential.token_value appears, then call create_user_session immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
provision_idYesID of the provision.

TDQS

A4.4/5.0
Behavior4/5

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

Discloses that the tool sets status to TOKEN_RESET_REQUESTED and outlines subsequent steps. However, it does not mention idempotency, multiple call effects, or error conditions, which would improve transparency. Since no annotations exist, the description carries the full burden and does a decent job.

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 with no waste. First sentence states the action, second provides critical follow-up. Perfectly concise and front-loaded.

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 one parameter and no output schema, the description covers purpose, when to use, and post-conditions. However, it omits what the tool returns or any confirmation of success, which would improve completeness.

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?

With 100% schema description coverage, the parameter provision_id is already documented as 'ID of the provision'. The description adds no further semantic detail, so it meets the baseline of 3.

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 'Requests' and resource 'new credential API key' for a provision, clearly stating the context (lost, expired, or revoked token). It distinguishes from siblings like get_provision and create_user_session.

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?

Explicitly states when to use (token lost, expired, revoked) and provides a clear follow-up procedure: poll get_provision then call create_user_session. This gives comprehensive guidance.

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

respond_to_inquiry_entryA

Submits an answer for a specific inquiry entry on behalf of Eva. Provide either attachment IDs (upload via upload_attachment first) or a free-text answer, or both. Only PENDING entries can be answered. After submission the entry moves to WAITING_FOR_REVIEW.

ParametersJSON Schema
NameRequiredDescriptionDefault
answerNoFree-text answer (for open-ended entries like source of income).
user_idYesID of the provisioned user.
entry_idYesEntry ID within the inquiry.
inquiry_idYesInquiry ID.
all_attachment_idNoIDs of attachments to submit (for document-based entries).

TDQS

A4.4/5.0
Behavior4/5

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

Despite no annotations, the description discloses key behavioral traits: the action of submitting, the dependency on upload_attachment for attachments, the state change from PENDING to WAITING_FOR_REVIEW, and the flexible input (either attachment IDs, free-text, or both). It does not cover authentication or rate limits but provides sufficient behavioral context for a non-destructive action.

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

Conciseness5/5

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

Three sentences, each adding essential information: first states the action, second describes input options, third specifies pre/post conditions. No extraneous 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?

The description covers the tool's purpose, required input (with flexibility), preconditions (entry must be PENDING), postcondition (WAITING_FOR_REVIEW), and a dependency (upload_attachment). It does not explain return values, which is acceptable given no output schema.

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?

Schema coverage is 100%, and the description adds value beyond the schema by clarifying that 'answer' and 'all_attachment_id' can be used together or separately ('Provide either attachment IDs... or a free-text answer, or both'). This explains the optionality not explicit in 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 submits an answer for an inquiry entry, with a specific verb ('Submits') and resource ('inquiry entry on behalf of Eva'). It distinguishes itself from sibling tools like list_user_inquiries or get_user_inquiry by focusing on the response action.

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 usage context: 'Only PENDING entries can be answered' and states the outcome ('entry moves to WAITING_FOR_REVIEW'). It implicitly advises when to use (when entry is pending) but does not explicitly list alternatives 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.

retry_notification_failuresB

Retries delivery of up to 100 failed webhook notifications by their failure IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID who owns the failed notifications.
failure_idsYesComma-separated failure IDs to retry (e.g. '123,456,789').

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 disclose behavioral traits. It states the action (retry) and a limit of 100, but lacks details on authentication, rate limits, idempotency, response format, or potential side effects. Minimal transparency for a mutation tool.

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 directly front-loaded with the key action and constraints.

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 a mutation with no annotations or output schema. The description omits critical details such as expected response, error behavior, permission requirements, and idempotency. For a tool that modifies state, this is insufficient.

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%, with clear descriptions for both parameters. The description adds context ('failed webhook notifications', 'up to 100') but does not enhance parameter semantics beyond what the schema already provides. Baseline score applies.

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 ('retries') and resource ('failed webhook notifications') with constraints ('up to 100', 'by their failure IDs'). It clearly distinguishes from sibling tools like 'list_notification_failures'.

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 after obtaining failure IDs (e.g., from list_notification_failures), but does not explicitly state when to use this tool versus alternatives or any exclusions. No guidance on prerequisites or conditions.

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

set_address_mainB

Sets the main (residential) address for a provisioned user during onboarding.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity.
streetYesStreet name.
countryNoISO-3166 country code (e.g. NL).NL
user_idYesID of the provisioned user.
postal_codeYesPostal code (e.g. 1111 AA).
house_numberYesHouse number.

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 does not disclose behavioral traits such as idempotency, side effects (e.g., overriding existing address), required permissions, or error conditions. The description is too brief to add value beyond the name.

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 unnecessary words. It is well-structured and front-loaded with the key 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?

For a tool with 6 parameters, no output schema, and no annotations, the description lacks critical context such as whether the call is idempotent, whether it replaces an existing address, or any prerequisites. It is insufficient for the complexity.

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 all parameters described. The description adds no extra meaning beyond what the schema already provides, so a baseline 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?

The description clearly states the action ('Sets'), the resource ('main/residential address'), and the context ('for a provisioned user during onboarding'). This distinguishes it from sibling tools like set_address_postal.

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 it is for onboarding use but does not provide explicit guidance on when not to use or alternatives like set_address_postal. The context is implied but not detailed.

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

set_address_postalB

Sets the postal address for a provisioned user during onboarding.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity.
streetYesStreet name.
countryNoISO-3166 country code.NL
user_idYesID of the provisioned user.
postal_codeYesPostal code.
house_numberYesHouse number.

TDQS

B3.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 behavioral disclosure. It only states the action and context but does not disclose side effects, idempotency, permissions required, or what happens if the address already exists. This is insufficient for a mutation tool.

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 immediately conveys the purpose. It is front-loaded with the verb and resource, contains no redundant information, and is appropriately sized for a straightforward tool.

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

Completeness2/5

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

Given the tool has 6 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, required state of the user (e.g., must be in provisioning status), or how the address relates to other address data (e.g., main address). A write tool of this complexity needs more context.

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 good parameter descriptions. The description adds context that user_id refers to a provisioned user and that the tool is for onboarding, but this does not significantly enhance parameter understanding beyond 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.

Purpose5/5

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

The description clearly states the tool 'Sets the postal address for a provisioned user during onboarding.' It specifies the action (set), the resource (postal address), and the context (provisioned user during onboarding). This distinguishes it from siblings like set_address_main and set_nationality.

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 mentions 'during onboarding' implying a specific context, but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like set_address_main for other address types or clarify prerequisites.

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

set_nationalityA

Submits nationality information for a provisioned user. Required within 90 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the provisioned user.
nationalitiesYesList of ISO-3166 country codes (e.g. ['NL', 'DE']).

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 must fully convey behavioral traits. It discloses a mutation ('submits') but lacks detail on side effects, idempotency, error conditions, or authorization requirements. The 90-day constraint is helpful but insufficient for a mutation tool.

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 short sentences with no filler. The first sentence defines the primary purpose, and the second adds an important constraint. Every word earns its place.

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 output schema, the description provides the core purpose and a time constraint, but remains incomplete regarding return values, validation, and behavioral expectations. It adequately covers the basics but leaves 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 clear descriptions for both parameters (user_id and nationalities). The description adds no additional semantic value beyond restating 'nationality information'. Baseline 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?

Clearly states the action ('Submits nationality information') and the target resource ('a provisioned user'), with a specific constraint ('within 90 days'). Effectively distinguishes from sibling tools like set_tax_resident or set_address_main.

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 includes a temporal guideline ('Required within 90 days'), but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or scenarios where it should not be used.

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

set_notification_filtersA

Sets webhook URLs for a user. ⚠️ This REPLACES all existing filters — always include the full desired list in one call. To add one filter, fetch the existing ones first and include them all. To remove all, pass an empty array. Categories: PARTNER_USER_PROVISION, USER_ONBOARDING, USER_INFORMATION_INQUIRY, MUTATION, PAYMENT, CARD, CARD_TRANSACTION_SUCCESSFUL, CARD_TRANSACTION_FAILED.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersYesFull list of notification filters to set.
user_idYesUser ID (use UserApiKey.id for provisioned users).

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It clearly discloses the destructive replacement behavior and explains the three usage scenarios. Could mention authentication or result, but overall transparent.

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 moderately concise with a warning and list of categories. It is well-structured and front-loaded with the key warning. Could potentially omit the category list since it's in the schema, but not detrimental.

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

Completeness4/5

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

Given no output schema and 2 params with full schema coverage, the description covers behavior and usage well. Missing result information is acceptable since no output schema. The description is complete for the tool's complexity.

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%, both parameters have good descriptions in the schema. The tool description adds no new semantic info about the parameters; it only repeats the categories already in the enum. Baseline 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?

The description clearly states the tool sets webhook URLs for a user, and the warning about replacing all existing filters distinguishes it from a simple add operation. No sibling tool has similar functionality, so no further differentiation needed.

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 provides when and how to use: always include the full desired list, fetch existing filters before adding one, and pass empty array to remove all. This guides the agent on correct usage and conditions.

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

set_tax_residentA

Submits tax residency information for a provisioned user. Required within 90 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the provisioned user.
tax_residentsYesList of tax residencies.

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It implies a write operation but does not detail idempotency, side effects, authorization requirements, or what happens on failure. The time constraint is helpful but 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 that conveys the essential information without any unnecessary words. It is front-loaded with the main action and resource.

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 adequately covers the purpose and a key constraint. However, it lacks information about expected outcomes or validation, making it only moderately complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for the parameters, so it does not exceed the baseline.

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 ('Submits') and a clear resource ('tax residency information for a provisioned user'), making the tool's purpose immediately obvious. It also adds a temporal constraint ('Required within 90 days'). This clearly distinguishes it from sibling tools like set_nationality.

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 a clear usage context: the tool is to be used for a provisioned user and within 90 days. However, it does not specify when not to use it or mention alternative tools, so it misses the highest score.

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

start_identity_verificationA

Creates an identity verification session using the Incode SDK. Returns a session ID. Follow up with get_identity_verification to obtain the SDK token, pass it to the Incode SDK, then call submit_identity_verification once the SDK flow completes.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeNoVerification purpose.VERIFICATION
user_idYesID of the provisioned user.
providerNoIdentity verification provider.INCODE

TDQS

A4.4/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 full responsibility. It discloses that the tool creates a session (mutation) and returns a session ID. It also explains the required next steps. However, it omits details like session expiration, idempotency, or error handling, which keeps it from maximum 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 extremely concise: three sentences covering action, output, and workflow. It is front-loaded and contains no unnecessary words or redundancy.

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

Completeness4/5

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

Given no output schema, the description adequately explains the return value (session ID). It integrates well with sibling tools in the workflow. However, it could be more complete by mentioning prerequisites (e.g., user must be provisioned) or error cases, though the schema partially covers the user_id requirement.

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 baseline is 3. The description adds no additional information about parameters beyond what the schema already provides (e.g., purpose, user_id, provider). There is no extra guidance on parameter values or constraints.

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 creates an identity verification session using Incode SDK and returns a session ID. It distinguishes itself from sibling tools like get_identity_verification and submit_identity_verification by specifying its role as the first step in a multi-step workflow.

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 outlines the correct workflow: use this tool first, then follow up with get_identity_verification and submit_identity_verification. This provides clear when-to-use guidance and names specific sibling tools for subsequent steps.

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

submit_identity_verificationA

Notifies bunq that the Incode SDK flow is complete and the identity verification result is ready to be processed. Call this after the SDK returns a successful completion callback.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUserApiKey.id of the provisioned user.
session_idYesID of the identity verification session.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states the action (notification and processing trigger) but does not disclose error states, idempotency, or what happens if called multiple times. Adequate for a simple notification but could be more transparent.

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 concise sentences, no fluff, front-loaded with the main purpose and usage condition. Every sentence adds value.

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 two required params, no output schema, and a simple notification action, the description covers the essential information. Could be improved with notes on error handling or idempotency, but it's largely complete for the tool's purpose.

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 does not add any extra meaning beyond what the schema provides, so baseline 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 it notifies bunq that the Incode SDK flow is complete and triggers processing. The verb 'Notifies' and resource 'identity verification result' are specific, and it distinguishes from sibling tools like start_identity_verification (initiation) and get_identity_verification (status checks).

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?

Explicitly says to call after the SDK returns a successful completion callback, providing clear when-to-use guidance. No exclusions or alternatives mentioned, but the context implies that other sibling tools handle different phases, so it's adequate.

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

update_cardA

Updates a card's status, spending limits, or PIN. Use to activate a card after delivery, block/unblock it, or report it lost/stolen.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoNew card status.
card_idYesCard ID.
user_idYesUser ID.
card_limitNoDaily spending limit.
card_limit_atmNoDaily ATM withdrawal limit.
cancellation_reasonNoRequired when status=CANCELLED.

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 must carry the full burden. It lacks details on side effects, reversibility, authorization needs, or rate limits. The description only lists updatable fields without behavioral context.

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, nothing extraneous. First sentence states the action, second provides common use cases. No filler or redundancy.

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 6 parameters including nested objects, no output schema, and no annotations. The description does not explain return values, error conditions, or parameter dependencies (e.g., cancellation_reason required for CANCELLED). It is incomplete for a tool of this complexity.

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 100%, but the description adds some value by summarizing parameters as 'status, spending limits, or PIN'. However, 'PIN' is not a parameter in the schema, which is misleading. The description does not fully compensate for missing param 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 tool updates card status, spending limits, or PIN, and lists specific use cases like activation, blocking, and reporting lost/stolen. It distinguishes from sibling tools like get_card or list_cards.

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 use cases (activate, block/unblock, report lost/stolen) and implies when to use the tool. However, it does not explicitly state when not to use or provide alternatives, though context is clear.

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

update_user_personB

Updates personal information for a provisioned user: name and date of birth.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the provisioned user.
last_nameYesLast name.
first_nameYesFirst name.
middle_nameNoMiddle name (optional).
date_of_birthYesDate of birth in YYYY-MM-DD format.

TDQS

B3.2/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 'Updates', implying mutation, but does not mention permissions, idempotency, side effects, or whether the user must already be provisioned. This is insufficient for a mutation tool.

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, front-loaded with the action and resource. No extraneous words, though it could briefly mention the optional middle_name parameter.

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 simplicity and no output schema, the description is mostly adequate. However, it lacks context on what 'provisioned' means, prerequisites, and what the response indicates. It covers the main parameters but falls short on broader context.

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 the description adds little extra meaning. It names 'name and date of birth' covering 4 of 5 parameters but omits middle_name. It does not clarify optionality or format beyond what the schema provides, meeting the baseline of 3.

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 updates personal information (name and date of birth) for a provisioned user, using a specific verb and resource. This distinguishes it from sibling tools like set_nationality or set_tax_resident.

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 given on when to use this tool versus alternatives (e.g., when to update vs. set_nationality). Prerequisites like user provisioning status are not mentioned, leaving the agent without context for correct invocation.

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

upload_attachmentB

Uploads a file attachment for a provisioned user. The attachment ID can then be passed to respond_to_inquiry_entry via all_attachment_id to submit documents for a compliance inquiry. Supported types: image/png, image/jpeg, image/gif, application/pdf. Note: the actual file bytes must be sent as raw binary — provide the file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesID of the provisioned user.
descriptionYesHuman-readable description of the file.
content_typeYesMIME type of the file.image/jpeg
base64_contentYesBase64-encoded file content.

TDQS

B3.2/5.0
Behavior1/5

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

The description says 'the actual file bytes must be sent as raw binary — provide the file path,' but the schema expects base64_content. This is a critical contradiction that misleads the agent. Since no annotations exist, the description must accurately convey behavior, and it fails.

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 to the point, but the misleading note wastes its conciseness. It is structured well enough but not exemplary.

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 does not specify what the tool returns (e.g., an attachment ID). Given the absence of an output schema and four required parameters, this omission is significant. The conflicting input instructions further impair completeness.

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 100% with descriptions for all parameters. The description adds no meaningful parameter details; instead it introduces conflicting information about how file content should be provided.

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 uploads a file attachment for a provisioned user, and explains how the returned attachment ID is used in subsequent steps (e.g., respond_to_inquiry_entry). This differentiates it from siblings like get_attachment.

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 mentions using the attachment ID later for compliance inquiries, implying when to use this tool. However, it does not explicitly state when not to use it or list alternatives.

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. 45 tool updatesv1.0.0
    • First observedclose_provision
    • First observedcreate_bank_account
    • First observedcreate_card_cvc2
    • First observedcreate_card_pan
    • First observedcreate_credit_card
    • First observedcreate_debit_card
    • First observedcreate_external_account
    • First observedcreate_oauth_client
    • First observedcreate_payment
    • First observedcreate_provision
    • First observedcreate_user_session
    • First observedget_attachment
    • First observedget_card
    • First observedget_card_cvc2
    • First observedget_identity_verification
    • First observedget_monetary_account
    • First observedget_oauth_client
    • First observedget_payment
    • First observedget_provision
    • First observedget_session_info
    • First observedget_user_inquiry
    • First observedlink_document_identification
    • First observedlist_card_cvc2
    • First observedlist_cards
    • First observedlist_monetary_accounts
    • First observedlist_notification_failures
    • First observedlist_oauth_clients
    • First observedlist_payments
    • First observedlist_provisions
    • First observedlist_user_inquiries
    • First observedrefresh_session
    • First observedregister_oauth_callback_url
    • First observedreset_provision_token
    • First observedrespond_to_inquiry_entry
    • First observedretry_notification_failures
    • First observedset_address_main
    • First observedset_address_postal
    • First observedset_nationality
    • First observedset_notification_filters
    • First observedset_tax_resident
    • First observedstart_identity_verification
    • First observedsubmit_identity_verification
    • First observedupdate_card
    • First observedupdate_user_person
    • First observedupload_attachment

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, e.g., provisioning, KYC, banking, cards. Some potential confusion exists between set_nationality and set_tax_resident, or start_identity_verification vs. get_identity_verification vs. submit_identity_verification, but descriptions clarify the flow. Overall, an agent can distinguish tools with reasonable accuracy.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., create_provision, get_card, list_payments). Minor deviations like 'register_oauth_callback_url' vs. 'create_oauth_client' are present but not disruptive. No mixing of casing styles.

Tool Count3/5

45 tools is high for a single server. While the domain is broad (provisioning, KYC, accounts, cards, payments, compliance, OAuth, notifications), many tools could be consolidated (e.g., three CVC2 tools, multiple identity verification tools). The set feels slightly bloated.

Completeness4/5

The tool surface covers the full lifecycle for user provisioning, KYC, banking, cards, payments, and compliance inquiries. Minor gaps exist: no tool to close a bank account, delete a card, or manage OAuth clients beyond creation. Overall, core workflows are well-supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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
    A
    quality
    C
    maintenance
    Enables AI assistants to discover, install, configure, and manage MCP servers through natural language conversation, automating tedious manual setup across multiple clients.
    11
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that connects AI assistants to Actual Budget for budget management, enabling natural language queries, transaction creation, and spending analysis.
    1,671
    49
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that connects AI assistants to YNAB budgets, enabling natural language queries about finances backed by full API coverage and built-in YNAB methodology knowledge.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to match users with capital providers for business loans, real estate, and asset tokenization through a conversational intake process.
    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/bunq/partner-mcp'

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