Skip to main content
Glama
Cresium

Cresium MCP Server

Official
by Cresium

Cresium MCP Server

MCP (Model Context Protocol) server the Cresium API. Enables AI tools like Claude Code and Claude Desktop to manage transactions, payments, invoices, and balances through the Cresium Partner API (V3).

Prerequisites

You need a Cresium partner account with:

  • API Key (apiKey)

  • Secret (secret)

  • Company ID (companyId)

These are available from the Cresium Dashboard under your partner settings.

Related MCP server: CurrencyTransfer MCP Server

Installation

Claude Code

claude mcp add cresium-server \
  -e CRESIUM_API_KEY=your_api_key \
  -e CRESIUM_SECRET=your_secret \
  -e CRESIUM_COMPANY_ID=your_company_id \
  -- node /absolute/path/to/cresium-mcp-server/build/index.js

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cresium": {
      "command": "node",
      "args": ["/absolute/path/to/cresium-mcp-server/build/index.js"],
      "env": {
        "CRESIUM_API_KEY": "your_api_key",
        "CRESIUM_SECRET": "your_secret",
        "CRESIUM_COMPANY_ID": "your_company_id"
      }
    }
  }
}

Build from source

git clone <repo-url>
cd cresium-mcp-server
npm install
npm run build

Environment Variables

Variable

Required

Description

CRESIUM_API_KEY

Yes

Partner API key

CRESIUM_SECRET

Yes

Partner secret for HMAC signing

CRESIUM_COMPANY_ID

Yes

Company ID to operate on

CRESIUM_BASE_URL

No

API URL. Defaults to https://api.cresium.app. Staging: https://api.develop.cresium.app

Available Tools

Balances and investments

Tool

Description

get_balance

Wallet balances (balance, locked, invested, available) per currency

get_investment_fund_positions

Investment fund positions with units held, current value and fund details

Transactions

Tool

Description

search_transactions

Search with filters (date, type, operation type, direction, tag, status)

get_transaction

Get a single transaction by ID

get_transaction_receipt

Download the transaction receipt as a PDF

lookup_bank_address

Look up a CBU/CVU/alias to get the address ID used as toId

create_transfer_preview

Create a transfer in PREVIEW status (does not move money)

confirm_transaction

Confirm a previewed transaction

reverse_transaction

Refund a received deposit back to its sender

Collections — one-off payment orders (V2)

Tool

Description

create_payment_order

Create a one-off collection and get a dedicated CVU to receive it

search_payment_orders

List payment orders with their status and amount collected

get_payment_order

Get one payment order by your own externalId

delete_payment_order

Delete an unpaid order and take down its CVU

Collections — CVU management (V1, deprecated)

Tool

Description

list_deposit_addresses

List all active CVUs and aliases

get_deposit_address

Get one CVU with its alias

create_deposit_address

Issue a new CVU

update_deposit_address_alias

Rename the alias of an active CVU

delete_deposit_address

Take down a CVU (irreversible)

Signature requests

Tool

Description

search_signature_requests

List signature requests and their status

create_signature_request

Request signer approval for a transaction, bulk or payroll

reject_signature_request

Reject a pending request (approval is Dashboard-only)

Accounts payable and receivable

Tool

Description

create_payments

Create payments (accounts payable)

list_payments

List all company payments

read_payments_from_files

Extract payment data from PDFs/images via OCR

create_invoices

Create invoices (accounts receivable)

list_invoices

List all company invoices

read_invoices_from_files

Extract invoice data from PDFs/images via OCR

Other

Tool

Description

health_check

Check API availability

Typical Workflow

Send a transfer

  1. Look up the destination: lookup_bank_address with the CBU/CVU/alias

  2. Create a preview: create_transfer_preview with the address ID, amount, and currency

  3. Request approval: create_signature_request with the transaction ID (signers approve from Dashboard)

Check balances and transactions

  1. Get balances: get_balance to see available funds per currency

  2. Search transactions: search_transactions with date or status filters

  3. Get details: get_transaction with a specific transaction ID

