Money Lover MCP Server
Money Lover MCP サーバー
非公式の Money Lover REST API をラップする、Model Context Protocol (MCP) サーバーの Node.js 実装です。このサーバーは、認証、ウォレット、カテゴリ、取引、イベント、負債、および静的設定をカバーする 27 個の MCP ツールを公開しており、AI アシスタントや MCP 対応クライアントが個人財務データを照会および管理できるようにします。
機能
EMAIL/PASSWORD環境変数による自動認証 — ほとんどのツールでトークンの受け渡しは不要です。ユーザー情報、ウォレット、カテゴリ、取引、イベント、負債、アイコン、プロバイダー、静的設定をカバーする 23 個の読み取りツール。
4 個の書き込みツール: 取引、ウォレット、カテゴリの作成、更新、削除。
LLM のコンテキストを管理しやすくするために、大きな応答は自動的に切り詰められます(
limitパラメータで設定可能)。Claude Code、Claude Desktop、Cursor、およびあらゆる MCP ホストと互換性のある Stdio ベースのサーバー。
~/.moneylover-mcp/配下でのメールごとのトークンキャッシュと、認証エラー時の自動更新。
Related MCP server: YNAB Assistant
前提条件
Node.js 22 以降。
Money Lover アカウントの資格情報。
インストール
npm install使用方法
Stdio 経由で MCP サーバーを起動します:
npm startプロジェクトスコープの設定 (Claude Code)
プロジェクトのルートに .mcp.json を追加します:
{
"mcpServers": {
"mcp-moneylover": {
"command": "node",
"args": ["/absolute/path/to/moneylover-mcp/src/server.js"],
"env": {
"EMAIL": "your@email.com",
"PASSWORD": "your-password"
}
}
}
}そして .claude/settings.json で有効にします:
{ "enabledMcpjsonServers": ["mcp-moneylover"] }グローバル設定 (Claude Desktop / Cursor)
{
"mcpServers": {
"mcp-moneylover": {
"command": "npx",
"args": ["@ferdhika31/moneylover-mcp@latest"],
"env": {
"EMAIL": "your@email.com",
"PASSWORD": "your-password"
}
}
}
}利用可能なツール
認証
ツール | 説明 | 引数 |
| JWT トークンを取得します。 |
|
ユーザー
ツール | 説明 | 引数 |
| セッションに関連付けられたプロファイル。 | — |
| デバイスとアクティブなセッション。 | — |
| 拡張プロファイルデータ。 | — |
ウォレット
ツール | 説明 | 引数 |
| すべてのウォレットを一覧表示します。 | — |
| ウォレットの残高概要。 |
|
| 他のユーザーと共有されているウォレット。 | — |
| 保留中の共有招待。 | — |
| 新しいウォレットを作成します。 |
|
| ウォレット名、アイコン、または通貨を更新します。 |
|
| ウォレットを完全に削除します。 |
|
カテゴリ
ツール | 説明 | 引数 |
| 特定のウォレットのカテゴリ。 |
|
| すべてのウォレットにわたる全カテゴリ。 | オプション |
| ウォレット内にカテゴリを作成します。 |
|
| カテゴリ名の変更またはアイコンの変更。 |
|
| カテゴリを削除します。 |
|
取引
ツール | 説明 | 引数 |
| 指定期間内の取引。 |
|
| 取引を作成します。 |
|
| 取引を更新します。API は編集のたびに完全なペイロードを要求します。現在の値が必要な場合は、まず取引を取得してください。 |
|
| 取引を削除します。 |
|
| オプションのフィルターを使用した自由形式の検索。 | オプション |
| 負債/ローンとしてフラグが立てられた取引。 | — |
| ID リストによる関連取引。 |
|
| カテゴリに関連する取引。 |
|
| ウォレットに関連する取引。 |
|
| 利用可能な検索フィルターオプション。 | オプション |
静的設定 & 設定
ツール | 説明 | 引数 |
| ウォレットの貯蓄目標/イベント。 |
|
| ウォレット内の未払い負債。 |
|
| アイコンパックのメタデータ。 | オプション |
| サポートされている銀行プロバイダー。 | — |
| 通貨カタログ。 | オプション |
| 米ドルベースの為替レートのスナップショット。 | — |
| その他のランタイム設定。 | — |
ツールの使用例
プロンプトの例、必須フィールドとオプションフィールド、注意点、およびすべてのツールに共通するマルチステップパターンの詳細: docs/examples.md
ライブラリの使用
import { MoneyloverClient } from './src/moneyloverClient.js';
const token = await MoneyloverClient.getToken(email, password);
const client = new MoneyloverClient(token);
const wallets = await client.getWallets();
const txns = await client.getTransactions(walletId, '2026-01-01', '2026-04-30');
await client.addTransaction({ walletId, categoryId, amount: '50000', date: '2026-04-18' });
await client.editTransaction('txn-id', { amount: '60000', note: 'updated' });
await client.deleteTransaction('txn-id');テスト
ユニットテスト
モック化されたユニットテスト — ライブ API 呼び出しは不要です:
npm test統合テスト (mcp-tester)
mcp-tester は、ReAct エージェントベースの MCP テストフレームワークです。サーバーを起動し、自然言語プロンプトに応答してツールを呼び出すように LLM を駆動し、正しい引数で正しいツールが呼び出されたことをアサートします。
インストール
pipx install --index-url https://pypi.artifacts.furycloud.io/simple/ mcp-tester設定
tests/mcp-tester/mcps.json — 資格情報を使用してローカルサーバーを指すようにします:
{
"mcp-moneylover": {
"command": "node",
"args": ["/absolute/path/to/src/server.js"],
"transport": "stdio",
"env": {
"EMAIL": "your@email.com",
"PASSWORD": "your-password"
}
}
}実行
mcp-tester run-tests \
--mcps tests/mcp-tester/mcps.json \
--model gpt-4o-mini \
--concurrent-runs 3 \
tests/mcp-tester/read-tools.yaml結果
tests/mcp-tester/read-tools.yaml には、すべての読み取りツールをカバーする 25 個の統合テストが含まれています:
total 25, success 25, failures 0テストを安定させるための重要な決定事項:
読み取りツールにトークンパラメータを含めない — オプションの
tokenフィールドを公開すると、LLM がそこにウォレット ID を注入してしまうためです。サーバーは環境変数を介して自動的に認証を行います。応答の切り詰め — 一部のエンドポイントは、共有 MoneyLover データベースから数十万件のレコードを返します。ツールは LLM のコンテキストを制御するために
limitパラメータ (デフォルト: 20–100) を受け入れます。辞書によるラップ — すべてのツール応答は JSON オブジェクトを返します(配列単体は返しません)。これにより、MCP フレームワークの検証を通過します。
書き込みツールのテスト (mcp-tester)
3 つの追加 YAML ファイルが、ウォレット、カテゴリ、取引の完全な CRUD ライフサイクルを 3 つの連続したフェーズでテストします。各フェーズで 3 つのリソースタイプすべてを同時に実行します。
ファイル | フェーズ | テスト |
| 作成 |
|
| 編集 |
|
| 削除 |
|
フェーズを順番に実行します。各フェーズは前のフェーズに依存します:
# Phase 1: Create
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-create.yaml
# Phase 2: Edit (after Phase 1 passes)
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-edit.yaml
# Phase 3: Delete (after Phase 2 passes)
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-delete.yaml3 つのフェーズすべての結果:
Phase 1 (Create): total 3, success 3, failures 0
Phase 2 (Edit): total 3, success 3, failures 0
Phase 3 (Delete): total 3, success 3, failures 0書き込みツールテストの重要な設計決定:
変更前の探索 — 編集および削除テストでは、エージェントに対して、まず読み取りツール (
get_wallets,get_categories,get_transactions) を呼び出して名前でターゲットを特定し、その後に変更ツールを呼び出すよう指示します。これは、ID が事前にわかっていない現実のエージェントの動作を反映しています。書き込みツールのアサーションに
args: !anyを使用 — フレームワークは正確な引数の一致を要求します。書き込みツールは、エージェントが任意に含める可能性のあるオプションフィールド (icon,withなど) を受け入れます。!anyは、無害な追加要素で失敗することなく、ツールが呼び出され成功したことを検証します。読み取りツールのアサーションは、スキーマに LLM が自発的に追加するようなオプションフィールドがないため、正確な引数の一致を使用できます。予測可能な識別子 — テストリソースは固定名 (
MCP-Test-Wallet,MCP-Test-Category) と固定メモ (MCP test transaction) を使用するため、エージェントは編集および削除フェーズ中にテスト実行間で状態を共有することなく、名前でそれらを特定できます。完全ペイロード編集のアサーション —
edit_transactionは完全置換操作です。テストプロンプトは、エージェントに対して、まず既存の取引を取得 (get_transactions) し、現在のすべてのフィールド値を引き継ぎ、メモのみを変更するように指示します。これにより、ツールの説明で要求されるマルチステップの推論が検証されます。
セキュリティ上の注意
実際の資格情報やトークンをコミットしないでください。
キャッシュされたトークンは
~/.moneylover-mcp/に保存され、現在のユーザーのみに制限されます。キャッシュされたすべてのセッションを取り消すには、そのディレクトリを削除してください。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the WYGIWYH expense tracking API through 75 dynamically generated MCP tools. Supports comprehensive financial operations including transaction management, account handling, recurring expenses, and investment tracking.7
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with YNAB budgets through natural language. Supports managing accounts, categories, transactions, and budget months with 21 tools for comprehensive budget operations.
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Money Lover personal finance app through unofficial REST API. Supports authentication, wallet management, transaction querying, and creating new transactions for expense tracking.6204ISC
- AlicenseAqualityDmaintenanceEnables AI assistants to manage personal finances through the Realbyte Money Manager mobile app, providing transaction management, asset tracking, credit card monitoring, and financial analytics with 18 comprehensive tools.181711MIT
Related MCP Connectors
Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.
Connect AI agents to bank accounts, transactions, balances, and investments.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/juansebashr/moneylover-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server