PivotBank

Convert bank statement PDFs to Excel, CSV, OFX or QBO, every row checked against the balances.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~767Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.60% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pivotbank": {
      "url": "https://pivotbank.app/mcp"
    }
  }
}

Remote endpoints

https://pivotbank.app/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡convert_statement(statement, pdf_base64, filename)

Use this when the user wants a bank statement or credit card statement PDF turned into a spreadsheet: Excel (xlsx), CSV, QuickBooks (QBO), Xero (OFX), Quicken (QIF) or JSON. Reads every transaction (date, description, money in, money out, balance) and checks them against the statement's own running balances, so the reading is proved rather than guessed. Saves the statement to the user's PivotBank account and returns a link to download it in any of those formats. Needs the user to sign in to PivotBank; agents may instead send a Pro API key as 'Authorization: Bearer pvb_live_...'.

Input Schema

{
  "type": "object",
  "properties": {
    "statement": {
      "type": "object",
      "description": "The bank statement PDF the user shared.",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        }
      }
    },
    "pdf_base64": {
      "type": "string",
      "description": "For clients without file attachments: the statement PDF, base64-encoded. 15 MB before encoding at most."
    },
    "filename": {
      "type": "string",
      "description": "The file name, for your own records."
    }
  },
  "additionalProperties": false
}
🟢check_statement_balances(statement, pdf_base64)

Use this when the user asks whether a bank statement is complete, correct or genuine, or why its numbers do not add up. Reads the PDF and checks every row against the statement's own running balances: opening plus money in minus money out must land on the closing balance to the cent. Says whether it does, and names the rows where it breaks. Free with a PivotBank account.

Input Schema

{
  "type": "object",
  "properties": {
    "statement": {
      "type": "object",
      "description": "The bank statement PDF the user shared.",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        }
      }
    },
    "pdf_base64": {
      "type": "string",
      "description": "For clients without file attachments: the PDF, base64-encoded."
    }
  },
  "additionalProperties": false
}
🟢summarise_spending(statement, pdf_base64)

Use this when the user wants to know where their money went from a bank statement PDF: money in and out, spending by category, top merchants and repeating payments such as subscriptions. Free with a PivotBank account.

Input Schema

{
  "type": "object",
  "properties": {
    "statement": {
      "type": "object",
      "description": "The bank statement PDF the user shared.",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        }
      }
    },
    "pdf_base64": {
      "type": "string",
      "description": "For clients without file attachments: the PDF, base64-encoded."
    }
  },
  "additionalProperties": false
}
🟢list_supported_banks(country)

Lists the banks PivotBank recognises by name, for one country (ISO 3166 alpha-2, e.g. GB, US, ZA) or for all. A statement from a bank not listed still converts: the reader works from the layout, not a per-bank template.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166 alpha-2 code. Leave out for every bank."
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools