alexey-pelykh

qontoctl

Community alexey-pelykh
Updated

CLI and MCP server for the Qonto banking API

QontoCtl: The Complete CLI & MCP for Qonto

CICodecovnpm versionnpm downloadsGitHub Repo starsLicense

CLI and MCP server for the Qonto banking API.

This project is brought to you by Alexey Pelykh.

What It Does

QontoCtl lets AI assistants (Claude, etc.) interact with Qonto through the Model Context Protocol. It can:

  • Organizations — retrieve organization details and settings
  • Accounts — list and inspect bank accounts
  • Transactions — list, search, and filter bank transactions
  • Bank Statements — list, view, and download bank statements
  • Labels — manage transaction labels and categories
  • Memberships — view team members and permissions

Prerequisites

  • Node.js >= 24
  • A Qonto business account with API access

Installation

npm install -g qontoctl

Or run directly with npx:

npx qontoctl --help

Quick Start

# 1. Install
npm install -g qontoctl

# 2. Create a profile with your Qonto API credentials
qontoctl profile add mycompany

# 3. Test the connection
qontoctl profile test --profile mycompany

# 4. List your accounts
qontoctl account list --profile mycompany

MCP Integration

QontoCtl implements the Model Context Protocol (MCP), letting AI assistants interact with your Qonto account through natural language.

MCP Client Configuration

Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
    "mcpServers": {
        "qontoctl": {
            "command": "npx",
            "args": ["qontoctl", "mcp"]
        }
    }
}
Claude Code
claude mcp add qontoctl -- npx qontoctl mcp
Cursor

Add to .cursor/mcp.json in your project root:

{
    "mcpServers": {
        "qontoctl": {
            "command": "npx",
            "args": ["qontoctl", "mcp"]
        }
    }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
    "mcpServers": {
        "qontoctl": {
            "command": "npx",
            "args": ["qontoctl", "mcp"]
        }
    }
}

Available MCP Tools

Tool Description
org_show Show organization details including name, slug, and bank accounts
account_list List all bank accounts for the organization
account_show Show details of a specific bank account
transaction_list List transactions for a bank account with optional filters (status, date range, side, operation type)
transaction_show Show details of a specific transaction
label_list List all labels in the organization
label_show Show details of a specific label
statement_list List bank statements with optional filters (account, period)
statement_show Show details of a specific bank statement
membership_list List all memberships in the organization

Example Prompts

Once configured, you can ask your AI assistant things like:

  • "Show my Qonto account balances"
  • "List recent transactions over 1000 EUR"
  • "What were last month's card payments?"
  • "Show all team members in my organization"
  • "List bank statements for January 2026"
  • "Create a summary of this week's debits"

CLI Usage

Commands

Command Description
org show Show organization details
account list List bank accounts
account show <id> Show bank account details
transaction list List transactions (with filters)
transaction show <id> Show transaction details
statement list List bank statements
statement show <id> Show bank statement details
statement download <id> Download bank statement PDF
label list List labels
label show <id> Show label details
membership list List team memberships
profile add <name> Create a named profile
profile list List all profiles
profile show <name> Show profile details (secrets redacted)
profile remove <name> Remove a named profile
profile test Test credentials
completion bash Generate bash completions
completion zsh Generate zsh completions
completion fish Generate fish completions
mcp Start MCP server on stdio

Global Options

Option Description
-p, --profile <name> Configuration profile to use
-o, --output <format> Output format: table (default), json, yaml, csv
--page <number> Fetch a specific page of results
--per-page <number> Results per page
--no-paginate Disable auto-pagination
--verbose Enable verbose output
--debug Enable debug output (implies --verbose)

Configuration

QontoCtl uses API Key authentication.

Profile Format

All configuration files use the same YAML format:

api-key:
    organization-slug: acme-corp-4821
    secret-key: your-secret-key

Resolution Order

Without --profile:

  1. QONTOCTL_* environment variables (highest priority)
  2. .qontoctl.yaml in current directory
  3. ~/.qontoctl.yaml (home default)

With --profile acme:

  1. QONTOCTL_ACME_* environment variables (highest priority)
  2. ~/.qontoctl/acme.yaml

Environment Variables

Environment variables override file values. Without --profile:

Variable Description
QONTOCTL_ORGANIZATION_SLUG Organization slug
QONTOCTL_SECRET_KEY API secret key
QONTOCTL_ENDPOINT Custom API endpoint
QONTOCTL_SANDBOX Use sandbox (1/true or 0/false)

With --profile <name>, prefix becomes QONTOCTL_{NAME}_ (uppercased, hyphens replaced with underscores). For example, --profile acme reads QONTOCTL_ACME_ORGANIZATION_SLUG.

Debug Mode

The --verbose and --debug flags enable wire-level logging to stderr:

qontoctl --verbose transaction list   # request/response summaries
qontoctl --debug transaction list     # full headers and response bodies

Security note: --debug logs full API response bodies. Known sensitive fields(IBAN, BIC, balance) are automatically redacted, but responses may still containother financial data. Do not use --debug in shared environments or pipe debugoutput to files accessible by others.

Disclaimer

qontoctl is an independent project not affiliated with, endorsed by, or officially connected to Qonto or Qonto SAS.

Qonto is a trademark of Qonto SAS.

License

AGPL-3.0-only

What AGPL means for you

  • Using qontoctl as a CLI tool or MCP server does not make your code AGPL-licensed.Running the tool, scripting around it, or connecting it to your applications is normaluse — no license obligations arise.
  • Using @qontoctl/core as a library (importing it into your code) means your combinedwork is covered by AGPL-3.0. If you distribute that combined work, you must make itssource available under AGPL-compatible terms.
  • Modifying and distributing qontoctl itself requires you to share your changes underAGPL-3.0.
  • Commercial licensing is available if AGPL does not fit your use case — contact themaintainer.

MCP Server · Populars

MCP Server · New