Collect a one-off payment

  1. Create the order: create_payment_order with the expected amount and your own reference — returns a dedicated CVU

  2. Share the CVU with the payer, and persist it to match incoming DEPOSIT webhooks

  3. Track it: get_payment_order with your reference to see status and amountPaid

The CVU is taken down automatically once the order is paid or expires.

Load invoices from files

  1. Extract: read_invoices_from_files with local PDF/image paths — OCR only, nothing is saved

  2. Review the extracted data

  3. Create: create_invoices with the reviewed values

Permissions

Some tools require a partner permission to be enabled on your account, otherwise the API returns 403 FORBIDDEN:

Permission

Tools

CREATE_CVU

create_deposit_address, create_payment_order, delete_payment_order

UPDATE_CVU

update_deposit_address_alias

SEARCH_PAYMENT_ORDERS

search_payment_orders, get_payment_order

Contact the Cresium team to enable them.

Authentication

All requests are signed using HMAC-SHA256. The server handles this transparently:

signature = HMAC-SHA256("{timestamp}|{METHOD}|{path+query}|{body}", secret) → base64

The signed path includes the query string exactly as sent. Headers sent on every request: x-api-key, x-company-id, x-timestamp, x-signature. Requests are rejected if the timestamp is more than 60 seconds old, so keep the host clock NTP-synced.

License

MIT

Available Tools

12 tools
confirm_transactionA

Confirm a previewed transaction, moving it from PREVIEW to PENDING status for processing. Only works on transactions in PREVIEW status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTransaction ID to confirm

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates this is a mutation tool (status change) and specifies the prerequisite condition (PREVIEW status). However, it doesn't mention potential side effects, error conditions, permissions needed, or what happens after PENDING status.

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 perfectly concise with two sentences that each earn their place: the first states the core action and outcome, the second provides critical usage constraint. No wasted words, front-loaded with essential information.

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

Completeness4/5

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

For a single-parameter mutation tool with no annotations and no output schema, the description provides good coverage of purpose, usage constraints, and behavioral context. The main gap is lack of information about what the tool returns or what happens after confirmation, but given the simplicity of the operation, this is a minor omission.

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 the single 'id' parameter adequately. The description doesn't add any additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when schema does the heavy lifting.

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

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 ('confirm'), target resource ('a previewed transaction'), and outcome ('moving it from PREVIEW to PENDING status'). It distinguishes this from sibling tools like 'create_transfer_preview' or 'get_transaction' by focusing on status transition rather than creation or retrieval.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('Only works on transactions in PREVIEW status'), providing clear context and exclusion criteria. It implies alternatives by specifying the required status, though it doesn't name specific sibling tools for other statuses.

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

create_invoicesC

Create one or more invoices (accounts receivable). Each invoice represents an amount the company expects to receive from a customer.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoicesYesArray of invoice objects to create

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it states this creates invoices (implying a write operation), it doesn't mention permissions required, whether invoices are immediately finalized, how errors are handled, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is efficiently structured in two sentences that convey core functionality without waste. The first sentence states the action and scope, while the second explains the business context. Every sentence earns its place, though it could be slightly more front-loaded with key details.

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 mutation tool that creates financial records with no annotations and no output schema, the description is insufficient. It doesn't address what happens after creation, error conditions, validation rules, or return values. The agent lacks critical context needed to use this tool effectively in a real workflow.

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 the single 'invoices' parameter and its nested properties. The description adds no additional parameter semantics beyond what's in the schema. The baseline score of 3 reflects adequate coverage through schema alone.

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

Purpose4/5

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

The description clearly states the tool creates invoices (accounts receivable) and explains what an invoice represents. It specifies 'one or more invoices' which adds useful scope information. However, it doesn't explicitly differentiate from sibling tools like 'create_payments' or 'list_invoices' beyond the basic verb+resource distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'create_payments' or 'list_invoices'. There's no mention of prerequisites, appropriate contexts, or exclusions. The agent must infer usage from the tool name alone.

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

create_paymentsB

