Skip to main content
Glama
narkov

Privat24 Business MCP Server

by narkov

Privat24 Business MCP Server

Unofficial Model Context Protocol server for the Privat24 Business API.

This project exposes practical MCP tools for account statements, balances, transactions, payment creation, and exchange-rate lookups so an MCP-compatible client can work with Privat24 Business through structured tool calls instead of custom glue code.

This repository is not affiliated with, endorsed by, or maintained by PrivatBank.

What It Covers

  • token-authenticated access to the Privat24 Business Autoclient API

  • account and card discovery through statement settings

  • balances and transactions for date ranges

  • interim and final statement endpoints

  • payment creation through the business API

  • current and historical exchange-rate lookups through PrivatBank's public API

  • a raw API tool for unsupported endpoints

Related MCP server: Mono-MCP

Real Use Cases

  • finance copilots that answer "show the balances for yesterday and flag accounts with low cash"

  • treasury assistants that collect statement activity for a date range and summarize outgoing payments

  • operations bots that fetch interim transactions during the day and compare them with final statements later

  • internal accounting workflows that prepare payment drafts from natural-language requests and send them to /payment/create

  • support or back-office agents that need a safe MCP layer instead of direct API scripting

  • multi-tool automations that combine Privat24 Business data with ERP, CRM, BI, or reconciliation systems

Official References

Tools

  • privat24_business_auth: verifies that the configured token can access the business API

  • privat24_business_get_settings: returns statement settings, cards, and related metadata

  • privat24_business_get_balances: returns balances from /statements/balance

  • privat24_business_get_transactions: returns statement transactions from /statements

  • privat24_business_get_interim_balances: returns data from /statements/interim/balance

  • privat24_business_get_interim_transactions: returns data from /statements/interim/transactions

  • privat24_business_get_final_balances: returns data from /statements/final/balance

  • privat24_business_get_final_transactions: returns data from /statements/final/transactions

  • privat24_business_create_payment: posts a JSON payment payload to /payment/create

  • privat24_business_get_exchange_rates: returns current rates from the public PrivatBank API

  • privat24_business_get_exchange_rate_history: returns historical rates for a DD.MM.YYYY date

  • privat24_business_call_api: raw authenticated business API call for unsupported endpoints

Environment

Copy .env.example to .env and configure:

  • PRIVAT24_BUSINESS_TOKEN: required token from Privat24 Business / Autoclient API access

  • PRIVAT24_BUSINESS_BASE_URL: defaults to https://acp.privatbank.ua/api

  • PRIVATBANK_PUBLIC_API_BASE_URL: defaults to https://api.privatbank.ua

Install

npm install

Run

npm run build
npm start

Development mode:

npm run dev

MCP Configuration Example

{
  "mcpServers": {
    "privat24-business": {
      "command": "node",
      "args": [
        "D:/usr/www/mcp-dev/privat24-business-mcp-server/dist/index.js"
      ],
      "env": {
        "PRIVAT24_BUSINESS_TOKEN": "your-token-here"
      }
    }
  }
}

Example Workflows

1. Verify access

Ask your MCP client:

Verify my Privat24 Business token and show the available statement settings.

The client should call privat24_business_auth or privat24_business_get_settings.

2. Summarize outgoing cash movement

Get transactions from 2026-03-01 to 2026-03-15 and summarize the largest outgoing payments.

The client should call privat24_business_get_transactions with:

{
  "from": "2026-03-01",
  "to": "2026-03-15"
}

3. Compare interim and final activity

Show the interim transactions for 2026-03-15, then compare them with the final transactions for the same day.

The client should call:

  • privat24_business_get_interim_transactions

  • privat24_business_get_final_transactions

4. Create a payment draft

Create a payment using this business API payload.

The client should call privat24_business_create_payment with a payload shaped to your Privat24 Business integration requirements.

Example:

{
  "payload": {
    "payerAccount": "26000000000000",
    "recipientAccount": "26000000000001",
    "recipientCode": "12345678",
    "recipientName": "Example LLC",
    "amount": 1500.25,
    "purpose": "Invoice 42"
  }
}

Use the official payment documentation above to adapt field names to your integration profile.

5. Reach an unsupported endpoint

Call the raw business API endpoint /some/custom/path with these query parameters.

The client should call privat24_business_call_api.

