bankstatemently
Official# bankstatemently/plugins
[](https://glama.ai/mcp/servers/bankstatemently/plugins)
Marketplace plugins for [Bankstatemently](https://bankstatemently.com) — convert bank statements.
## Install via Claude Code marketplace
```bash
/plugin marketplace add bankstatemently/plugins
/plugin install bankstatemently@bankstatemently
```
After installing, enable the plugin. The first tool call opens your browser to sign in; the plugin asks for no settings.
For a headless setup (CI, scripts), skip the plugin and add the server directly with an API key — see below. Get a key at [bankstatemently.com/developer](https://bankstatemently.com/developer).
## Plugins
- **[bankstatemently](./bankstatemently/)** — MCP server for converting bank statements.
Convert PDFs, list statements, check credits, run benchmark evaluations.
## Claude Code direct install (no plugin)
Add the hosted MCP server directly and sign in with your browser:
```bash
claude mcp add --transport http bankstatemently https://api.bankstatemently.com/mcp
```
For a headless setup, pass an API key in the `X-API-Key` header instead (the server rejects `Authorization: Bearer`):
```bash
claude mcp add --transport http bankstatemently https://api.bankstatemently.com/mcp \
--header "X-API-Key: <your-bsk_live_key>"
```
## Codex
Codex has native OAuth support. This one command detects our server's discovery metadata and opens your browser to sign in — no key is ever stored:
```bash
codex mcp add bankstatemently --url https://api.bankstatemently.com/mcp
```
For headless or CI setups where a browser sign-in isn't possible, use an API key via the [mcp-remote](https://github.com/geelen/mcp-remote) bridge instead. Export the key in the shell that launches Codex, before it starts:
```bash
export BANKSTATEMENTLY_API_KEY=bsk_live_...
codex mcp add bankstatemently -- npx -y mcp-remote@latest https://api.bankstatemently.com/mcp --header "X-API-Key: ${BANKSTATEMENTLY_API_KEY}"
```
Codex doesn't yet surface plugin-declared MCP servers into sessions, so the plugin install above (and its bundled skill) isn't available in Codex today — use the commands above instead.
**Credential managers & sandboxed clients:** never fetch a secret from Keychain, 1Password, or another credential manager inside the MCP server command itself — Codex runs that command sandboxed at tool discovery, so a credential-manager lookup dies silently and the server's tools never appear. Export the key in the shell that launches Codex instead. Also note that `mcp-remote` logs its resolved header values to stderr, so a wrapper-resolved key can end up in your client logs.
## Run over stdio
For stdio-only clients (Claude Desktop's config file, Cursor, headless
setups) or a directory scanner that launches the server locally, clone the
public repo and run the self-contained `mcp-stdio` server directly — no
Docker, no bridge process:
```bash
git clone https://github.com/bankstatemently/plugins.git
cd plugins/mcp-stdio
npm install --omit=dev
BANKSTATEMENTLY_API_KEY=bsk_live_... node dist/stdio.js
```
`BANKSTATEMENTLY_API_KEY` is optional at startup: `initialize`/`tools/list`
answer with no network call and no key either way, so an uncredentialed
directory probe still sees the full tool list. A `tools/call` with no key
returns the same auth-required result the hosted server returns. Export the
key in the shell or runtime environment that launches the process — never
resolve it inside the MCP command (a credential-manager lookup inside a
sandboxed client's command dies silently, same caveat as the Codex section
above).
TDQS
Scored across 17 tools
The analytics family (aggregate, group_by, top_n, compare, time_series) has genuine conceptual overlap, but each tool's description carves out a distinct operation (single metric vs. grouped dimensions vs. ranking vs. two-group comparison vs. time buckets). The transfer/transaction tools (list_transfers, list_transactions, adjudicate_transfers) are carefully distinguished, and get_credits explicitly disclaims transaction duties. A few analytics tools could still be misselected without reading carefully, but boundaries are mostly clear.
Naming is uniformly lower_snake_case and mostly verb_noun (list_statements, get_statement, convert_statement, categorize_statement, rate_statement, dismiss_statement, request_upload, evaluate_benchmark). The analytics tools break the pattern as bare verbs/nouns (aggregate, group_by, top_n, compare, time_series), which is a minor stylistic deviation but still readable and consistent within its cluster.
At 17 tools this is slightly above the ideal 3-15 band, but the domain is genuinely broad (upload, conversion, retrieval, categorization, rating, benchmarking, transfer reconciliation, analytics, quota). Nearly every tool maps to a distinct user workflow, and the five-metric analytics set is the only area that could conceivably be consolidated. Still reasonable rather than bloated.
The surface covers the full lifecycle: upload, convert, fetch, list, soft-dismiss, categorize, rate, benchmark-evaluate, plus transaction querying, transfer reconciliation, analytics, and quota checks. The main minor gap is the absence of a dedicated tool to enumerate accounts/products even though analytics tools accept an accounts/products scope, which an agent must discover indirectly via list_statements or get_statement.