Create one or more payments (accounts payable). Each payment represents an amount the company owes to a supplier/creditor.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentsYesArray of payment objects to create

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates payments but fails to mention critical details like whether this is a write operation, if it requires specific authentication, what happens on success/failure, or any rate limits. This leaves significant gaps for an AI agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. Every word contributes to understanding the tool's function, making it highly concise and well-structured.

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 mutation tool with no annotations and no output schema, the description is insufficient. It lacks information on behavioral traits, error handling, return values, and usage context, leaving the AI agent with incomplete guidance for proper tool invocation.

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

Parameters3/5

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

The description adds minimal value beyond the input schema, which has 100% coverage. It clarifies that payments are for 'accounts payable' and owed to 'supplier/creditor', but does not explain parameter meanings, constraints, or relationships. Since the schema is well-documented, the 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 specific action ('create one or more payments') and resource ('accounts payable'), explicitly distinguishing it from sibling tools like 'list_payments' or 'create_invoices' by focusing on payment creation rather than listing or invoice creation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'create_invoices' or 'confirm_transaction', nor does it mention prerequisites such as required permissions or data setup. It only defines what the tool does, not when or why to invoke it.

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

create_signature_requestB

Create a signature request for a transaction, bulk, or payroll. Signers will be notified and can approve from the Dashboard. The transaction auto-confirms on approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesType of signature request
idYesID of the entity to sign (transaction, bulk, or payroll)

TDQS

B3.3/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 lacks critical behavioral details. It mentions signer notification and auto-confirmation on approval, but does not disclose permissions required, rate limits, whether the request is reversible, error conditions, or what happens if approval fails. For a tool that initiates a signature process, this is a significant gap in transparency.

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 sentences that efficiently cover the core action and outcome. It is front-loaded with the main purpose, though it could be slightly more structured by explicitly separating behavioral details. No wasted words, but minor room for improvement in clarity.

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

Completeness2/5

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

Given the complexity of creating a signature request with no annotations and no output schema, the description is incomplete. It lacks details on permissions, error handling, response format, and prerequisites, leaving gaps for an AI agent to understand full usage. More context is needed for adequate 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?

The description adds minimal meaning beyond the input schema, which has 100% coverage. It mentions the parameter types ('transaction, bulk, or payroll') aligning with the enum in the schema, but does not explain the semantics of the 'id' parameter or provide additional context like format examples or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the specific action ('Create a signature request') and the target resources ('for a transaction, bulk, or payroll'), distinguishing it from sibling tools like confirm_transaction or create_invoices. It specifies the purpose as initiating a signing process rather than confirming or creating other entities.

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 needing signatures for specific entity types (transaction, bulk, payroll) but does not explicitly state when to use this tool versus alternatives like confirm_transaction or when not to use it. It mentions signers will be notified and approval happens via Dashboard, providing some context but no explicit guidance on tool selection.

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

create_transfer_previewA

Create a transfer preview (does not execute the transfer yet). Use lookup_bank_address first to get the toId. Returns the preview transaction and whether 2FA is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toIdYesDestination address ID (from lookup_bank_address response)
amountYesTransfer amount as string for decimal precision
currencyCodeYesCurrency code
tagNoOptional transaction tag
sendingDateNoOptional scheduled date (ISO 8601)
descriptionNoOptional transfer description/concept

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the preview-only nature (non-destructive), the prerequisite dependency on another tool, and the return format ('preview transaction and whether 2FA is required'). However, it doesn't mention potential errors, rate limits, or authentication requirements.

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 perfectly concise with two sentences that each earn their place: the first establishes purpose and scope, the second provides usage guidance and return information. No wasted words, and information is front-loaded appropriately.

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 tool with 6 parameters, no annotations, and no output schema, the description does well by explaining the preview nature, prerequisite, and return format. However, it could better address potential error conditions or authentication requirements given the financial transaction context. The 100% schema coverage helps compensate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema, only mentioning 'toId' in the context of the lookup_bank_address prerequisite. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Create a transfer preview') and resource ('transfer preview'), explicitly distinguishing it from actual execution with 'does not execute the transfer yet'. It differentiates from sibling tools like 'confirm_transaction' by focusing on preview rather than completion.

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 provides explicit usage guidance: 'Use lookup_bank_address first to get the toId' establishes a prerequisite, and 'does not execute the transfer yet' clarifies when to use this tool versus alternatives like 'confirm_transaction'. This gives clear context for when this tool is appropriate.

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

