Up Banking MCP Server
This server provides secure, read-only access to Up Banking data through the Model Context Protocol, enabling you to query financial information directly through conversation with Claude.
Core Capabilities:
Test API Connection - Verify authentication and connectivity using the
up_pingtoolAccount Management - List all accounts with filtering by type (SAVER, TRANSACTIONAL, HOME_LOAN) or ownership (INDIVIDUAL, JOINT), view account details, and check balances
Transaction Queries - Access transaction history with comprehensive filtering options:
Filter by account ID, status (HELD/SETTLED), date range (RFC 3339 format), spending category, or custom tags
Get detailed information for individual transactions including amounts, descriptions, and categorization
Control pagination with configurable page sizes (up to 100 records)
Category Information - Browse Up's spending category hierarchy, explore parent-child relationships, and retrieve category details for use in transaction filtering
Real-time Financial Insights - Ask Claude questions about balances, spending patterns, and transaction history to gain actionable insights from your banking data
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Up Banking MCP Server show me my recent transactions from last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Up Banking MCP Server
A Model Context Protocol (MCP) server that provides integration with the Up Banking API. This server allows Claude to interact with your Up banking data, including accounts, transactions, and categories.
Features
Account Management: List all accounts, get account details and balances
Transaction History: Query transactions with flexible filtering (date range, status, category, tags)
Category Information: Access Up's spending categories for better transaction insights
Type-Safe: Built with TypeScript for reliability and developer experience
Secure: Uses Up's personal access token for authentication
Related MCP server: Plaid Transactions MCP Server
Prerequisites
Node.js 18 or higher
An Up bank account
Up personal access token
Installation
Clone or download this repository:
cd up-mcp-serverInstall dependencies:
npm installBuild the server:
npm run buildGetting Your Up API Token
Open the Up app on your phone
Swipe right and select "Data sharing"
Tap on 'Personal Access Token'
Select 'Generate a token'
Choose how long you want the token to last
Follow the prompts and copy your token securely
Important: Keep your token secure! Never share it or commit it to version control.
Configuration
Claude Desktop Configuration
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"up-banking": {
"command": "node",
"args": ["/absolute/path/to/up-mcp-server/build/index.js"],
"env": {
"UP_API_TOKEN": "your_up_api_token_here"
}
}
}
}Replace /absolute/path/to/up-mcp-server with the actual path to this directory, and replace your_up_api_token_here with your Up personal access token.
Alternative: Using npx
You can also run the server directly with npx:
{
"mcpServers": {
"up-banking": {
"command": "npx",
"args": ["-y", "/absolute/path/to/up-mcp-server"],
"env": {
"UP_API_TOKEN": "your_up_api_token_here"
}
}
}
}Available Tools
up_ping
Test the API connection and verify authentication is working.
up_list_accounts
List all accounts with optional filtering by account type or ownership.
Parameters:
accountType(optional): Filter by "SAVER", "TRANSACTIONAL", or "HOME_LOAN"ownershipType(optional): Filter by "INDIVIDUAL" or "JOINT"
up_get_account
Get detailed information about a specific account.
Parameters:
accountId(required): The account ID
up_list_transactions
List transactions with comprehensive filtering options.
Parameters:
accountId(optional): Filter to a specific accountstatus(optional): "HELD" (pending) or "SETTLED"since(optional): Start date in RFC 3339 format (e.g., "2024-01-01T00:00:00+10:00")until(optional): End date in RFC 3339 formatcategory(optional): Category ID (e.g., "restaurants-and-cafes")tag(optional): Transaction tagpageSize(optional): Number of results (1-100)
up_get_transaction
Get detailed information about a specific transaction.
Parameters:
transactionId(required): The transaction ID
up_list_categories
List all spending categories in Up.
Parameters:
parentId(optional): Filter to children of a specific parent category
up_get_category
Get details about a specific category.
Parameters:
categoryId(required): The category ID (e.g., "restaurants-and-cafes")
Usage Examples
Once configured, you can ask Claude questions like:
"What's my current account balance?"
"Show me all transactions from last month"
"How much did I spend on restaurants this week?"
"List all my saver accounts"
"What are the pending transactions in my spending account?"
"Show me all transactions tagged with 'vacation'"
Development
Watch Mode
For development with automatic recompilation:
npm run devTesting the Connection
After configuration, restart Claude Desktop and try:
Can you ping the Up API to verify the connection?Troubleshooting
"UP_API_TOKEN environment variable is required"
Make sure you've added your Up API token to the env section of your Claude Desktop config.
"Up API error: 401"
Your API token is invalid or expired. Generate a new token in the Up app.
Server not appearing in Claude
Check that the path to
build/index.jsis absolute and correctVerify the JSON syntax in your config file is valid
Restart Claude Desktop completely
Check Claude's logs for error messages
Security Notes
Your Up API token grants full read access to your banking data
Never commit your token to version control
Use environment variables or secure configuration management
Token access can be revoked anytime in the Up app
Consider setting an expiration date for your tokens
API Rate Limits
The Up API has rate limits. The server will return error messages if limits are exceeded. Use pagination and filtering to minimize API calls.
Contributing
This is a basic implementation covering the main read operations. Potential enhancements:
Add webhook support for real-time transaction notifications
Implement transaction categorization updates
Add attachment/receipt support
Support for pagination with cursor-based browsing
License
MIT
Related Links
Available Tools
7 toolsup_get_accountB
Get details for a specific account by ID, including current balance and account information.
Inputs: accountId (required).
up_get_categoryB
Get details about a specific category by ID, including its name and parent/child relationships.
Inputs: categoryId (required).
up_get_transactionB
Get detailed information about a specific transaction by ID, including amount, description, category, and related account.
Inputs: transactionId (required).
up_list_accountsB
List all accounts for the authenticated user. Returns account balances, types (SAVER, TRANSACTIONAL, HOME_LOAN), and ownership information.
Inputs: accountType, ownershipType.
up_list_categoriesA
List all spending categories in Up. Categories have a parent-child relationship. Use this to understand category IDs for filtering transactions.
Inputs: parentId.
up_list_transactionsA
List transactions across all accounts or for a specific account. Supports filtering by status, date range, category, and tags. Returns paginated results ordered newest first.
Inputs: accountId, status, since, until, +3 more.
up_pingA
Test the Up API connection and verify authentication is working
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Every tool has a clearly distinct purpose with no ambiguity. The tools are organized around three main resources (accounts, categories, transactions) with specific get and list operations for each, plus a separate ping utility. The descriptions clearly differentiate between retrieving single items by ID versus listing multiple items with filtering options.
All tools follow a perfectly consistent 'up_verb_noun' pattern throughout. The verb-noun combinations are logical and predictable (get_account, list_accounts, get_category, list_categories, etc.), with consistent snake_case formatting. The ping tool also fits this pattern as a special case.
Seven tools is an ideal number for this banking API server. It provides complete coverage for the three core resource types (accounts, categories, transactions) with both get and list operations, plus a connection test utility. Each tool earns its place without being overwhelming or insufficient.
The toolset provides excellent read-only coverage for the banking domain with get and list operations for all major resources. The only minor gap is the absence of write operations (create/update/delete transactions or accounts), but this is likely intentional for a banking API focused on data retrieval rather than modification. The surface covers all essential querying workflows.
Related MCP Connectors
Chat with your bank data: balances, transactions, budgets, bills. Reads only, never moves money.
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Connect AI agents to bank accounts, transactions, balances, and investments.
Work with transactions, budgets, forecasts and insights from the PocketSmith personal finance tool.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP wrapper for Up Bank's API that allows Claude and other MCP-enabled clients to manage accounts, transactions, categories, tags, and webhooks from Up Bank.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables secure interaction with Plaid's Transactions API to sync, search, and analyze financial transactions from linked bank accounts using natural language queries.-
- AlicenseNot gradedqualityDmaintenanceEnables querying Up Bank account transactions and spending habits through natural language, using the Up Bank API in read-only mode.11 npm8Do What The F*ck You Want To Public
- -licenseNot gradedqualityNot gradedmaintenanceEnables interaction with Monzo bank accounts for balance checking, transaction management, pot operations, and reconciliation through natural language.-