Maybe Finance MCP Server
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., "@Maybe Finance MCP Server show my checking account balance"
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.
Maybe Finance MCP Server
A Model Context Protocol (MCP) server that connects Claude Desktop to your self-hosted Maybe Finance instance, enabling natural language financial queries, transaction management, and advanced analytics.
π Features
Complete Financial Management
Account Management: Query account balances and information
Transaction CRUD: Create, read, update, and delete transactions
CSV Import: Bulk import transactions from bank statements
Smart Search: Find transactions with advanced filtering
Intelligent Categorization
Auto-Categorization: AI-powered transaction categorization with 17 built-in rules
Custom Categories: Create and manage your own categories
Special Categories:
Required Purchases (groceries, utilities, etc.)
Discretionary Spending
Subscriptions
Spending but Assets (investments, high-value items)
Advanced Analytics
Cash Flow Analysis: Track inflows/outflows with insights
Rolling Metrics: Analyze trends over custom time periods
Forecasting: Predict future cash flow with confidence intervals
Spending Breakdowns: Detailed category-based analytics
Related MCP server: YNAB MCP Server
Prerequisites
Node.js 20 or later
Maybe Finance API key (from your self-hosted instance)
Claude Desktop installed on your computer
Installation
Clone this repository:
git clone https://github.com/yourusername/maybe-finance-mcp.git
cd maybe-finance-mcpInstall dependencies:
npm installSet up environment variables:
# Create a .env file
cp .env.example .env
# Edit .env with your API credentials
API_BASE_URL=https://your-maybe-instance.com/api/v1
API_KEY=your-api-key-hereBuild the project:
npm run buildConfiguration
Claude Desktop Setup
Open Claude Desktop settings
Navigate to Developer β Model Context Protocol
Add the MCP server configuration:
{
"mcpServers": {
"maybe-finance": {
"command": "node",
"args": ["C:\\path\\to\\maybe-finance-mcp\\dist\\index.js"],
"env": {
"API_BASE_URL": "https://your-maybe-instance.com/api/v1",
"API_KEY": "your-api-key-here"
}
}
}
}API Configuration
The MCP server connects to your Maybe Finance instance via its REST API:
# Your Maybe Finance API endpoint
API_BASE_URL=https://your-maybe-instance.com/api/v1
# Your API key (get this from your Maybe Finance settings)
API_KEY=your-api-key-hereThe API key should be kept secure and never committed to version control.
π Complete Tool Reference
Account Management Tools
get_accounts
List all accounts with balances and net worth calculation.
Parameters:
includeBalance(boolean): Include current balance (default: true)groupByType(boolean): Group accounts by type (default: false)
get_account_balance
Get detailed balance information for a specific account.
Parameters:
accountId(string, required): Account ID
Transaction Management Tools
get_transactions
Retrieve transactions with powerful filtering options.
Parameters:
accountId(string): Filter by accountstartDate(string): Start date (ISO format)endDate(string): End date (ISO format)category(string): Filter by categorylimit(number): Maximum results (default: 100)offset(number): Pagination offset
search_transactions
Search transactions by text query.
Parameters:
query(string, required): Search queryaccountId(string): Limit to specific accountlimit(number): Maximum results
create_transaction
Create a new transaction.
Parameters:
accountId(string, required): Account IDamount(string, required): Amount (negative for expenses)date(string, required): Transaction datename(string, required): Transaction name/descriptioncategory(string): Category namemerchant(string): Merchant nametags(array): Transaction tagsnotes(string): Additional notes
update_transaction
Update an existing transaction.
Parameters:
transactionId(string, required): Transaction IDcategory(string): New categoryexcluded(boolean): Exclude from reportsname(string): New nameamount(string): New amountdate(string): New datemerchant(string): New merchantnotes(string): New notestags(array): New tags
categorize_transaction
Categorize a single transaction.
Parameters:
transactionId(string, required): Transaction IDcategory(string, required): Category name
bulk_categorize
Categorize multiple transactions at once.
Parameters:
transactionIds(array, required): Array of transaction IDscategory(string, required): Category name
Cash Flow Analysis Tools
get_cash_flow
Analyze cash flow for a specific period.
Parameters:
days(number): Number of days to analyze (default: 30)accountIds(array): Specific accounts to includeincludeForecasted(boolean): Include forecasted data
get_rolling_cash_flow
Get rolling cash flow metrics over time.
Parameters:
period(string): Period type (week/month/quarter)periods(number): Number of periods (default: 6)accountIds(array): Specific accounts to include
forecast_cash_flow
Predict future cash flow with confidence intervals.
Parameters:
days(number, required): Days to forecastincludeSeasonality(boolean): Consider seasonal patternsconfidenceLevel(number): Confidence level (0.8-0.99)
Category Management Tools
get_categories
List all available categories including special categories.
Parameters: None
create_category
Create a custom category.
Parameters:
name(string, required): Category nameparentCategory(string): Parent category for hierarchycolor(string): Hex color codeicon(string): Icon identifier
get_spending_breakdown
Analyze spending by category.
Parameters:
days(number): Analysis period (default: 30)includeAssets(boolean): Include asset purchases
Import/Export Tools
import_csv
Import transactions from CSV file.
Parameters:
accountId(string, required): Target account IDcsvContent(string, required): CSV contentencoding(string): base64 or utf8 (default: utf8)fieldMapping(object): Custom field mappingdateFormat(string): Date format in CSVskipDuplicates(boolean): Skip duplicate detectionautoCategarize(boolean): Auto-categorize importsdryRun(boolean): Preview without importing
analyze_csv
Analyze CSV structure before import.
Parameters:
csvContent(string, required): CSV contentencoding(string): base64 or utf8sampleRows(number): Rows to analyze (default: 5)
Automation Tools
auto_categorize_all
Automatically categorize all uncategorized transactions.
Parameters:
dryRun(boolean): Preview changes (default: true)startDate(string): Process from dateoverwriteExisting(boolean): Re-categorize existing
get_categorization_rules
View all active categorization rules.
Parameters: None
π‘ Example Usage in Claude
Basic Queries
"What's my current account balance?"
"Show me all transactions from last month"
"How much did I spend on groceries this week?"Transaction Management
"Create a transaction for $50 coffee shop expense today"
"Update the Netflix transaction to the Subscriptions category"
"Import my bank statement CSV file"Analytics & Insights
"Show me my cash flow for the last 30 days"
"What are my biggest expense categories?"
"Forecast my cash flow for the next 2 weeks"
"Give me a spending breakdown by category"Automation
"Auto-categorize all my transactions"
"Show me the categorization rules"
"Bulk categorize all coffee transactions as Dining"π§ Development
Run in Development Mode
npm run devRun Tests
npm testLint Code
npm run lintπ Security Notes
The MCP server runs locally on your machine
API credentials are stored in your local environment
All communication with Maybe Finance is over HTTPS
The API key provides scoped access to your financial data
No data is sent to third-party servers
Sensitive data is never logged or exposed
π Troubleshooting
Connection Issues
Verify your API endpoint URL is correct
Check that your API key is valid
Ensure your Maybe Finance instance is accessible
Check firewall/proxy settings
Authentication Errors
Regenerate your API key in Maybe Finance settings
Check the API key is correctly set in environment variables
Verify the API key has necessary permissions
Tool Errors
Ensure account IDs are valid UUIDs
Check date formats (ISO 8601 preferred)
Verify category names match exactly
Check transaction amounts are properly formatted
π License
MIT
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
π Acknowledgments
Built for Maybe Finance - Open source personal finance app
Powered by Model Context Protocol
Designed for use with Claude Desktop
Available Tools
18 toolsanalyze_csvB
Analyze CSV structure before import
Inputs: csvContent (required).
auto_categorize_allB
Auto-categorize all uncategorized transactions
Inputs: dryRun, endDate, accountId, startDate.
bulk_categorizeA
Categorize multiple transactions at once
Inputs: category (required), transactionIds (required).
categorize_transactionC
Quick categorization of a transaction
Inputs: category (required), transactionId (required).
create_categoryB
Create a new category
Inputs: name (required), icon, color, parentCategory.
create_transactionC
Create a new transaction
Inputs: date (required), name (required), amount (required), accountId (required), +4 more.
forecast_cash_flowC
Forecast future cash flow based on historical data
Inputs: days (required), accountId, includeRecurring.
get_account_balanceA
Get current balance for a specific account
Inputs: accountId (required).
get_accountsB
Get list of all accounts with their balances
Inputs: groupByType, includeBalance.
get_cash_flowC
Get cash flow analysis for a period
Inputs: endDate, accountId, frequency, startDate.
get_categoriesB
Get all available categories
Inputs: includeUsageStats.
get_categorization_rulesB
Get current categorization rules and patterns
Inputs: no named parameters.
get_rolling_cash_flowC
Get rolling cash flow analysis
Inputs: period, accountId.
get_spending_breakdownC
Get spending breakdown by category for a time period
Inputs: endDate, groupBy, accountId, startDate, +2 more.
get_transactionsC
Get transactions with various filters
Inputs: tags, limit, offset, endDate, +8 more.
import_csvB
Import transactions from CSV file
Inputs: accountId (required), csvContent (required), dateColumn, amountColumn, +3 more.
search_transactionsC
Search transactions by text query
Inputs: query (required), tags, limit, offset, +3 more.
update_transactionC
Update an existing transaction
Inputs: transactionId (required), tags, notes, category, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 18 tools
Most tools target distinct resources and actions, but get_transactions and search_transactions overlap in purpose, potentially causing misselection. Other pairs like get_cash_flow and get_rolling_cash_flow are distinct enough in scope.
Tool names mostly follow a verb_noun snake_case pattern (e.g., get_accounts, create_transaction). Minor deviations like bulk_categorize and auto_categorize_all break the strict pattern but remain readable and predictable.
With 18 tools, the server is slightly above the ideal 3-15 range but still within a reasonable scope for a finance manager. Each tool addresses a specific need, though the count feels a bit heavy.
The server covers transaction management, categorization, cash flow, and CSV import well, but lacks account CRUD (create/update/delete) and category update/delete operations. These gaps are notable for a finance domain but not severe enough to break core workflows.
Maintenance
Related MCP Connectors
Ask your AI about your own accounts, debts, budgets and goals. OAuth sign-in, read-only by default.
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Personal finance for AI agents β onboard, import statements, categorize & budget over MCP.
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying personal finance data including accounts, transactions, spending, holdings, net worth, and budgets from your self-hosted OpenCoffer instance. Supports natural language queries through any MCP-compatible client.19MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to interact with YNAB budgets, performing read-only queries by default and optional write operations like creating transactions and managing categories through natural language.45527 npm46MIT
- FlicenseNot gradedqualityBmaintenanceEnables personal finance management through natural language, including tracking income/expenses, categories, loans, subscriptions, budgets, and AI-powered insights, all backed by a local SQLite database.1-
- AlicenseAqualityCmaintenanceEnables AI assistants and MCP clients to access and manage LunchMoney personal finance data, including transactions, budgets, accounts, categories, tags, recurring items, and crypto holdings through natural language.59939 npmMIT