get_balanceB

Get wallet balances for the company. Returns balance, lockedBalance, investedBalance, availableBalance, and currency for each wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses the return fields (balance, lockedBalance, etc.) which is helpful, but lacks critical behavioral details: whether this requires authentication, if it's real-time or cached data, rate limits, error conditions, or if it returns all wallets or a subset. For a financial data tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is perfectly concise: two sentences that directly state the action and output. Every word earns its place—no fluff, repetition, or ambiguity. It's front-loaded with the core purpose ('Get wallet balances') followed by specific return details.

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 moderate complexity (financial data retrieval), lack of annotations, and no output schema, the description is minimally adequate. It covers the purpose and return fields but misses behavioral context (auth, data freshness, scoping). Without an output schema, describing return values is valuable, but more operational details would improve completeness.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist. It earns a 4 because it correctly focuses on output semantics instead, listing the returned balance fields, which adds value beyond the empty input 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?

The description clearly states the tool's purpose: 'Get wallet balances for the company' with a specific verb ('Get') and resource ('wallet balances'). It distinguishes itself from siblings like get_transaction or search_transactions by focusing on balances rather than transactions. However, it doesn't explicitly contrast with all siblings (e.g., list_invoices/payments also retrieve financial data).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, frequency, or contextual triggers (e.g., before creating payments/transfers). With siblings like confirm_transaction and create_transfer_preview that might involve balance checks, the lack of usage differentiation is a significant gap.

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

get_transactionA

Get a single transaction by ID. Returns the full transaction object including from/to addresses, amounts, fees, status, and related entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTransaction ID

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that it returns a full transaction object with specific fields (addresses, amounts, fees, status, entities), which adds useful context about output structure. However, it does not mention behavioral traits like error handling, permissions required, or rate limits, leaving gaps for 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.

Conciseness5/5

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

The description is two sentences with zero waste: the first states the purpose and parameter, and the second details the return content. It is front-loaded with the core action and efficiently structured, making every sentence earn 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?

Given the tool's low complexity (single parameter, no annotations, no output schema), the description is adequate but has clear gaps. It explains the return fields, compensating for the lack of output schema, but does not cover error cases or usage context fully. It meets minimum viability but could be more 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?

The input schema has 100% description coverage, with the 'id' parameter documented as 'Transaction ID'. The description adds no additional meaning beyond this, such as format examples or constraints. Since the schema does the heavy lifting, the 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 specific action ('Get a single transaction by ID') and resource ('transaction'), distinguishing it from sibling tools like 'search_transactions' (which returns multiple) or 'get_balance' (which returns account balance). It precisely defines the scope as retrieving a single transaction via its ID.

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 a specific transaction by its ID, but does not explicitly state when to use this versus alternatives like 'search_transactions' for multiple transactions or other siblings. It provides basic context but lacks explicit exclusions or named alternatives.

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

health_checkB

Check if the Cresium API is available and responding

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks API availability and responsiveness, which implies a read-only, non-destructive operation, but doesn't specify details like response format, error handling, timeout behavior, or authentication requirements. This leaves gaps for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential function without unnecessary elaboration.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks details on behavioral aspects like response format or error conditions, which could be helpful for an AI agent despite the low complexity.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's purpose instead. This meets the baseline for tools with no parameters.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Check if the Cresium API is available and responding.' It uses a specific verb ('Check') and identifies the target resource ('Cresium API'), though it doesn't explicitly differentiate from sibling tools like 'get_balance' or 'confirm_transaction' that might also involve API 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or compare it to sibling tools like 'get_balance' that might indirectly indicate API health. Usage is implied only by the purpose statement.

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

list_invoicesB

