关于 Monarch Money TypeScript SDK
Monarch Money TypeScript SDK 是用于读取个人财务数据的库,并包含供 AI Agent 使用的 MCP 服务。它支持通过浏览器令牌或账号凭据认证,也可保存会话。
主要功能
- 01读取账户和持仓
- 02获取交易与预算
- 03查询现金流和定期交易
- 04使用浏览器令牌或凭据认证
- 05保存和恢复会话
适用场景
- 01查看账户余额和持仓
- 02分析指定日期范围内的交易
- 03检查预算和现金流
- 04让 AI Agent 查询财务数据
MCP 相关
内置 MCP 服务提供查询账户、持仓、历史记录、交易、分类、预算和现金流的工具。它使用 MONARCH_TOKEN 环境变量进行认证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Monarch Money TypeScript SDK
用于访问 Monarch Money 数据的 TypeScript 库。
安装
bun add monarchmoney
或
npm install monarchmoney
使用方法
使用浏览器令牌快速入门
最简单的入门方式是直接使用浏览器会话中的令牌:
import MonarchMoney from 'monarchmoney';
// You can get this token from your browser's localStorage or Cookies after logging in
// to Monarch Money on the web
const token = process.env.MONARCH_TOKEN;
// Create a client with the token
const mm = new MonarchMoney(token);
// Now you can use the API without logging in
const accounts = await mm.getAccounts();
标准身份验证
如果没有令牌,可以使用凭据登录:
import MonarchMoney, { RequireMFAError } from 'monarchmoney';
// Create a new client
const mm = new MonarchMoney();
// Login using environment variables
const email = process.env.MONARCH_USER;
const password = process.env.MONARCH_PASSWORD;
if (!email || !password) {
throw new Error('MONARCH_USER and MONARCH_PASSWORD environment variables must be set');
}
// Login
try {
await mm.login({
email,
password
});
} catch (error) {
if (error instanceof RequireMFAError) {
// Get MFA code from user
const mfaCode = process.env.MONARCH_MFA || prompt('Enter MFA code:');
await mm.authenticateWithMFA({
email,
password,
mfaCode
});
} else {
throw error;
}
}
使用已保存的会话
可以保存会话以供稍后使用:
// After logging in, save the session
mm.saveSession();
// Later, load the session
const mm = new MonarchMoney();
mm.loadSession();
// Now you can access data without logging in again
const accounts = await mm.getAccounts();
访问数据
// Get accounts
const accounts = await mm.getAccounts();
console.log(accounts);
// Get transactions for current month
const today = new Date();
const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
const lastDayOfMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0);
const transactions = await mm.getTransactions({
limit: 10,
filters: {
startDate: firstDayOfMonth.toISOString().split('T')[0],
endDate: lastDayOfMonth.toISOString().split('T')[0]
}
});
console.log(transactions);
// Get budgets
const budgets = await mm.getBudgets();
console.log(budgets);
// Get account holdings
const holdings = await mm.getAccountHoldings('account-id-here');
console.log(holdings);
运行示例
运行随附示例有两种方式:
选项 1:使用浏览器令牌(最简单)
# Get the token from your browser after logging in to Monarch Money
# In Chrome: DevTools > Application > Storage > Local Storage > monarchmoney.com > find the auth token
export MONARCH_TOKEN="your-token-from-browser"
# Run the example
bun run example
选项 2:使用用户名/密码
# Set your credentials as environment variables
export MONARCH_USER="[email protected]"
export MONARCH_PASSWORD="your-password"
# Optional: Set MFA code if required
export MONARCH_MFA="123456"
# Run the example
bun run example
可用方法
此 SDK 提供对 Monarch Money 数据的只读访问:
getAccounts()- 获取所有账户getAccountTypeOptions()- 获取所有账户类型和子类型getAccountHoldings(accountId)- 获取券商账户中的证券getAccountHistory(accountId)- 获取每日账户历史记录getInstitutions()- 获取已关联的金融机构getBudgets(startDate, endDate)- 获取预算和实际金额getSubscriptionDetails()- 获取账户订阅状态getTransactionsSummary()- 获取交易汇总数据getTransactions(options)- 获取交易数据getTransactionCategories()- 获取交易类别getTransactionCategoryGroups()- 获取交易类别组getTransactionDetails(transactionId)- 获取交易详情getTransactionSplits(transactionId)- 获取交易拆分getTransactionTags()- 获取交易标签getCashflow(options)- 获取现金流数据getCashflowSummary(options)- 获取现金流汇总getRecurringTransactions(startDate, endDate)- 获取定期交易
面向 AI Agent 的 MCP 服务
此 SDK 包含一个模型上下文协议(MCP)服务,可让 AI Agent 与 Monarch Money 交互。该 MCP 服务提供用于查询账户、交易、预算等内容的工具。
启动 MCP 服务:
# Set up authentication via environment variables
export MONARCH_TOKEN="your-token-from-browser"
# Start the MCP server
bun run mcp
MCP 服务会使用 MONARCH_TOKEN 环境变量自动进行身份验证,并提供以下工具:
check_authentication- 检查是否已通过身份验证get_accounts- 获取所有账户get_account_holdings- 获取账户持仓get_account_history- 获取账户历史记录get_transactions- 获取带筛选条件的交易get_transaction_categories- 获取交易类别get_budgets- 获取指定日期范围内的预算get_cashflow- 获取带筛选条件的现金流数据
Claude Desktop 配置
要在 Claude Desktop 中使用此工具,请将以下内容添加到 Claude Desktop 配置文件中(位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"monarchMoney": {
"command": "bun",
"args": ["run", "mcp"],
"env": {
"MONARCH_TOKEN": "your-monarch-token-here"
},
"cwd": "/path/to/your/monarch-ts"
}
}
}
将 /path/to/your/monarch-ts 替换为项目目录的实际路径,并将 your-monarch-token-here 替换为浏览器中的 Monarch Money 令牌。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。