@ktmcp-cli/nordigen
v1.0.2
Published
Production-ready CLI for Nordigen Account Information Services API - open banking, bank accounts, transactions
Maintainers
Readme
"Six months ago, everyone was talking about MCPs. And I was like, screw MCPs. Every MCP would be better as a CLI."
— Peter Steinberger, Founder of OpenClaw Watch on YouTube (~2:39:00) | Lex Fridman Podcast #491
Nordigen CLI
A production-ready command-line interface for the Nordigen Account Information Services API. Access bank account data, transactions, balances, and manage open banking connections directly from your terminal.
Disclaimer: This is an unofficial CLI tool and is not affiliated with, endorsed by, or supported by Nordigen or GoCardless.
Features
- Institutions — Browse and search banks across 31 European countries
- Agreements — Create and manage end user agreements for account access
- Requisitions — Initiate bank connections and retrieve authorization links
- Accounts — Access account metadata, balances, details, and transactions
- JWT Authentication — Secure authentication with automatic token refresh
- JSON output — All commands support
--jsonfor scripting and piping - Colorized output — Clean, readable terminal output with chalk
Why CLI > MCP
MCP servers are complex, stateful, and require a running server process. A CLI is:
- Simpler — Just a binary you call directly
- Composable — Pipe output to
jq,grep,awk, and other tools - Scriptable — Use in shell scripts, CI/CD pipelines, cron jobs
- Debuggable — See exactly what's happening with
--jsonflag - AI-friendly — AI agents can call CLIs just as easily as MCPs, with less overhead
Installation
npm install -g @ktmcp-cli/nordigencomAuthentication Setup
Nordigen uses JWT authentication. You'll need to create a Nordigen account and obtain API credentials.
1. Create a Nordigen Account
- Go to nordigen.com or ob.nordigen.com/account/login/
- Sign up for a free or paid account
- Navigate to User Secrets in the dashboard
- Copy your Secret ID and Secret Key
2. Configure the CLI
nordigencom config set --secret-id YOUR_SECRET_ID --secret-key YOUR_SECRET_KEY3. Login
nordigencom auth loginThis will obtain a JWT access token that's valid for 24 hours and automatically refresh it when needed.
4. Verify
nordigencom auth statusCommands
Configuration
# Set credentials
nordigencom config set --secret-id <id> --secret-key <key>
# Show current config
nordigencom config showAuthentication
# Login and obtain JWT token
nordigencom auth login
# Check auth status
nordigencom auth statusInstitutions
# List all institutions
nordigencom institutions list
# Filter by country
nordigencom institutions list --country GB
nordigencom institutions list --country DE
# Get institution details
nordigencom institutions get <institution-id>Agreements
End user agreements define what data you can access and for how long.
# List all agreements
nordigencom agreements list
# Get specific agreement
nordigencom agreements get <agreement-id>
# Create new agreement
nordigencom agreements create \
--institution-id <institution-id> \
--max-historical-days 90 \
--access-valid-for-days 90
# Create agreement with limited scope
nordigencom agreements create \
--institution-id <institution-id> \
--access-scope balances,transactions
# Delete agreement
nordigencom agreements delete <agreement-id>Requisitions
Requisitions are bank connection requests that users authorize.
# List all requisitions
nordigencom requisitions list
# Get specific requisition
nordigencom requisitions get <requisition-id>
# Create new requisition
nordigencom requisitions create \
--institution-id <institution-id> \
--redirect https://yourapp.com/callback \
--reference user-123 \
--agreement-id <agreement-id>
# Delete requisition
nordigencom requisitions delete <requisition-id>Accounts
Access account data after a requisition is authorized.
# Get account metadata
nordigencom accounts get <account-id>
# Get account balances
nordigencom accounts balances <account-id>
# Get account details
nordigencom accounts details <account-id>
# Get account transactions
nordigencom accounts transactions <account-id>JSON Output
All commands support --json for machine-readable output:
# Get all institutions as JSON
nordigencom institutions list --json
# Pipe to jq for filtering
nordigencom institutions list --country GB --json | jq '.[] | {id, name, bic}'
# Get transactions as JSON
nordigencom accounts transactions <account-id> --jsonExamples
Connect a bank account (full workflow)
# Step 1: Find the bank institution
nordigencom institutions list --country GB
# Note the institution_id
# Step 2: Create an agreement
nordigencom agreements create \
--institution-id SANDBOXFINANCE_SFIN0000 \
--max-historical-days 90 \
--access-valid-for-days 90
# Note the agreement_id
# Step 3: Create a requisition
nordigencom requisitions create \
--institution-id SANDBOXFINANCE_SFIN0000 \
--redirect https://myapp.com/callback \
--reference user-123 \
--agreement-id <agreement-id>
# Note the link URL and send it to the user
# Step 4: After user authorizes, get the requisition
nordigencom requisitions get <requisition-id>
# Note the account IDs in the response
# Step 5: Access account data
nordigencom accounts balances <account-id>
nordigencom accounts transactions <account-id>Monitor account transactions
# Get all transactions for an account
nordigencom accounts transactions <account-id> --json | jq '.transactions.booked[] | {date: .bookingDate, amount: .transactionAmount.amount, description: .remittanceInformationUnstructured}'Contributing
Issues and pull requests are welcome at github.com/ktmcp-cli/nordigencom.
License
MIT — see LICENSE for details.
Part of the KTMCP CLI project — replacing MCPs with simple, composable CLIs.