List all company invoices. Returns the full list of invoices with their status, amounts, payer information, and related data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states the tool lists invoices and returns data fields, but doesn't disclose behavioral traits like whether it's paginated, rate-limited, requires authentication, or has side effects. For a list operation with zero annotation coverage, this is a significant gap in transparency.

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 two sentences, front-loaded with the core purpose and followed by return details. It's efficient with minimal waste, though the second sentence could be slightly more structured (e.g., clarifying if 'related data' is exhaustive). Overall, it's appropriately concise.

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

Completeness3/5

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

Given no annotations, no output schema, and 0 parameters, the description is minimally adequate. It states what the tool does and what data it returns, but lacks details on behavior, error handling, or output format. For a list tool with no structured support, it meets basic needs but has clear gaps.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is appropriate. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('company invoices'), making the purpose immediately understandable. It distinguishes from siblings like 'list_payments' by specifying invoices, though it doesn't explicitly contrast with 'search_transactions' which might overlap. The description is specific but lacks explicit sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'search_transactions' or 'list_payments'. The description implies it returns all invoices without filtering, but it doesn't state this explicitly or mention prerequisites. This leaves the agent without clear usage context.

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

list_paymentsB

List all company payments. Returns the full list of payments with their status, amounts, and related data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'returns the full list' without disclosing behavioral traits like pagination, rate limits, authentication requirements, or whether it's read-only. The phrase 'full list' hints at completeness but lacks operational details needed 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.

Conciseness4/5

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