Notes

  • The business API implementation in this repository assumes the documented Autoclient base URL https://acp.privatbank.ua/api.

  • Current and historical FX tools use PrivatBank's public API, which does not require the business token.

  • Payment payload requirements can vary by workflow. This server intentionally leaves the payload flexible and forwards your JSON as-is.

  • If you need more endpoints, start with privat24_business_call_api, validate the request shape against the official docs, and then add a dedicated tool.

License

MIT

Available Tools

12 tools
privat24_business_authVerify Privat24 Business tokenB

Calls the statements settings endpoint to verify token access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden, but it only says an endpoint is called and access is verified. It does not disclose whether the call is read-only, what a successful or failed verification returns, or whether any credentials or setup are required beyond the token.

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 one compact, front-loaded sentence with a clear action and purpose. There is no filler or repetition of the title.

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 no-parameter tool this is nearly sufficient, but without an output schema the agent is not told what the verification returns or how to interpret the response. The mention of the endpoint gives some context, but the outcome semantics are left implicit.

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 has zero parameters and 100% coverage, so there is no parameter documentation gap. The baseline for a zero-parameter tool is 4, and the description adds nothing needed about 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 uses a specific verb and resource: 'verify token access' by 'calls the statements settings endpoint.' It distinguishes itself from data-returning siblings like get_transactions or create_payment because this is an authentication check rather than a data operation, though it does not explicitly contrast with privat24_business_get_settings.

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

Usage Guidelines2/5

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

There is no statement about when to run this check (e.g., before calling Privat24 business endpoints) or when not to use it. It also names no alternative tools or conditions, leaving the agent to infer that auth is a precursor to other operations.

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

privat24_business_call_apiCall Privat24 Business APIC

Calls any business endpoint with arbitrary query parameters or JSON body.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYes
queryNo
methodYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Calls any business endpoint' and does not mention authentication requirements, potential side effects, rate limits, or error behavior. For a generic low-level call tool, this is a significant omission.

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 sentence with no fluff; the core action is front-loaded. It is concise and avoids verbosity, though it is so brief that it sacrifices substance in other dimensions.

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 low-level API caller with 4 parameters (including nested objects), no output schema, and no annotations. The description does not explain authentication prerequisites, endpoint discovery, request formatting, or any constraints beyond saying 'arbitrary.' It is incomplete for an agent to safely and correctly invoke this tool in all scenarios.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'arbitrary query parameters or JSON body,' giving a hint about query and body, but says nothing about the meaning of 'method' (get/post) or 'path', nor how query and body relate. The description fails to explain the structure or usage of any parameter in detail.

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

Purpose4/5

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

The description states a clear action ('Calls') and resource ('any business endpoint'), distinguishing it from the specific sibling tools (e.g., get_balances, create_payment) as a generic escape hatch. However, it does not specify what endpoints are available or how to discover them, so it is not fully self-contained.

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 phrase 'any business endpoint' implies this tool is for calls not covered by specialized siblings, but it never explicitly says 'use this when no sibling tool applies' or lists any alternatives. Guidance is implied rather than stated, leaving the agent to infer context from sibling names.

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

privat24_business_create_paymentCreate a paymentC

Posts an arbitrary payment payload to /payment/create.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes

TDQS

C2.8/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 disclosing behavior. It reveals that the payload is 'arbitrary', but omits important behavioral details such as financial side effects, authentication needs, idempotency, or error behavior for a payment-creation 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 with no fluff or repetition. It efficiently communicates the core action and endpoint, making every word count.

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 payments, the description is far too sparse. There is no output schema, no annotations, and no elaboration on payload requirements, response format, or failure modes, leaving the agent without enough context to call the tool reliably.

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?

The schema description coverage is 0%, and the sole 'payload' parameter has no property description. The phrase 'arbitrary payment payload' adds some domain meaning, but it does not explain the expected structure or fields, and calling it arbitrary may even mislead an agent into sending an invalid payload.

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 names a specific verb ('Posts') and a concrete resource ('/payment/create'), which clearly identifies the operation. It stands apart from the read-oriented sibling tools, though it does not explicitly distinguish itself from the generic call_api sibling.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool instead of alternatives like call_api, nor any preconditions or caveats. The description simply states what the tool does without helping the agent choose it correctly.

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

privat24_business_get_balancesGet balancesC

