money-forward-mcp-community
Click on "Install 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., "@money-forward-mcp-communityList my manual entry accounts"
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.
money-forward-mcp-community
Unofficial, community-maintained stdio MCP server and TypeScript client for Money Forward ME.
It reads Money Forward ME's authenticated web pages with a user-provided Cookie header and exposes portfolio, liabilities, linked accounts, cashflow, household-book summaries, and manual accounts as structured MCP tools.
This project is unofficial and is not affiliated with Money Forward, Inc. or Money Forward Home, Inc. Internal endpoints and HTML can change without notice. Treat Cookies and returned financial data as secrets. Never put them in GitHub issues, logs, npm packages, or public prompts. Review the latest Money Forward terms before use.
Capabilities
Portfolio total, asset-class allocation, and individual holdings
Liability total, class allocation, loans, and card balances
Flat account view across banks, securities, points, cards, and loans
Monthly cashflow rows with direction and calculation-target filters
Monthly income, expense, net balance, and category summaries
Custom/manual account and asset lookup
Browser login, trusted Cookie import, authentication checks, and rolling Cookie refresh
Data tools never modify financial records. Month-specific cashflow reads update Money Forward's selected-month session state and may persist a rotated Cookie.
Related MCP server: KSEI MCP
Quick start
Local / desktop
npx money-forward-mcp-community auth
npx money-forward-mcp-community auth --statusComplete login and multi-factor authentication in the browser. The Cookie is stored at:
~/.config/money-forward-mcp-community/config.jsonExample MCP client configuration:
{
"mcpServers": {
"money-forward-me": {
"command": "npx",
"args": ["-y", "money-forward-mcp-community"]
}
}
}Server / Hermes / CI
Do not automate email/password login on a remote server. Export a Cookie from a trusted authenticated browser and supply it through a secret manager or a protected config file.
MONEY_FORWARD_COOKIE='your Cookie header' \
npx -y money-forward-mcp-communityOr mount a config file:
{
"cookie": "your Cookie header",
"updatedAt": "2026-07-20T00:00:00.000Z"
}MONEY_FORWARD_MCP_COMMUNITY_CONFIG=/run/secrets/money-forward/config.json \
npx -y money-forward-mcp-communityTool selection for agents
Use compact summary tools before requesting large detail payloads.
User intent | Preferred tool | Notes |
Net worth or balances by bank/card/account |
| Flat signed balances; assets positive, liabilities negative |
Total assets or allocation |
| Compact; includes zero-balance asset classes |
Individual holdings or valuation details |
| Larger response; grouped by asset class |
Total debt or debt allocation |
| Positive amounts owed |
Individual loans or card balances |
| Positive amounts owed |
Monthly income, spending, net, or category totals |
| Prefer an explicit |
Individual monthly cashflow rows |
| Supports direction and calculation-target filters |
Custom/manual accounts only |
| Not linked banks, cards, or securities |
Assets inside one manual account |
| Requires |
Recommended agent workflow
If a data tool reports missing or expired authentication, call
money_forward_auth_status, thenmoney_forward_auth_check.For monthly analysis, call
money_forward_get_cashflow_summaryfirst.Call
money_forward_get_cashflow_detailsonly when individual transactions are necessary.For net worth by account, call
money_forward_get_accountand sum its signedbalancevalues.For asset composition, use Portfolio tools rather than reconstructing allocation from account rows.
Structured output
Successful tools return both human-readable JSON text and MCP structured output. Programmatic consumers should read:
response.structuredContent.result;Each tool declares an MCP outputSchema, allowing compatible agents to inspect the response contract before calling it.
Errors set isError: true and return a stable object in structuredContent.error:
{
"code": "auth_required",
"message": "Money Forward ME authentication is not configured.",
"retryable": false,
"suggestedTools": ["money_forward_auth_login", "money_forward_set_cookie"]
}Defined error categories include authentication requirements/expiry, upstream timeouts or HTTP errors, and page-format changes.
Account model
money_forward_get_account returns a flat array. There is no institution-specific nested subAccounts model.
type MoneyForwardAccountEntry = {
accountId: string | null;
institution: string;
name: string;
kind: "asset" | "liability";
category: string | null;
balance: number;
currency: "JPY";
source: "account_detail" | "portfolio" | "liability" | "account_summary";
registeredAt: string | null;
lastFetchedAt: string | null;
status: string | null;
};Example:
[
{
"institution": "Example Bank",
"name": "Savings",
"kind": "asset",
"category": null,
"balance": 1500000,
"currency": "JPY",
"source": "account_detail"
},
{
"institution": "Example Bank",
"name": "Home loan",
"kind": "liability",
"category": "Mortgage",
"balance": -12000000,
"currency": "JPY",
"source": "liability"
}
]Account sign convention
kind: "asset":balanceis zero or positivekind: "liability":balanceis zero or negativeSum all
balancevalues to obtain net value
source preserves the Money Forward page used for the row:
Source | Meaning |
| A sub-account from a linked institution's detail page |
| A Portfolio holding such as points or stored value |
| A Liability row such as a loan or card balance |
| Institution total used when no lower-level row is available |
Matching across pages is generic and based on Money Forward's institution labels. No bank or card name is hard-coded. A source label is retained so agents can explain provenance and avoid treating fallback totals as detailed holdings. Portfolio or liability rows with an institution label that does not match a registered account are retained with accountId: null rather than silently discarded.
Cashflow
Both cashflow tools accept an optional month:
{ "month": "2026-06" }Use explicit YYYY-MM whenever reproducibility matters. If omitted, Money Forward's currently displayed month is used. Selecting a month performs Money Forward's session-level month switch before reading; it does not edit transactions or household-book records.
money_forward_get_cashflow_details also accepts:
{
"month": "2026-06",
"direction": "expense",
"calculationTargetOnly": true
}direction:all,income, orexpensecalculationTargetOnly: exclude rows Money Forward does not use in household-book calculationsTransaction
amount: income positive, expense negativeSummary
incomeandexpense: both positive totalsSummary
balance: income minus expense
Portfolio and liabilities
Portfolio and Liability deliberately keep Money Forward's original concepts separate:
Portfolio summary/details describe assets and holdings.
Liability summary/details describe positive amounts owed.
Account entries normalize liabilities to negative signed balances for net-value calculations.
Do not add Portfolio and account asset totals together: they are different views of overlapping financial data.
Authentication tools
Tool | Behavior |
| Checks local configuration only; no network request |
| Verifies the configured Cookie against Money Forward |
| Opens a Playwright browser and stores Cookies locally |
| Verifies and stores a trusted Cookie header |
| Deletes the config-file Cookie; does not change environment variables |
Authentication priority:
MONEY_FORWARD_COOKIEMF_ME_COOKIE(compatibility)MONEY_FORWARD_MCP_COMMUNITY_CONFIG~/.config/money-forward-mcp-community/config.json
CLI:
money-forward-mcp-community auth
money-forward-mcp-community auth --status
money-forward-mcp-community auth --clear
money-forward-mcp-community set-cookie '<COOKIE_HEADER>'
money-forward-mcp-community serveIf Chromium is not installed:
npx -p playwright playwright install chromiumCookie refresh
Money Forward may rotate session Cookies on authenticated responses.
Config-file Cookies are updated atomically after a successful authenticated response.
The temporary file and final config use mode
0600.Environment-variable Cookies are never persisted to disk.
Cookie values, previews, and local config paths are not returned by MCP authentication tools.
A Cookie can still be invalidated server-side by logout, password changes, or security policy. Use money_forward_auth_check when data access fails.
TypeScript API
import { MoneyForwardClient, readCookie } from "money-forward-mcp-community";
const client = new MoneyForwardClient({ cookie: await readCookie() });
const accounts = await client.getAccounts();
const JuneSummary = await client.getHouseholdBookSummary("2026-06");
const manualAccounts = await client.listManualAccounts();Environment
Variable | Default | Description |
| none | Money Forward |
| none | Compatibility Cookie environment variable |
| default config path | Config JSON path |
|
| Request timeout, 100–120000 ms |
|
| Browser-login headless mode |
Security and limitations
Cookies provide access to financial data. Treat them like passwords.
The server uses unofficial HTML and internal web behavior, not a supported public API.
Money Forward can change pages, labels, or session behavior without notice.
lastFetchedAtis the display label provided by Money Forward and may omit the year.Foreign-currency balances can be returned as Money Forward's JPY valuation.
Only use accounts you own or are authorized to manage.
Review the data-retention and model-training settings of the MCP host and AI client.
Development
npm install
npm run format
npm run check
npm test
npm run lint
npm run build
npm pack --dry-runRelease
Conventional Commits on main are processed by GitHub Actions and semantic-release to create GitHub and npm releases. Configure new-village/money-forward-mcp-community and .github/workflows/release.yml as npm Trusted Publishers. NPM_TOKEN is not required.
License
MIT
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
- AlicenseBqualityBmaintenanceMCP Server for Monarch Money, utilizing an unofficial api.11310MIT
- AlicenseBqualityDmaintenanceAn unofficial MCP server for accessing KSEI (AKSes) portfolio data, including cash balances, equity holdings, mutual funds, bonds, and other investments.82MIT
- AlicenseBqualityAmaintenanceUnofficial MCP server for note.com using cookie-based authentication to manage notes and drafts via internal APIs.1913MIT
- Flicense-qualityAmaintenanceAn MCP server for Actual Budget that connects to your Actual sync server, opens one budget file, and exposes it to MCP clients over streamable HTTP or stdio.
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
MCP (Model Context Protocol) server for Appwrite
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
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/new-village/money-forward-mcp-community'
If you have feedback or need assistance with the MCP directory API, please join our Discord server