The description is efficiently structured in two sentences: the first states the action and resource, the second specifies the return content. It's front-loaded with the core purpose and wastes no words, though it could be slightly more polished for a perfect score.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers what the tool does and what it returns but lacks context on usage versus siblings and behavioral transparency, making it minimally viable for this low-complexity case.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the absence of inputs. The description doesn't need to add parameter semantics, and it appropriately avoids discussing nonexistent parameters, earning a baseline score above minimum viable.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('company payments') with specific scope ('all'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search_transactions' or 'list_invoices', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_transactions' or 'get_transaction'. It mentions returning 'full list of payments' but doesn't specify if this is for comprehensive reporting versus filtered searches, leaving the agent without usage context.

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

lookup_bank_addressA

Look up a bank address by CBU, CVU, or alias. Returns the address ID (needed as toId for creating transfers), bank name, owner name, and account type.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesCBU, CVU, or alias to look up

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return data (address ID, bank name, owner name, account type) and a use case ('needed as toId for creating transfers'), which adds value beyond the input schema. However, it does not cover potential errors, rate limits, or authentication needs, leaving gaps in 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?

The description is a single, well-structured sentence that efficiently conveys the tool's purpose, input, and output without unnecessary details. It is front-loaded with the core action and includes only essential information, making it highly concise and effective.

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 moderate complexity (lookup operation with one parameter) and no output schema, the description partially compensates by specifying return fields and a use case. However, with no annotations and incomplete behavioral details (e.g., error handling), it is adequate but has clear gaps, making it minimally viable for agent use.

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

Parameters3/5

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

The input schema has 100% description coverage, documenting the 'value' parameter as 'CBU, CVU, or alias to look up'. The description adds no additional parameter details beyond this, such as format examples or constraints. Baseline score of 3 is appropriate since the schema adequately covers parameter semantics.

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 ('Look up a bank address') and the resources involved ('by CBU, CVU, or alias'), distinguishing it from siblings like 'get_balance' or 'search_transactions' which handle different financial data. It explicitly identifies the lookup identifiers, making the purpose unambiguous.

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 needing bank address details for identifiers like CBU, CVU, or alias, but does not specify when to use this tool versus alternatives (e.g., 'search_transactions' for transaction-related lookups) or any prerequisites. It provides basic context but lacks explicit guidance on exclusions or comparisons.

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

search_transactionsB

Search and filter company transactions with pagination. Supports filtering by date range, type, tag, status, external ID, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromDateNoStart date filter (ISO 8601)
toDateNoEnd date filter (ISO 8601)
typesNoTransaction types to filter (DEPOSIT, WITHDRAWAL, YIELD, etc.)
tagsNoTransaction tags to filter (SALARY, SUPPLIER, SERVICE, RENTAL)
statesNoTransaction statuses to filter (SUCCESS, PENDING, PROCESSING, FAILED, PREVIEW)
externalIdNoFilter by external ID
nameAmountFilterNoFilter by name or amount
cursorNoPagination cursor from previous response
pageSizeNoNumber of results per page (default: 10)
fieldNoSort field
orderNoSort order
depositAddressIdsNoFilter by deposit address IDs
sendingFromDateNoFilter scheduled transactions from date (ISO 8601)
sendingToDateNoFilter scheduled transactions to date (ISO 8601)
scheduledTransactionsNoInclude only scheduled transactions

TDQS

B3.1/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 mentions pagination and filtering capabilities but lacks critical details: whether this is a read-only operation, authentication requirements, rate limits, error conditions, or what the response format looks like. For a search tool with 15 parameters, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is efficiently structured in two sentences: first stating core purpose, then listing supported filters. It's appropriately sized for the tool's complexity, though it could be slightly more front-loaded by mentioning the extensive parameter set earlier.

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's complexity (15 parameters, no annotations, no output schema), the description is incomplete. It doesn't address critical aspects: response format, pagination mechanics beyond mentioning it exists, error handling, or how multiple filters interact. For a sophisticated search tool, this leaves too much undefined for effective agent use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 15 parameters thoroughly. The description adds minimal value beyond the schema by listing some filter types (date range, type, tag, status, external ID) but doesn't provide additional context about parameter interactions, default behaviors, or usage examples that aren't already in the schema descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose as 'Search and filter company transactions with pagination', which specifies the verb (search/filter), resource (company transactions), and key capability (pagination). It distinguishes itself from siblings like 'get_transaction' (singular retrieval) and 'list_invoices/payments' (specific resource types), though it doesn't explicitly mention these distinctions.

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 context through 'Supports filtering by date range, type, tag, status, external ID, and more', suggesting this is the primary tool for complex transaction queries. However, it doesn't provide explicit guidance on when to use this versus simpler alternatives like 'get_transaction' or when not to use it (e.g., for single transactions).

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

Tool Schema Changelog

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

  1. 12 tool updatesv1.0.0
    • First observedconfirm_transaction
    • First observedcreate_invoices
    • First observedcreate_payments
    • First observedcreate_signature_request
    • First observedcreate_transfer_preview
    • First observedget_balance
    • First observedget_transaction
    • First observedhealth_check
    • First observedlist_invoices
    • First observedlist_payments
    • First observedlookup_bank_address
    • First observedsearch_transactions

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: confirm_transaction, create_invoices, create_payments, create_signature_request, create_transfer_preview, get_balance, get_transaction, health_check, list_invoices, list_payments, lookup_bank_address, and search_transactions all target specific financial operations. The descriptions reinforce unique functions, such as create_transfer_preview for previewing transfers versus confirm_transaction for finalizing them, ensuring agents can easily differentiate.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, with clear and predictable conventions: create_invoices, list_payments, get_balance, search_transactions, etc. All tools use snake_case and descriptive verbs (create, get, list, search, confirm, lookup), making the set highly readable and uniform without any deviations or mixed styles.

Tool Count5/5

With 12 tools, the count is well-scoped for a financial operations server, covering core workflows like transfers, invoices, payments, and transactions. Each tool earns its place by addressing specific needs (e.g., previewing vs. confirming transactions, listing vs. creating entities), avoiding bloat while providing comprehensive functionality for the domain.

Completeness5/5

The tool set offers complete CRUD/lifecycle coverage for financial transactions and related entities: create, list, and get operations for invoices, payments, and transactions, plus preview/confirm workflows for transfers, balance checks, and bank lookups. No obvious gaps exist; agents can handle end-to-end processes from lookup_bank_address to confirm_transaction without dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.
    8 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Wallbit's API for financial operations like checking balances, trading stocks, and managing accounts.
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to manage financial operations including balance checks, money transfers, invoicing, spending policies, and audit logs through the PayGent API.
    13
    -