Returns balances from /statements/balance for a date range or filtered cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
cardNo
fromNo
filtersNo

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 the full burden of behavioral disclosure. It only restates that the tool returns balances and names an endpoint; it does not describe auth requirements, response format, date-range semantics, or whether the operation is read-only. 'Returns' is barely more informative than the title.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no filler; the endpoint and request scope appear early. It is efficient but leaves out substantial context, so it is concise rather than fully adequate.

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 annotations and no output schema, the description needs to cover more ground for a tool with four parameters and a nested filters object. It omits return shape, required/optional behavior, filter semantics, and the relationship to the interim/final sibling endpoints, leaving an agent under-equipped.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only hints at 'date range' and 'filtered cards' without mapping these to from/to, card, or filters. The filters object is entirely unexplained, and no parameter details or formats are given.

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 identifies a clear verb ('Returns'), a resource ('balances from /statements/balance'), and a scope ('date range or filtered cards'). However, it does not distinguish this tool from siblings like get_interim_balances and get_final_balances, so it stops short of fully differentiating.

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 phrase 'for a date range or filtered cards' implies the kind of request this tool serves. It gives no explicit guidance on when to prefer get_balances over get_interim_balances or get_final_balances, nor any exclusions or prerequisites.

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

privat24_business_get_exchange_rate_historyGet historical exchange ratesA

Returns exchange rates for a specific date using DD.MM.YYYY format.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool is read-oriented ('Returns exchange rates') and imposes a date format, but it does not describe the response shape, possible errors, or rate-limit behavior. This is adequate for a simple getter but not rich.

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 the core behavior and includes the relevant format. No filler or redundant content.

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 one-parameter, no-output-schema tool, the description covers the main input requirement. However, without output schema or annotations, it would benefit from stating what the returned exchange rates look like, but the current text is minimally 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?

Schema description coverage is 0%, so the description must compensate. It does identify the date parameter's meaning and format, though the format is already encoded in the schema pattern. It adds no further detail such as accepted date range or business-day 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?

Description states a specific action ('Returns exchange rates') with a clear scope ('for a specific date') and the expected date format. The 'historical' in the tool name plus the date-scoped behavior distinguishes it from sibling privat24_business_get_exchange_rates.

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

Usage Guidelines3/5

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

The description implies the use case: retrieve exchange rates for a past/specific date. However, it does not explicitly say when to choose this tool over privat24_business_get_exchange_rates or mention any exclusions.

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

privat24_business_get_exchange_ratesGet current exchange ratesB

Returns current PrivatBank exchange rates using the public API.

ParametersJSON Schema
NameRequiredDescriptionDefault
coursidNo

TDQS

B3.3/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 of behavioral disclosure. It clearly indicates a read-only operation and notes the public API, implying no authentication is needed. However, it does not mention response format, error behavior, or whether results are cached, leaving meaningful 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.

Conciseness5/5

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

The description is a single front-loaded sentence that conveys the core purpose without redundancy. Every word adds value, making it an excellent example of conciseness even though it lacks some semantic detail.

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

Completeness2/5

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

The tool has one optional parameter with no schema description, no output schema, and no behavioral notes; the agent cannot tell how coursid affects results or what the response looks like. The description is also silent on when to prefer this over the history sibling, making it incomplete for a tool with this little additional structure.

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

Parameters1/5

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

Schema description coverage is 0%: the only parameter, coursid, is an integer with no description or enum. The description never mentions or explains this parameter, and with such low schema coverage it was incumbent on the description to compensate. It does not.

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 states a specific verb ('Returns') and resource ('current PrivatBank exchange rates') and specifies it uses the public API. It also distinguishes from the sibling history tool by emphasizing 'current', making the tool's 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?

Usage context is implied by the word 'current' and the name of a sibling tool ('get_exchange_rate_history'), but the description does not explicitly state when to use this tool vs. alternatives or mention the optional coursid parameter. It provides no direct guidance or exclusions.

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

privat24_business_get_final_balancesGet final balancesC

Returns end-of-day balances from /statements/final/balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardNo
dateNo
filtersNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states what is returned and does not address filtering behavior, date handling, authentication requirements, rate limits, or response shape. The brief endpoint reference adds slight clarity but is insufficient.

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

Conciseness4/5

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

The description is a single sentence that directly states the core behavior and endpoint. It is concise and front-loaded with the most important information. However, it is so terse that it sacrifices useful context, keeping it from a higher score.

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 three undocumented parameters, no output schema, and no annotations, the description is far too sparse. It does not explain the parameters, date format requirements, filter structure, or what the returned balances look like. The description is minimal enough that an agent would likely need to inspect the API or call the generic privat24_business_call_api tool.

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

Parameters1/5

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

Schema description coverage is 0% and the description offers no explanation for the three parameters: card, date, and filters. An agent cannot determine what values are expected or how filters affect results. The description completely fails to compensate for the schema's lack of documentation.

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

Purpose4/5

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

The description clearly states the tool returns end-of-day balances from the /statements/final/balance endpoint. This gives a specific verb, resource, and scope. It does not explicitly name sibling tools or differentiate them, but 'end-of-day' helps distinguish it from interim balance tools.

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 about when to use this tool versus alternatives like privat24_business_get_interim_balances or privat24_business_get_balances. There is no mention of prerequisites, typical use cases, or exclusions. The usage context is only implied by the word 'final'.

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

privat24_business_get_final_transactionsGet final transactionsB

Returns end-of-day transactions from /statements/final/transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardNo
dateNo
filtersNo

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 the full disclosure burden, but it only states that the tool returns end-of-day transactions. It does not mention read-only behavior, authentication requirements, pagination, response format, timezone/date semantics, or any operational caveats, so the behavioral picture is minimal.

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

Conciseness5/5

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

The description is a single efficient sentence that gets straight to the point, names the exact endpoint, and contains no filler. It is appropriately concise for the information it provides.

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 three parameters (including a nested filters object), no output schema, and no annotations, this description is too sparse. It does not explain the relationship between card, date, and filters, nor describe the response shape or how final transactions differ from interim ones operationally.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning for any of the three parameters. The description does not explain what 'card' refers to, what 'date' means in relation to end-of-day transactions, or what 'filters' can contain. The description fails to compensate for the absent 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 a specific verb ('Returns') and a precise resource ('end-of-day transactions from /statements/final/transactions'). The 'end-of-day' and 'final' wording helps distinguish this tool from sibling tools like get_interim_transactions and get_transactions.

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 'end-of-day' phrasing implies this is for finalized daily statements, but the description never explicitly says when to use this tool instead of get_transactions or get_interim_transactions. No alternatives or exclusions are named, leaving the 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.

privat24_business_get_interim_balancesGet interim balancesC

Returns interim balances from /statements/interim/balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardNo
dateNo
filtersNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it only says 'returns' without disclosing any request requirements, side effects, auth constraints, or response behavior. It implies a read-only operation but adds no context beyond that.

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

Conciseness3/5

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

The sentence is short and front-loaded, but it mostly restates the title with an endpoint path. It is not bloated, yet it is too under-specified to be an effective standalone description.

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

Completeness1/5

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

For a tool with no annotations, no output schema, three undocumented parameters, and nested filters, a one-sentence endpoint echo is far from complete. The agent lacks the meaning of interim balances, parameter semantics, and return value expectations.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain card, date, and filters. It does not define any of them, what is required, or what shape 'filters' should take, leaving the agent without enough information to construct a valid call.

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 names a specific verb ('Returns') and resource ('interim balances from /statements/interim/balance'), and the endpoint path distinguishes it from final-balance and transaction siblings. It does not explain what makes balances 'interim', so it is clear but not fully defined.

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

Usage Guidelines2/5

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

No guidance is given about when to call this tool instead of get_balances, get_final_balances, or get_interim_transactions, and no exclusions or prerequisites are mentioned. An agent must guess which of the related sibling tools is appropriate.

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

privat24_business_get_interim_transactionsGet interim transactionsC

Returns interim transactions from /statements/interim/transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardNo
dateNo
filtersNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Returns...' without mentioning read-only status, pagination, auth requirements, or any side effects. The endpoint path is added context but does not explain behavior beyond the default 'get' action.

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

Conciseness3/5

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

The description is a single concise sentence that efficiently states purpose. However, it is under-specified for a tool with three parameters and several siblings; while every word earns its place, important information is missing that would make it more useful.

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 parameters, no annotations, no output schema, and a family of similar sibling tools, the description is incomplete. It lacks parameter meanings, usage guidance, and any indication of the response format or expected behavior, making it hard for an agent to call correctly.

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

Parameters1/5

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

Schema coverage is 0% and the description does not mention any of the three parameters (card, date, filters). The schema provides types and a pattern for date, but no meaning or usage guidance. The description fails to compensate for the lack of schema documentation.

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

Purpose5/5

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

The description states the specific verb 'Returns' and the precise resource 'interim transactions', and even includes the endpoint path '/statements/interim/transactions'. This clearly distinguishes it from sibling tools like 'final transactions' or 'balances'.

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 implicitly conveyed by the name and description: if you need interim transactions, this is the tool. However, there is no explicit guidance on when to prefer this over final transactions or balances, nor any context about interim vs final data.

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

