ameria-bank
MCP server for Ameria Bank online banking that enables AI assistants to query transaction history, account balances, and card information.
README
<p align="center"> <img src="logo.jpg" alt="Ameria Bank" width="120" /> </p>
<h1 align="center">Ameria Bank MCP Server</h1>
<p align="center"> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a> <img src="https://img.shields.io/badge/tests-104%20passed-brightgreen.svg" alt="Tests: 104 passed" /> </p>
Unofficial. This project is not affiliated with, endorsed by, or associated with Ameria Bank. It is an independent open-source tool that uses the publicly accessible MyAmeria online banking interface.
Open-source MCP server for Ameria Bank online banking. Query your transaction history, account balances, and card info — all through AI assistants like Claude Desktop.
Read-only. This server only reads data from your accounts. It cannot initiate transfers, payments, or modify anything.
Available Tools
| Tool | Description |
|---|---|
get_transactions |
Transaction history with date range and pagination |
search_transactions |
Search transactions by merchant/keyword |
get_accounts_and_cards |
All accounts, cards, balances, overdraft info |
get_available_balance |
Detailed balance breakdown for a specific card/account |
get_account_events |
Per-account transaction events with filtering |
Setup
1. Get Your Refresh Token
The server uses a refresh token to automatically obtain short-lived access tokens. You only need to set this up once — the refresh token is long-lived and the server handles token rotation automatically.
- Log in to MyAmeria
- Open browser Developer Tools (F12 or Cmd+Option+I)
- Go to the Network tab, filter by
token - Look for a request to
account.myameria.am/auth/realms/ameria/protocol/openid-connect/token - In the response, copy the
refresh_tokenvalue - Store it in a secure vault (1Password, macOS Keychain, etc.)
Note: The refresh token lasts much longer than the 15-minute access token. The server automatically refreshes the access token when it expires, so you don't need to manually update tokens for each session.
2. Configure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Option A — Vault (recommended, token auto-rotates):
{
"mcpServers": {
"ameria-bank": {
"command": "node",
"args": ["/absolute/path/to/ameria-mcp/server.js"],
"env": {
"AMERIA_VAULT": "keychain",
"AMERIA_VAULT_KEY": "ameria-mcp"
}
}
}
}
Option B — Env var (simpler, but tokens don't persist across rotations):
{
"mcpServers": {
"ameria-bank": {
"command": "node",
"args": ["/absolute/path/to/ameria-mcp/server.js"],
"env": {
"AMERIA_TOKEN": "your_refresh_token"
}
}
}
}
Restart Claude Desktop after saving.
Usage Examples
Once connected, you can ask Claude things like:
- "Show my recent transactions"
- "How much did I spend on Yandex Go this month?"
- "What are my card balances?"
- "Show me all transactions over 10,000 AMD last week"
- "What's my available balance on the Visa Signature card?"
- "List all spending on groceries this month"
Environment Variables
| Variable | Required | Description |
|---|---|---|
AMERIA_TOKEN |
Yes* | Refresh token from MyAmeria. *Not required if using a vault. |
AMERIA_CLIENT_AUTH |
Yes* | Base64-encoded client_id:client_secret for the token endpoint. *Not required if using a vault. |
AMERIA_CLIENT_ID |
Yes* | Client-Id header value for API calls. *Not required if using a vault. |
AMERIA_VAULT |
No | Vault backend: 1password or keychain |
AMERIA_VAULT_KEY |
No | Item name in the vault (e.g. ameria-mcp) |
Vault Integration (Recommended)
Store the refresh token in a vault instead of an env var. The server reads from the vault on startup and automatically saves rotated refresh tokens back — so you never have to manually update the token again.
1Password
Requires the 1Password CLI (op) with biometric unlock or service account.
- Create an item called
ameria-mcpin 1Password - Add these fields:
refresh_token— your refresh tokenclient_auth— Base64-encodedclient_id:client_secret(from the Authorization header in the token request)client_id— the Client-Id UUID (from the API request headers)
- Configure Claude Desktop:
{
"mcpServers": {
"ameria-bank": {
"command": "node",
"args": ["/absolute/path/to/ameria-mcp/server.js"],
"env": {
"AMERIA_VAULT": "1password",
"AMERIA_VAULT_KEY": "ameria-mcp"
}
}
}
}
The server reads refresh_token, client_auth, and client_id from the item via op item get and writes back rotated refresh tokens with op item edit.
macOS Keychain
- Store the credentials:
security add-generic-password -s ameria-mcp -a refresh_token -w "YOUR_REFRESH_TOKEN" -U
security add-generic-password -s ameria-mcp -a client_auth -w "YOUR_BASE64_CLIENT_AUTH" -U
security add-generic-password -s ameria-mcp -a client_id -w "YOUR_CLIENT_ID_UUID" -U
- Configure Claude Desktop:
{
"mcpServers": {
"ameria-bank": {
"command": "node",
"args": ["/absolute/path/to/ameria-mcp/server.js"],
"env": {
"AMERIA_VAULT": "keychain",
"AMERIA_VAULT_KEY": "ameria-mcp"
}
}
}
}
The server reads refresh_token, client_auth, and client_id from Keychain (service=ameria-mcp) and writes back rotated refresh tokens automatically.
No Vault (env only)
If AMERIA_VAULT is not set, the server uses AMERIA_TOKEN env var directly. Rotated tokens are kept in memory only and not persisted — you'll need to update the token manually if the refresh token expires.
Development
git clone <repo-url>
cd ameria-mcp
npm install
Run locally:
AMERIA_TOKEN=your_token node server.js
Test with MCP Inspector:
AMERIA_TOKEN=your_token npm run inspect
Running Tests
npm test
104 tests covering all helper functions: date validation, card/account masking, currency grouping, transaction formatting, and error handling.
Claude Code
claude mcp add ameria-bank -- node /absolute/path/to/ameria-mcp/server.js
Then set AMERIA_TOKEN in your environment.
Security
- Read-only — no write operations, no transfers, no payments
- Access tokens auto-refresh — the server uses a refresh token to obtain short-lived access tokens automatically
- Card numbers are masked — double-masked even though the API already partially masks them
- 30-second request timeout — prevents indefinite hangs
- No data persistence — nothing is cached or stored locally
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.