Skip to main content
Glama

MainBook Bank Statement Converter

Server Details

Converts customer-supplied PDF bank statements into checked Excel, CSV, or JSON with balance validation. Hosted Streamable HTTP endpoint; each user brings their own MainBook API key, and the server never connects to bank accounts.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: starting a conversion, checking credits, retrieving a specific conversion, and listing conversions. There is no overlap or ambiguity among the four tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: convert_bank_statement, get_balance, get_conversion, list_conversions. This makes the naming predictable and easy to reason about.

Tool Count5/5

With exactly 4 tools, the set is well-scoped for a bank statement converter. Each tool covers an essential part of the workflow without unnecessary redundancy or bloat.

Completeness5/5

The tool surface covers the full lifecycle: initiating a conversion, checking credit balance, retrieving results, and listing past jobs. There are no significant gaps for the stated purpose of converting and retrieving bank statements.

Available Tools

4 tools
convert_bank_statementConvert bank statementAInspect

Convert one PDF bank statement through the complete MainBook workflow: create a job, upload, start, poll, and return structured data. This creates a job and spends page credits; it is not read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic HTTPS URL of a PDF for remote mode. Redirects and non-public network addresses are rejected. Exactly one source is required.
file_pathNoPath to a PDF on the MCP server machine. This field is only available over stdio and is rejected in HTTP mode; remote clients must use file_url. The path must be inside the allowed folders, which default to Downloads, Desktop, and Documents. Exactly one of file_path and file_url is required.
output_pathNoOptional absolute result file or existing folder on the MCP server machine. Only available over stdio and only inside the allowed folders. The file extension is corrected to match result_type.
result_typeNoJSON is returned inline. Over stdio, XLSX or CSV is written to an allowed local folder and the full path is returned. HTTP mode returns safe download instructions. Binary bytes never enter model context.json
idempotency_keyNoOptional value forwarded verbatim in the Idempotency-Key REST header.
timeout_secondsNoInternal polling budget from 30 to 900 seconds. Timeout leaves the job running and returns its job_id for get_conversion. The default stays under the 60-second request timeout most MCP clients enforce; a client that gives up first discards the job_id and the conversion looks lost.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
pagesYes
stateYes
job_idYes
messageYes
downloadNo
timed_outNo
saved_fileNo
validationYes
result_typeYes

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, openWorldHint=true), the description discloses that it creates a job, spends page credits, and is not read-only. It adds meaningful context about side effects and cost, which is valuable and consistent with the annotations.

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

Conciseness5/5

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

The description is two tight sentences that front-load the core purpose and key behavioral caveats. Every sentence earns its place without redundancy.

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

Completeness4/5

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

Given the tool's complexity (6 params, workflow, async behavior), the description covers essential aspects: job creation, credit usage, async completion via job_id, and non-read-only nature. The detailed schema and output schema compensate for any omitted return-value details.

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

Parameters3/5

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

Schema coverage is 100% with rich parameter descriptions (transport methods, allowed folders, result_type behavior, timeout semantics). The tool description adds no per-parameter meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the action ('convert one PDF bank statement') and resource, and outlines the complete workflow. It distinguishes from sibling read-only tools (get_balance, get_conversion, list_conversions) by explicitly stating it creates a job and is not read-only.

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

Usage Guidelines4/5

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

Clear context for when to use this tool: to convert a PDF, with details about the workflow and timeout behavior pointing to get_conversion. It does not explicitly list exclusions or alternatives, but the timeout returns job_id for get_conversion, which indirectly guides the agent.

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

get_balanceGet page-credit balanceA
Read-only
Inspect

Return total, reserved, and available MainBook credits. Every value is measured in PDF pages.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
unitsNo
balanceYes
reservedYes
availableYes
explanationYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a read-only, externally mutable resource. The description adds clarity by specifying the exact credits (total, reserved, available) and confirming the unit (PDF pages). No contradictions found.

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

Conciseness5/5

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

Two short, dense sentences with no wasted words. The first sentence states what the tool returns, the second clarifies the measurement unit. Perfectly front-loaded and efficient.

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

Completeness5/5

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

For a zero-parameter read-only tool with an output schema, the description fully covers the purpose, items returned, and units. The output schema presumably details the structure, so no additional return-value explanation is needed.

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

Parameters3/5

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

Schema description coverage is 100%, and there are no parameters to document. The description provides the meaning of the return values (total, reserved, available) which is helpful, but since there are no params, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Return') and identifies the resource ('MainBook credits') and three precise items (total, reserved, available). It distinguishes itself from siblings like 'convert_bank_statement' or 'list_conversions' by being clearly a balance/account query tool.

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

Usage Guidelines4/5

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

The description implies use when an agent needs to check credit balances before performing PDF-related operations. It does not explicitly state when not to use it or name alternatives, but with 0 params and a dedicated name, its niche is obvious.

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

