MCP.so
Sign In

qontoctl

@alexey-pelykh

About qontoctl

CLI and MCP server for the Qonto banking API

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "qontoctl": {
      "command": "npx",
      "args": [
        "-y",
        "qontoctl",
        "mcp"
      ],
      "env": {
        "QONTOCTL_ORGANIZATION_SLUG": "<your-org-slug>",
        "QONTOCTL_SECRET_KEY": "<your-secret-key>"
      }
    }
  }
}

Tools

128

Upload an attachment file (PDF, JPEG, PNG) from the filesystem

Show details of a specific attachment

List attachments for a transaction

Attach a file to a transaction from the filesystem

Remove attachment(s) from a transaction. If attachment_id is provided, removes that specific attachment. Otherwise removes all attachments.

List all bank accounts for the organization

Show details of a specific bank account

Download IBAN certificate PDF for a bank account

Create a new bank account. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update an existing bank account. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Close a bank account. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

List SEPA beneficiaries in the organization

Show details of a specific SEPA beneficiary

Create a new SEPA beneficiary. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update an existing SEPA beneficiary. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Trust one or more SEPA beneficiaries (requires Embed-partner-only `beneficiary.trust` OAuth scope; standard third-party apps will receive 403). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Untrust one or more SEPA beneficiaries (requires Embed-partner-only `beneficiary.trust` OAuth scope; standard third-party apps will receive 403). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

List cards in the organization

Show details of a specific card

Create a new card. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Bulk create cards (up to 50). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Lock a card. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Unlock a card. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Report a physical card as lost (irreversible). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Report a physical card as stolen (irreversible). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Discard a card (irreversible). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update a card's spending limits. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update a card's nickname. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update a card's options (ATM, NFC, online, foreign). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update a card's restrictions (active days, merchant categories). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Get secure iframe URL for viewing card details (PAN, CVV, expiry)

List available card appearances (designs by type and level)

Create a bulk SEPA transfer from a debit account. Each item provides either beneficiary_id (existing) or beneficiary (inline name+iban). client_transfer_id is auto-generated when omitted; vop_proof_token is auto-resolved via bulk_verify_payee when omitted (and sca_session_token is not provided). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

List bulk transfers

Show details of a specific bulk transfer

List clients with optional pagination

Show details of a specific client

Create a new client

Update an existing client

Delete a client

List client invoices with optional filters

Show details of a specific client invoice

Create a draft client invoice with client and line items

Update a draft client invoice

Delete a draft client invoice

Finalize a client invoice (assign number, transition from draft to unpaid)

Send a finalized client invoice to the client via email. Requires `send_to` (one or more recipient emails) and `email_title`; optional `email_body` and `copy_to_self` (default `true`).

Mark a client invoice as paid

Unmark a client invoice paid status (transition back to unpaid)

Cancel a finalized client invoice

Upload a file to a client invoice from the filesystem

Show upload details for a client invoice

List credit notes in the organization

Show details of a specific credit note

Run a read-only healthcheck against the configured qontoctl profile. Returns a DiagnosticReport with per-check status (ok/warn/fail/skip), detail, and suggested actions. Use this first when something doesn't work.

Retrieve e-invoicing settings for the organization

Show insurance contract details

Create a new insurance contract

Update an insurance contract

Upload a document to an insurance contract from the filesystem

Remove a document from an insurance contract

Check eligibility for international transfers

List supported currencies for international transfers

Create an international transfer quote with exchange rate

List international beneficiaries in the organization

Get required fields for an international beneficiary corridor

Create a new international beneficiary. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Update an international beneficiary. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Remove an international beneficiary. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Get required fields for an international transfer

Create an international transfer. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Create an internal transfer between two bank accounts within the same organization. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

List all labels in the organization

Show details of a specific label

List all memberships in the organization

Show the current authenticated user's membership

Invite a new member to the organization

Show organization details including name, slug, and bank accounts

List payment links

Show details of a specific payment link

Create a new payment link (basket or invoice type)

Deactivate a payment link

List payments for a specific payment link

List available payment methods for payment links

Establish payment link connection with provider

Get payment link connection status

List products from the authenticated organization's catalogue

List quotes with optional filters

Show details of a specific quote

Create a new quote with client and line items

Update an existing quote

Delete a quote

Send a quote to the client via email. Requires `send_to` (one or more recipient emails) and `email_title`; `copy_to_self` BCCs the authenticated user (defaults to true server-side).

Create a recurring transfer. vop_proof_token is auto-resolved via verify_payee when omitted (and sca_session_token is not provided). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Cancel a recurring transfer. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

List recurring transfers

Show details of a specific recurring transfer

List all requests in the organization

