金钱爱好者MCP服务器
Node.js实现了一个模型上下文协议(MCP)服务器,该服务器封装了非官方的Money Lover REST API。该服务器将身份验证和钱包管理功能作为MCP工具公开,使AI助手或兼容的MCP客户端能够登录、检查钱包、查询交易和创建新交易。
特性
- 登录工具通过公共OAuth流返回Money Lover JWT令牌。
- 用于检索用户信息、钱包、类别和交易的工具。
- 用于添加新事务的工具,反映Go引用客户端的行为。
- 基于Stdio的服务器入口点,可供MCP感知客户端使用。
- 节点友好的REST包装器,用于直接编程使用。
先决条件
- Node.js 22或更新版本。
- Money Lover帐户凭证,用于真实的API访问。
安装
npm install用法
通过stdio启动MCP服务器(适用于Claude Code、Cursor或其他MCP主机等工具):
npm startMCP客户端配置
配置符合MCP的客户端(例如,Claude桌面或Cursor)以通过以下方式调用已发布的包 npx 并通过环境变量提供凭据:
{
"mcpServers": {
"mcp-moneylover": {
"command": "npx",
"args": ["@ferdhika31/moneylover-mcp@latest"],
"env": {
"EMAIL": "alamat-email-anda@example.com",
"PASSWORD": "kata-sandi-anda"
}
}
}
}服务器使用提供的凭据自动登录,并在需要时刷新会话令牌。供应a token 工具的参数会覆盖基于环境的身份验证。
通过 login 工具或环境凭据缓存在以下每个电子邮件中 ~/.moneylover-mcp/.缓存的令牌在后续运行中重复使用,并在API报告它们已过期时自动刷新。
服务器注册了以下工具:
| 工具 | 描述 | 必需参数 |
|---|---|---|
login | 使用电子邮件和密码检索JWT令牌。 | email, password |
get_user_info | 返回与令牌关联的配置文件信息。 | token |
get_wallets | 列出经过身份验证的用户可用的钱包。 | token |
get_categories | 列出钱包的类别。 | token, walletId |
get_transactions | 检索日期范围内的事务。 | token, walletId, startDate, endDate |
add_transaction | 创建新交易。 | token, walletId, categoryId, amount, date (年-月-日);可选的 note, with |
令牌不会持久化;在调用除以下工具之外的其他工具时明确提供它们 login.
图书馆使用情况
底层REST包装器可供重用:
import { MoneyloverClient } from '@ferdhika31/moneylover-mcp';
const token = await MoneyloverClient.getToken(email, password);
const client = new MoneyloverClient(token);
const wallets = await client.getWallets();测试
运行自动化测试套件:
npm test测试依赖于模拟的获取响应,不会访问实时Money Lover服务。
安全说明
- 永远不要提交真实的凭据或令牌。
- 该项目有意避免持久化代币;MCP客户端应安全地存储机密。
- 缓存令牌存储在本地,文件权限仅限于当前用户。删除
~/.moneylover-mcp/如果您需要撤销存储的会话,请访问目录。