get_conversionGet conversionA
Read-onlyIdempotent
Inspect

Get the current state of one MainBook conversion. When successful, return JSON inline or save XLSX/CSV locally over stdio. HTTP mode returns safe download instructions. Use this after convert_bank_statement times out.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesConversion job UUID returned by MainBook.
output_pathNoOptional absolute result file or existing folder on the MCP server machine. Only available over stdio and only inside the allowed folders.
result_typeNoResult representation to retrieve after the job succeeds.json

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
pagesYes
stateYes
job_idYes
messageYes
downloadNo
timed_outNo
saved_fileNo
validationYes
result_typeYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations: successful jobs return JSON inline or save XLSX/CSV files locally over stdio, while HTTP mode returns safe download instructions. This clarifies surprising mode-dependent behavior without contradicting the annotations.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the core action, and the second covers result behavior and usage timing. Every clause contributes meaningful 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?

The output schema covers return values, so the description does not need to detail them. It covers the main execution modes and when to call the tool, but it does not describe the polling lifecycle or failure/status behavior in depth. Given the presence of a rich schema and clear annotations, this is still a solidly complete description.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by linking output delivery to stdio vs HTTP modes, which enriches the meaning of result_type and output_path beyond the schema. It does not restate the parameter details, making it a useful complement.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get the current state of one MainBook conversion.' It distinguishes this from siblings like list_conversions (plural listing) and convert_bank_statement (creation trigger) by focusing on a single conversion's state and result retrieval.

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

Usage Guidelines4/5

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

It explicitly tells the agent when to use the tool: 'Use this after convert_bank_statement times out.' This provides clear timing context. It does not explicitly mention alternatives or when not to use it, but the purpose and predecessor relationship are clear enough.

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

list_conversionsList conversionsA
Read-only
Inspect

List one cursor page of conversion jobs visible to the MainBook account. Pass the returned next_cursor to continue.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoJobs on this page, from 1 to 100.
cursorNoOpaque next_cursor from the previous page.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
unitsNo
conversionsYes
next_cursorYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context beyond that: it clarifies scope ('visible to the MainBook account') and the cursor-based pagination mechanism. This extra detail is valuable for an agent deciding how to interact with the tool.

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

Conciseness5/5

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

Two sentences with zero wasted words. The first sentence states the core purpose and scope; the second gives the key usage instruction for pagination. Information is front-loaded and efficient.

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

Completeness5/5

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

Given the tool's low complexity (pagination list with two parameters), full schema coverage, presence of an output schema, and comprehensive annotations, the description is complete. It does not need to explain return values (output schema covers that) and provides all necessary usage context.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both limit and cursor. The description mentions 'cursor page' and 'next_cursor,' reinforcing the cursor parameter's role but adding no new semantic detail beyond what the schema already provides. Baseline score 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 'List one cursor page of conversion jobs visible to the MainBook account.' It uses a specific verb ('list'), resource ('conversion jobs'), and includes scope constraints ('one cursor page', 'MainBook account'), effectively distinguishing it from sibling tools like get_conversion (single item) and convert_bank_statement (action).

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

Usage Guidelines4/5

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

The description instructs the agent to 'Pass the returned next_cursor to continue,' providing clear pagination usage. It implies the tool is for listing pages of conversions but does not explicitly state when not to use it or compare to alternatives. However, given distinct siblings, the guidance is effective.

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. 2 tool updates
    • Changedconvert_bank_statement6 fields changed
      • addedOutput schema / $defs / DownloadInstruction / properties / expires_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Expires At"
        +}
      • addedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / default
        Added value: +null
      • removedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / type
        Removed value: -"string"
      • addedOutput schema / $defs / DownloadInstruction / properties / url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Url"
        +}
      • changedOutput schema / $defs / DownloadInstruction / required
        Previous value: -[
        -  "job_id",
        -  "result_type",
        -  "rest_endpoint",
        -  "instruction"
        -]New value: +[
        +  "job_id",
        +  "result_type",
        +  "instruction"
        +]
    • Changedget_conversion6 fields changed
      • addedOutput schema / $defs / DownloadInstruction / properties / expires_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Expires At"
        +}
      • addedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / default
        Added value: +null
      • removedOutput schema / $defs / DownloadInstruction / properties / rest_endpoint / type
        Removed value: -"string"
      • addedOutput schema / $defs / DownloadInstruction / properties / url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Url"
        +}
      • changedOutput schema / $defs / DownloadInstruction / required
        Previous value: -[
        -  "job_id",
        -  "result_type",
        -  "rest_endpoint",
        -  "instruction"
        -]New value: +[
        +  "job_id",
        +  "result_type",
        +  "instruction"
        +]
  2. 1 tool update
    • Removedoutput_folder
  3. 5 tool updates
    • First observedconvert_bank_statement
    • First observedget_balance
    • First observedget_conversion
    • First observedlist_conversions
    • First observedoutput_folder

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    7 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources