Skip to content

Cookies on Accounter

With your permission, Google Analytics measures visits to our public pages and Meta measures visits for our advertising. Essential storage always stays on. Change your mind any time with “Cookie settings” in the footer. Cookie policy

Connect Accounter’s MCP server to Claude, Cursor, Codex, Gemini, Grok Bot & ChatGPT

Last reviewed: 2026-11-06

Accounter’s remote MCP server lets an AI client start a South African bank statement extraction, check its progress, and download the CSV, using the same Agent API keys and page credits as any other Accounter integration. It accepts digital and scanned statement PDFs and returns reviewed transaction rows. AI processing is done by Google and OpenRouter outside South Africa. Without an account, the preview and the PDF are deleted within 3 hours; signed-in statements are kept in your history until you delete them, and a preview you have not unlocked is kept for 30 days.

Get an API key

The MCP server uses the same Bearer keys as the Accounter Agent API. There is no separate sign-up or OAuth step for this release.

  1. 1

    Create a key

    Sign in and open Account > API Keys. Copy the raw key when it is shown; Accounter cannot show it again.
  2. 2

    Store it as ACCOUNTER_AGENT_API_KEY

    Keep the key in your operating system keychain, the client’s secret store, or an environment variable. Never commit it to a repository or paste it into chat.
  3. 3

    Confirm an active paid plan

    Uploads need an active paid extraction plan. A key can be created without one, but extraction then returns 403 NO_ACTIVE_PLAN.

The handshake URL for every client below is:

Transport endpoint

https://accounter.co.za/api/agent/v1/mcp

Send Authorization: Bearer <api_key> on every request. The server is stateless Streamable HTTP, so each request is authenticated on its own. Availability follows your Agent API access, plan and the current rollout.

Claude Code

Add Accounter as an HTTP MCP server from your shell, with the key read from the environment:

Shell

export ACCOUNTER_AGENT_API_KEY="acct_agent_live_..."
claude mcp add --transport http accounter https://accounter.co.za/api/agent/v1/mcp \
  --header "Authorization: Bearer $ACCOUNTER_AGENT_API_KEY"

Or commit a project-scoped .mcp.json that references the variable instead of the key:

.mcp.json

{
  "mcpServers": {
    "accounter": {
      "type": "http",
      "url": "https://accounter.co.za/api/agent/v1/mcp",
      "headers": { "Authorization": "Bearer ${ACCOUNTER_AGENT_API_KEY}" }
    }
  }
}

Cursor / Muse

Add the server to your Cursor MCP settings (project .cursor/mcp.json or the global equivalent):

.cursor/mcp.json

{
  "mcpServers": {
    "accounter": {
      "url": "https://accounter.co.za/api/agent/v1/mcp",
      "headers": { "Authorization": "Bearer ${env:ACCOUNTER_AGENT_API_KEY}" }
    }
  }
}

If your Cursor build does not expand ${env:...}, use the client’s secret input for the header value rather than committing a raw key.

Codex

Codex reads MCP servers from its config file. Add an HTTP server and point it at the environment variable that holds your key:

~/.codex/config.toml

[mcp_servers.accounter]
url = "https://accounter.co.za/api/agent/v1/mcp"
bearer_token_env_var = "ACCOUNTER_AGENT_API_KEY"

Set ACCOUNTER_AGENT_API_KEY in the shell or environment that launches Codex. If your Codex version uses a different key name for HTTP headers, keep the URL and send the same Bearer header.

Gemini CLI

Add Accounter to the Gemini CLI MCP settings:

~/.gemini/settings.json

{
  "mcpServers": {
    "accounter": {
      "httpUrl": "https://accounter.co.za/api/agent/v1/mcp",
      "headers": { "Authorization": "Bearer ${ACCOUNTER_AGENT_API_KEY}" }
    }
  }
}

Start a new Gemini CLI session after changing the file so the tools are discovered.

Grok Bot

In Grok Bot’s custom MCP connector settings, add this MCP server:

MCP server URL

https://accounter.co.za/api/agent/v1/mcp

Set the Authorization header to Bearer <your Agent API key> in the connector’s secret field. Do not paste the key into a Grok conversation, and revoke it in Account > API Keys if it is ever exposed.

ChatGPT

Accounter’s ChatGPT app is in private pilot testing, and directory publication is still pending. Use the Accounter for ChatGPT page for the current pilot status rather than assuming a public directory listing. ChatGPT’s support for custom remote MCP servers depends on your plan and rollout.

Tools reference

The server exposes only the customer bank statement workflow. Each extraction costs the same page credits and enforces the same plan limits as the Agent API.

Accounter MCP tools
ToolWhat it doesInputsCredits
start_bank_statement_extractionQueues a PDF and returns a jobId.pdfBase64 (required); fileName, bankSlug, pdfPassword (optional).1 credit per page
get_extraction_statusReturns progress, or the statement summary and transactions when complete.jobId.None
download_extraction_csvReturns the CSV for a completed extraction.jobId.None

Limits, errors and security

One extraction may run at a time per account. File size, page caps, credit allowances and concurrency follow your plan and the Agent API. Credits are reserved when a job is queued, so a rejected upload does not quietly spend pages.

Common MCP and Agent API errors
StatusCodeMeaning
401INVALID_AGENT_API_KEYMissing, malformed, unknown or revoked key, or an inactive user.
403NO_ACTIVE_PLANNo active paid extraction plan.
403EMAIL_NOT_VERIFIEDVerify the account email before uploading.
403FILE_SIZE_LIMITPDF is over the per-file limit.
422PDF_PASSWORD_REQUIREDEncrypted PDF; retry with pdfPassword.
422PDF_PASSWORD_INCORRECTWrong pdfPassword.
404JOB_NOT_FOUNDUnknown jobId, or the job belongs to another account.
409EXTRACTION_NOT_COMPLETECSV requested before the job finished.
429CONCURRENT_LIMITAnother extraction is already running.
429CREDIT_LIMITNot enough page credits for this statement.

Security: treat the API key like a password. Keep it in an environment variable or your client’s secret store, never in a public repository. Each MCP request is authenticated independently; an unauthenticated request receives 401 before any tool runs. Revoke a key from Account > API Keys if it leaks.

Frequently asked questions

Is the Accounter MCP server free?
The MCP server adds no separate charge. Each extraction uses the page credits on the Accounter plan behind your API key, at 1 credit per page, exactly like the Agent API. You need an active paid plan to upload statements; checking status and downloading the CSV cost no extra credits.
Does Accounter store my PDF?
AI processing is done by Google and OpenRouter outside South Africa. Without an account, the preview and the PDF are deleted within 3 hours; signed-in statements are kept in your history until you delete them, and a preview you have not unlocked is kept for 30 days.
Which South African banks are supported?
FNB, ABSA, Nedbank, Standard Bank, Capitec, Discovery Bank, Investec and TymeBank are named, plus generic South African layouts. Digital and scanned statement PDFs are accepted, and every extraction should be reviewed against the original statement.
What is the difference between the MCP server and the website converter?
The website converter is the upload-and-review screen for people. The MCP server lets an AI client such as Claude Code or Cursor call the same Agent API extraction on your behalf, using your API key and page credits, and return the job status and CSV into the conversation.
How is Accounter different from TimAI?
Accounter extracts bank statements to CSV and provides accounting and tax calculators. TimAI is a tax question-and-answer assistant. They solve different jobs.
Does the MCP server use OAuth?
Not in this release. It authenticates with the same Bearer Agent API keys you create in Accounter. Keep the key in your client’s secret store or an environment variable, never in chat or a committed file.
Can I use ChatGPT with the MCP server?
Accounter’s ChatGPT app is in private pilot testing and directory publication is still pending. The MCP server is available to clients that support remote MCP over Streamable HTTP and custom Authorization headers. For ChatGPT itself, start with the Accounter for ChatGPT page.