privat24_business_get_settingsGet statement settingsB

Returns available cards, accounts, and statement-related settings.

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. It indicates a read-style operation by saying 'Returns', but it does not disclose whether authentication is required, whether results depend on prior authorization, or what the response structure or limitations might be.

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 that immediately states what the tool returns. It contains no filler or redundant material.

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 parameterless read tool this is mostly sufficient: an agent knows what resource is returned and can invoke it without further input. However, with no output schema and no annotation context, the description leaves some ambiguity about the exact settings payload and any prerequisites.

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

Parameters4/5

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

The tool has zero parameters, so there is little semantic burden on the description. The baseline of 4 applies because there is no parameter documentation needed beyond the naturally parameterless interface.

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 uses a clear verb ('Returns') and names concrete resources: available cards, accounts, and statement-related settings. This separates it from transaction and balance siblings in a basic way, though 'settings' remains somewhat vague.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus siblings like get_balances or get_transactions. The use case is only implicit from the tool name and description.

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

privat24_business_get_transactionsGet transactionsC

Returns statement transactions from /statements for a date range or filtered cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
cardNo
fromNo
filtersNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says it 'returns' data, implying a read-only operation, but does not disclose any other behaviors such as pagination, error handling, rate limits, or side effects. Minimal context is provided beyond the core purpose.

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 immediately states the purpose. It is free of redundant information and is appropriately concise for a tool that returns data.

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

Completeness1/5

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

The description is severely incomplete for correct invocation. It does not describe the output format, the meaning of 'statement' relative to interim/final transactions, the purpose or structure of the 'filters' object, or how the date range interacts with card filtering. Given the lack of output schema and parameter descriptions, this is inadequate for an agent to use confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the parameters have no descriptions. The description loosely mentions 'date range' and 'filtered cards', hinting at the from/to and card parameters, but does not explain the 'filters' object, the exact format of dates, or whether any parameters are required. It falls short of compensating for the lack of schema documentation.

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

Purpose4/5

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

The description clearly states the tool returns statement transactions from the /statements endpoint, specifying filtering by date range or cards. However, it does not differentiate from sibling tools like privat24_business_get_interim_transactions or privat24_business_get_final_transactions, which also return transactions. Thus, it lacks 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?

There is no guidance on when to use this tool versus the other transaction-related siblings. No conditions, exclusions, or alternatives are mentioned. The description only states what it does, not when to prefer it over others.

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 updatesv0.1.0
    • First observedprivat24_business_auth
    • First observedprivat24_business_call_api
    • First observedprivat24_business_create_payment
    • First observedprivat24_business_get_balances
    • First observedprivat24_business_get_exchange_rate_history
    • First observedprivat24_business_get_exchange_rates
    • First observedprivat24_business_get_final_balances
    • First observedprivat24_business_get_final_transactions
    • First observedprivat24_business_get_interim_balances
    • First observedprivat24_business_get_interim_transactions
    • First observedprivat24_business_get_settings
    • First observedprivat24_business_get_transactions

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Most tools are cleanly separated by resource (balances, transactions, rates) and time scope (standard/interim/final), so an agent can usually pick the right one. The generic call_api overlaps with every specific endpoint, and auth vs get_settings is slightly blurry, but descriptions help clarify intent.

Naming Consistency4/5

All tools share the privat24_business_ prefix and use snake_case, with most following a get_<resource> pattern. create_payment and call_api fit the verb_noun style, but auth breaks the pattern slightly and get_exchange_rate_history is a minor deviation from the plural get_exchange_rates.

Tool Count5/5

12 tools is within the ideal range for a business banking integration. The count reflects the statement matrix, payments, exchange rates, and setup/verification without feeling bloated or too thin.

Completeness4/5

The set covers balances, transactions (regular/interim/final), payments, exchange rates, settings, and auth verification. It lacks dedicated payment status or detailed payment management tools, but call_api provides an escape hatch for accessing any missing endpoint.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes Monobank personal account data through MCP tools, allowing users to fetch client info, accounts, and jars. It also enables retrieving account statements for specific time periods.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to retrieve and format Monobank account statements and transactions by date range.
    5 npm
    4
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    MCP server for Payme payment system (Uzbekistan). Supports transactions, statements, payment links, and balance queries via JSON-RPC 2.0.
    8
    4 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    MCP server for Sberbank business API enabling account management, balance checks, statements, payments, and counterparty operations.
    8
    26 npm
    1
    MIT