Maybe Finance MCP Server
Enables natural language financial management for self-hosted Maybe Finance instances, including account queries, transaction CRUD, CSV import, intelligent categorization, cash flow analysis, and forecasting.
README
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
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-mcp
- Install dependencies:
npm install
- Set 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-here
- Build the project:
npm run build
Configuration
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-here
The 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 dev
Run Tests
npm test
Lint 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
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。