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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。