CapyParse MCP Server
Converts Chase bank statement PDFs into structured data (Markdown, JSON, CSV, JSONL) with source citations and balance verification.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CapyParse MCP ServerConvert my Chase statement PDF to CSV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CapyParse MCP Server
Convert PDF bank statements into verified, structured data (Markdown, JSON, CSV, JSONL) from any MCP-compatible AI agent. Every transaction comes with source citations (page/line of the original statement) and balance-verification checks, so agents can audit the numbers they use.
Get an API key at capyparse.com/dashboard/settings/api-keys. Conversions cost 1 credit per page (new accounts include free credits).
Two ways to connect
Hosted (no install) — streamable HTTP:
URL: https://capyparse.com/mcp
Header: Authorization: Bearer cpk_live_...Local (this package) — runs on your machine, so agents can convert local files by path:
CAPYPARSE_API_KEY=cpk_live_... npx -y capyparse-mcpRelated MCP server: pdf-inspector-mcp
Install
Claude Code
claude mcp add capyparse -e CAPYPARSE_API_KEY=cpk_live_... -- npx -y capyparse-mcp
# or hosted:
claude mcp add --transport http capyparse https://capyparse.com/mcp \
--header "Authorization: Bearer cpk_live_..."Claude Desktop / Cursor / Windsurf
{
"mcpServers": {
"capyparse": {
"command": "npx",
"args": ["-y", "capyparse-mcp"],
"env": { "CAPYPARSE_API_KEY": "cpk_live_..." }
}
}
}Tools
tool | description |
| Start a conversion from a local |
| Poll status; completed conversions include per-account verification |
| Fetch transactions as markdown / json / csv / jsonl, with optional source citations ( |
| Recent conversions for your team |
| Remaining page credits |
Example
"Convert ~/Downloads/chase-january.pdf and give me the transactions as CSV."
The agent calls convert_bank_statement(file_path=...), polls
get_conversion, then get_conversion_result(format="csv").
Docs: capyparse.com/developers
Releasing (maintainers)
Future releases: bump with npm version patch (or minor), then npm publish.
Available Tools
5 toolsconvert_bank_statementA
Convert a PDF bank statement with CapyParse. Pass a local file_path or a downloadable file_url. Costs 1 credit per page. Returns a conversion id — poll get_conversion until status is 'completed' (typically 1-3 minutes, wait ~30s between polls), then call get_conversion_result.
| Name | Required | Description | Default |
|---|---|---|---|
| file_url | No | Downloadable http(s) URL of the statement | |
| file_path | No | Path to a local PDF/PNG/JPG file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses cost per page, async behavior, and polling details. However, it does not cover potential errors, file size limits, or what happens if the file is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, no unnecessary words, front-loaded with the core action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return value (conversion id) and the follow-up actions. It lacks details on error handling or file limitations, but covers the key workflow adequately for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage. The description adds context about 'downloadable' and cost per page, but the cost is more of a behavioral note than parameter semantics. Minimal added value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts a PDF bank statement with CapyParse, specifying the input options (file_path or file_url). It distinguishes from sibling tools by outlining the asynchronous workflow with polling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pass a local file_path or downloadable file_url, mentions cost (1 credit per page), and provides a step-by-step process: returns conversion id, poll get_conversion until completed, then call get_conversion_result. The typical polling time and wait interval are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversionC
Check a conversion's status (queued | processing | completed | failed). When completed, includes a per-account summary with verification status.
| Name | Required | Description | Default |
|---|---|---|---|
| conversion_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It indicates a read-like operation (checking status) but does not explicitly state it is non-destructive, lacks side effects, or requires any permissions. The description is minimal and does not cover idempotency or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence that front-loads the status values. However, it could be structured to include parameter guidance or usage notes without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-check tool with one parameter and no output schema, the description is adequate but incomplete. It misses guidance on the relationship to get_conversion_result and does not explain the parameter. The lack of annotations and schema descriptions increases the burden on the description, which it only partially meets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, conversion_id, is listed in the schema but not described in the tool description, and the schema has no description. The description adds no meaning beyond the parameter name, leaving the agent to infer its format or source (e.g., from list_conversions).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a conversion's status and lists the possible statuses (queued, processing, completed, failed). It also mentions the additional per-account summary when completed. However, it does not explicitly differentiate from sibling tools like get_conversion_result, which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_conversion_result or list_conversions. There is no mention of prerequisites, context, or exclusions, leaving the agent without decision support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversion_resultA
Fetch the converted transactions for a completed conversion. format: markdown (default, ready-to-read tables), json (signed amounts: deposits positive / withdrawals negative), csv, or jsonl. provenance: none | summary (default — page/line citations, verbatim source text, verification status per row) | full (adds per-field sources).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| account | No | Account index for multi-account statements | |
| provenance | No | summary | |
| conversion_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description adds context on format and provenance options, but does not disclose read-only nature, authentication needs, or response structure (e.g., list/object, size limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the main purpose, followed by details on format and provenance. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 4 parameters (only 1 described in schema), the description adds format and provenance details but lacks information on return structure, pagination, or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (account described). Description explains format and provenance enum values with specific details, adding value beyond schema. However, conversion_id lacks description, and account minimum is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'converted transactions for a completed conversion'. It distinguishes from sibling tools like get_conversion (likely metadata) and convert_bank_statement (initiation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after conversion completion but does not explicitly state when or compare to alternatives. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_creditsA
Check remaining CapyParse credits (1 credit = 1 statement page). Call before converting large documents or after an insufficient-credits error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It adds the credit definition and usage hints but does not state that the tool is read-only or non-mutating. For a simple parameterless tool, the description is adequate but minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The purpose is front-loaded, and the usage hint is appended succinctly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is fairly complete. It tells the agent what the tool does and when to use it. Lacks details about the return format, but that is likely straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds value beyond the schema by explaining the credit unit, which relates to the tool's output rather than input parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Check remaining CapyParse credits' with a specific verb and resource. Explains the credit unit (1 credit = 1 statement page), distinguishing it from sibling conversion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage scenarios: 'Call before converting large documents or after an insufficient-credits error.' This gives clear context for when to invoke the tool, effectively guiding the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversionsA
List the team's recent conversions (newest first), including ones started from the CapyParse dashboard. Use this to find a conversion id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
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 clarifies ordering and scope but does not mention read-only nature, pagination, or error cases. The description is adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded, and every sentence adds value. It efficiently communicates the tool's purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and usage but lacks details on the output format or pagination. Given the absence of an output schema, the description should provide more context on what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (limit) with constraints but no description. The tool description does not mention this parameter or explain its purpose. The description fails to add value beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the team's recent conversions, sorted newest first, and specifies its use for finding a conversion ID. It effectively distinguishes from sibling tools that perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool's purpose (finding a conversion id) which implies its usage context. However, it does not explicitly mention when not to use it or compare with sibling tools like get_conversion or get_conversion_result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
convert_bank_statement - First observed
get_conversion - First observed
get_conversion_result - First observed
get_credits - First observed
list_conversions
TDQS
Each tool serves a unique purpose: starting a conversion, checking status, retrieving results, checking credits, and listing conversions. There is no overlap or ambiguity in their functions.
All tools follow a consistent verb_noun pattern in snake_case, such as 'convert_bank_statement' and 'get_conversion', making the set predictable and easy to navigate.
With 5 tools, the server is well-scoped for its purpose of parsing bank statements. Each tool is essential for the workflow, and the count is neither too small nor too large.
The tool set covers the complete lifecycle: initiating a conversion, monitoring progress, retrieving results in multiple formats, managing credits, and reviewing past conversions. No obvious gaps exist for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Convert PDF bank statements into structured transactions, accounts, and balances.
Convert PDF bank statements to checked Excel, CSV or JSON with balance validation.
Turn bank statement PDFs, CSVs, XLSX and OFX into categorised transactions plus a summary.
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
Related MCP Servers
- AlicenseAqualityBmaintenanceConvert PDFs to structured JSON. Extract invoices, bank statements, contracts, and more. Pay per call via x402 USDC.58MIT
- AlicenseAqualityCmaintenanceEnables AI agents to process and inspect PDFs by detecting document type, extracting text, and generating Markdown with layout information.71MIT
- AlicenseNot gradedqualityAmaintenanceExtracts text and tables from PDFs for AI agents via MCP, enabling structured data retrieval from invoices, reports, and statements.1MIT

bankstatementlyofficial
AlicenseNot gradedqualityAmaintenanceParse and query bank statements — turn PDF statements into structured transactions, accounts, and balances, with balance-reconciliation checks. A deterministic financial memory for AI agents, served as a hosted streamable-HTTP endpoint (API key or OAuth).1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/remotenodelabs/capyparse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server