Approve a pending request. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Decline a pending request. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Create a flash card request. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Create a virtual card request. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Create a multi-transfer request (1-400 transfers). SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Show the status of a Strong Customer Authentication (SCA) session. Use this to poll an SCA session token returned by a previous tool call that triggered an SCA challenge. Returns one of: `waiting` (the user has not yet responded), `allow` (approved — retry the original request), or `deny` (rejected). Tokens expire after 15 minutes.

Simulate a user SCA decision in the Qonto sandbox environment (testing only). Use after triggering an SCA-required operation in sandbox to bypass the mobile-app approval flow. Returns an error when the server is not configured for sandbox mode (no `oauth.staging-token` / `QONTOCTL_STAGING_TOKEN`).

List bank statements with optional filters

Show details of a specific bank statement

List supplier invoices with optional filters

Show details of a specific supplier invoice

Create supplier invoices by uploading files from the filesystem

List all teams in the organization

Create a new team in the organization

List Qonto Terminals (POS) linked to the authenticated organization

Initiate a payment on a Qonto Terminal (POS). Returns 202 Accepted — the terminal must still physically accept the card before the payment settles. An offline terminal may hold the request open for up to ~120 seconds.

List transactions for a bank account with optional filters

Show details of a specific transaction

List SEPA transfers with optional filters

Show details of a specific SEPA transfer

Create a SEPA transfer. Provide either beneficiary_id (existing beneficiary) or beneficiary (inline beneficiary object with name and iban), but not both. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Cancel a pending SEPA transfer. SCA: this operation may require Strong Customer Authentication; the tool polls inline by default (wait=30s) and falls back to a structured pending response so the caller can continue via sca_session_show + sca_session_token.

Download SEPA transfer proof PDF (returns base64-encoded content)

Verify a payee (Verification of Payee / VoP)

Bulk verify payees (Verification of Payee / VoP)

List webhook subscriptions

Show details of a specific webhook subscription

Create a new webhook subscription

Update an existing webhook subscription

Delete a webhook subscription

Overview

What is qontoctl?

qontoctl is a CLI and MCP (Model Context Protocol) server for the Qonto banking API. It lets AI assistants (Claude, etc.) interact with Qonto through natural language, and also works as a standalone command-line tool.

How to use qontoctl?

Install via npm (npm install -g qontoctl), run directly with npx qontoctl, or install via Homebrew. Create a profile with your Qonto API credentials using qontoctl profile add mycompany, then test with qontoctl profile test. Use commands like qontoctl account list. For MCP integration, configure the MCP client (Claude Desktop, Claude Code, Cursor, Windsurf) to run npx qontoctl mcp. To use a non-default config file, set the QONTOCTL_CONFIG_FILE environment variable.

Key features of qontoctl

  • Full Qonto banking API via CLI and MCP
  • Manage accounts, transactions, and statements
  • Handle SEPA beneficiaries and transfers
  • Invoicing: clients, invoices, quotes, credit notes
  • Invite members and manage organization settings
  • Upload and view attachments for transactions

Use cases of qontoctl

  • Use an AI assistant to retrieve organization details or list bank accounts.
  • Automate SEPA transfer creation and verification.
  • Manage client invoices from creation to finalization.
  • Handle bulk transfers and recurring transfers via natural language.
  • Invite new team members to the Qonto organization.

FAQ from qontoctl

What are the prerequisites for qontoctl?

Node.js >= 24 and a Qonto business account with API access.

How do I set up API credentials?

Use the qontoctl profile add command with your Qonto API credentials, then test with qontoctl profile test.

How do I configure MCP for different clients?

See the MCP Integration section in the README for configuration examples for Claude Desktop, Claude Code, Cursor, and Windsurf.

Can I use a non-default config file for MCP?

Yes, set the QONTOCTL_CONFIG_FILE environment variable in the MCP host's env block to point to the desired config file path.

Does qontoctl work without an AI assistant?

Yes, qontoctl is a fully functional CLI that can be used standalone for all supported operations.

Frequently asked questions

What are the prerequisites for qontoctl?

Node.js >= 24 and a Qonto business account with API access.

How do I set up API credentials?

Use the `qontoctl profile add` command with your Qonto API credentials, then test with `qontoctl profile test`.

How do I configure MCP for different clients?

See the MCP Integration section in the README for configuration examples for Claude Desktop, Claude Code, Cursor, and Windsurf.

Can I use a non-default config file for MCP?

Yes, set the `QONTOCTL_CONFIG_FILE` environment variable in the MCP host's env block to point to the desired config file path.

Does qontoctl work without an AI assistant?

Yes, qontoctl is a fully functional CLI that can be used standalone for all supported operations.

Comments

More Developer Tools MCP servers