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
Available Tools
14 toolsmoney_forward_auth_checkCheck Money Forward ME authenticationARead-only
Contacts Money Forward and verifies that the configured cookie can access an authenticated page. Call this when a data tool reports an authentication error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's role is reduced. It adds that the tool contacts Money Forward to verify cookie access, which aligns with the annotations but does not elaborate on potential side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first sentence explains the action, and the second provides usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the presence of an output schema, the description is sufficiently complete. It covers the tool's purpose and when to use it, which is adequate for an auth check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the description need not add parameter details. Following the baseline rule for 0 params, a score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool contacts Money Forward and verifies cookie access to an authenticated page. It uses specific verbs ('contacts', 'verifies') and distinguishes from siblings by specifying the trigger scenario (when a data tool reports an authentication error).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this when a data tool reports an authentication error', providing a clear usage condition. However, it does not mention when not to use or explicitly name alternative tools like 'money_forward_auth_status'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_auth_loginLog in to Money Forward ME with a browserA
Opens a Playwright browser login flow and stores Money Forward cookies locally. Use set_cookie for remote servers.
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Defaults to false; headed mode is recommended for MFA |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: opens a browser (consistent with openWorldHint) and stores cookies (consistent with non-read-only annotation). Does not note any destructive actions, which is acceptable for a login tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff: first explains action, second gives alternative usage. Front-loaded with core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a single-parameter tool with an output schema (not shown but indicated). Describes the login flow and cookie storage. Could mention credentials handling, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the only parameter (headless) with 100% description coverage. The tool description adds no extra parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it opens a Playwright browser login flow and stores cookies locally. It distinguishes from sibling tools like set_cookie by mentioning remote server context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use set_cookie instead (for remote servers). Also implies headed mode for MFA via the headless parameter description. Could provide more guidance on when to use auth_check vs login, but overall clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_auth_statusGet Money Forward ME authentication statusARead-only
Checks local configuration only; it does not contact Money Forward. Use auth_check to verify that the cookie still works.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it does not contact Money Forward, which goes beyond the readOnlyHint annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, output schema, and annotations, the description provides all necessary context. It explains the limitation and suggests an alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline score is 4 as per rules. Description adds no parameter info, which is unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it checks local configuration only and does not contact Money Forward. Distinguishes itself from the sibling auth_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use auth_check instead, providing clear guidance. However, 'when to use' this tool is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_clear_cookieClear stored Money Forward ME cookieADestructive
Deletes the config-file Cookie and may disable subsequent data tools. Environment-variable Cookies are not modified.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds specificity: it deletes only the config-file Cookie (not environment-variable cookies) and warns of disabling subsequent data tools. This provides valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The primary action and key side effect are front-loaded, making the description efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, presence of an output schema (context signals), and clear annotations, the description is mostly complete. It could mention the return value, but the output schema handles that. Overall adequate for a side-effect tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description does not need to add parameter meaning; a baseline of 4 is appropriate as no additional parameter info is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes the config-file Cookie and may disable subsequent data tools, distinguishing it from sibling tools like money_forward_set_cookie and auth tools. The verb 'deletes' and specific resource 'config-file Cookie' provide precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to clear cookie) and warns that it may disable subsequent data tools. It does not explicitly state when not to use or name alternatives, but the warning about impact on other tools serves as effective guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_accountGet Money Forward ME accountsARead-only
Returns a flat account-entry list across bank accounts, securities, points, cards, and loans. Assets have positive balance; liabilities have negative balance, so summing balance yields net value. source explains where each row came from.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and openWorldHint. The description adds value by explaining the sign convention for net value and the source property, giving behavioral context beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences. The first sentence front-loads the main purpose, and the second adds essential behavioral detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the presence of an output schema (not shown but indicated), the description explains the return structure (flat list, sign convention, source column) sufficiently. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter info, and it adds no param details, which is acceptable. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a flat account-entry list across multiple account types, specifying the verb 'returns' and the resource 'account-entry list'. It distinguishes from siblings by emphasizing the flat list nature and including sign convention (assets positive, liabilities negative).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining a combined view of all account types but does not explicitly state when to use this tool over siblings like portfolio_summary or liability_summary. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_cashflow_detailsGet Money Forward ME cashflow detailsAIdempotent
Returns individual cashflow rows. Prefer cashflow_summary for totals and category questions. Pass an explicit month for reproducible results; filters reduce response size.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Calendar month in YYYY-MM format, for example 2026-06 | |
| direction | No | Filter by cashflow direction | all |
| calculationTargetOnly | No | Return only rows included in Money Forward calculations |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a read-only operation ('returns'), but annotations set readOnlyHint: false, indicating potential side effects. This contradiction misleads the agent about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. First sentence delivers core purpose; second sentence provides usage tips. Highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters, an output schema, and siblings. The description covers usage but fails to address the behavioral contradiction, leaving the agent uncertain about side effects. Missing essential behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining that month ensures reproducibility and filters reduce response size, going beyond the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Returns individual cashflow rows,' using a specific verb and resource. It distinguishes from the sibling tool 'cashflow_summary' by noting that the summary is for totals and category questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance: 'Prefer cashflow_summary for totals and category questions' gives an alternative, and 'Pass an explicit month for reproducible results; filters reduce response size' advises on parameter usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_cashflow_summaryGet Money Forward ME cashflow summaryAIdempotent
Returns monthly income, expense, net balance, and category totals. Use this first for monthly analysis; use cashflow_details only when individual rows are needed. Pass month as YYYY-MM for reproducible results.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Calendar month in YYYY-MM format, for example 2026-06 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and openWorldHint=true. Description adds that month should be passed as YYYY-MM for reproducible results, which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns, no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present and 100% schema coverage, the description adequately covers the purpose, usage, and parameter format. No gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'month', with pattern and example. Description reinforces the format but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns monthly income, expense, net balance, and category totals, which is a specific verb and resource. It also distinguishes itself from the sibling cashflow_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use this first for monthly analysis; use cashflow_details only when individual rows are needed.' Provides clear context on when to use this tool vs. its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_liability_detailsGet Money Forward ME liability detailsARead-only
Returns individual liabilities with positive amounts owed, category, description, and institution. For a signed flat account view, use money_forward_get_account instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true. Description adds that only positive amounts are returned, which is a behavioral filter not captured by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states core function; second provides sibling guidance. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, annotations, and output schema, the description is fully sufficient. It specifies the output content and gives an alternative usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so schema coverage is 100%. Baseline is 3, but description adds no parameter info (none needed). However, describing output fields is helpful despite output schema existing, so slight bonus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns individual liabilities with specific fields (positive amounts owed, category, description, institution). It distinguishes the tool from its sibling money_forward_get_account by noting that the sibling provides a signed flat account view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (for individual liabilities with positive amounts) and when to use an alternative (money_forward_get_account for signed flat account view). Provides direct sibling reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_liability_summaryGet Money Forward ME liability summaryARead-only
Returns total liabilities and allocation by liability class. Values are positive amounts owed. Use liability_details for individual loans or card balances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds that values are positive amounts owed, which is marginal. Lacks additional behavioral traits like auth needs or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, no fluff. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, annotations cover safety and open-world nature. Description states summary scope, making it complete for a simple end point.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4. Schema coverage 100% so description need not add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns total liabilities and allocation by liability class, with specific verb 'Returns'. Distinguishes from sibling tool via mention of 'liability_details'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when not to use this tool: 'Use liability_details for individual loans or card balances.' Provides clear context for alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_portfolio_detailsGet Money Forward ME portfolio detailsARead-only
Returns individual holdings grouped by asset class, with values, institutions, and source-specific fields. This response is larger; use portfolio_summary when holdings are not required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint. Description adds that the response is larger, providing useful behavioral context about size/performance without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences conveying purpose, content, and usage guidance without waste. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema so return values need not be detailed. Description covers what data is returned (holdings, asset class, values, institutions, source-specific) and notes response size relative to sibling. Complete for a read-only detailed list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Baseline for zero parameters is 4, and description adds no parameter information as none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns individual holdings grouped by asset class with values, institutions, and source-specific fields. Distinguishes from sibling money_forward_get_portfolio_summary by noting it returns more detailed data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using portfolio_summary when holdings are not required, giving clear context on when to use this tool versus its lighter-weight sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_get_portfolio_summaryGet Money Forward ME portfolio summaryARead-only
Returns total assets and asset-class allocation, including zero-balance classes. Prefer this compact tool for net-worth or allocation questions; use portfolio_details only for individual holdings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (safe read) and openWorldHint=true (results may change). The description adds transparency by noting that zero-balance classes are included, which is useful context not in annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the function, second gives usage advice. No wasted words. Information is front-loaded and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, existing annotations, and an output schema, the description is sufficient for choosing when to use the tool. It could optionally mention output fields, but the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description does not need to explain them. Baseline is 4 for no parameters. No additional parameter information is required or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns total assets and asset-class allocation, including zero-balance classes. It distinguishes itself from the sibling 'money_forward_get_portfolio_details' by positioning itself for net-worth/allocation questions vs. individual holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Prefer this compact tool for net-worth or allocation questions; use portfolio_details only for individual holdings.' This clearly instructs when to use this tool and when to use an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_list_manual_accountsList Money Forward ME manual accountsARead-only
Lists only custom/manual accounts. Do not use this for linked banks, cards, securities, or loans; use money_forward_get_account for those.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by specifying the scope (only manual accounts). Annotations already indicate readOnlyHint and openWorldHint, so the description's addition of account-type restriction is valued. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence identifying the function and one sentence of guidance. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, straightforward purpose, output schema exists), the description is complete. It tells the agent what the tool does and what it does not do, and with the output schema providing return details, the agent has all needed info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100%. The description does not need to add parameter details, but it could briefly note that no parameters are required. However, baseline for 0 parameters is 4, so this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly state it lists only manual accounts, distinct from linked bank accounts. The description explicitly specifies the resource (custom/manual accounts) and verb (list), and distinguishes it from the sibling money_forward_get_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when not to use this tool ('Do not use for linked banks, cards, securities, or loans') and provides the alternative tool (money_forward_get_account). This gives the agent clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_list_manual_assetsList assets in a Money Forward ME manual accountARead-only
Lists assets for one custom/manual account. First call money_forward_list_manual_accounts and pass its id exactly.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | Opaque id returned by money_forward_list_manual_accounts |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows it's a safe read operation. The description adds no additional behavioral context (e.g., error handling, rate limits), but it is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a directive, conveying all necessary information without any wasted words. It is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with annotations and output schema, is mostly complete. It covers usage, parameter, and safety. Minor omission: no mention of behavior for invalid IDs or empty results, but these are likely covered by error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the only parameter. The description reinforces that the ID should be passed exactly, but adds no new meaning beyond the schema's 'Opaque id returned by money_forward_list_manual_accounts'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Lists assets for one custom/manual account.' It uses the verb 'lists' with a specific resource 'assets' and scope 'for one custom/manual account', distinguishing it from siblings like 'money_forward_list_manual_accounts' which lists accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a prerequisite: 'First call money_forward_list_manual_accounts and pass its id exactly.' This tells the agent exactly when and how to use the tool, offering clear sequential guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
money_forward_set_cookieSet Money Forward ME cookieAIdempotent
Verifies and stores a trusted full Cookie header in the local config file. This writes sensitive local state; never request Cookies in an untrusted or retained conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| cookie | Yes | Full trusted Cookie request header, for example name=value; other=value | |
| verify | No | When true, contacts Money Forward and saves only after authentication succeeds |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint: false) and external call (openWorldHint: true). The description adds value by stating it writes sensitive local state and includes a security warning. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, each adding distinct value: one for purpose and one for security guidance. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, existing annotations, and presence of an output schema, the description is sufficiently complete. It covers the main action and a critical security note. Minor omissions like behavior on verify failure are handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are well-described in the schema. The description does not add new meaning beyond what the schema provides, thus baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Verifies and stores a trusted full Cookie header in the local config file.' It distinguishes itself from siblings by focusing on setting the cookie, as opposed to other auth tools like clear_cookie or auth_login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a strong security warning about using the tool only in trusted conversations, which provides some guidance. However, it does not explicitly explain when to use this tool over closely related siblings like money_forward_auth_login or money_forward_clear_cookie, leaving the usage context incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action (auth operations, data retrieval for portfolios, liabilities, cashflow, accounts, manual accounts). Descriptions explicitly differentiate between summary vs details and which tool to prefer. No overlaps.
All tools share the 'money_forward_' prefix and mostly follow a verb_noun pattern (e.g., get_portfolio_summary, set_cookie). Minor inconsistencies: auth_status and auth_login use a noun/verb after 'auth' rather than a clear verb, but the pattern is strong overall.
14 tools is well-scoped for a personal finance management server. Covers authentication (5 tools) and data retrieval (9 tools) without being overwhelming or too sparse.
The tool surface covers all major read operations (portfolio, liabilities, cashflow, accounts) and authentication lifecycle. Lacks write/modify operations, but that appears intentional for a read-only or viewer-focused MCP server.
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 Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP Server for Monarch Money, utilizing an unofficial api.11340MIT
- AlicenseAqualityAmaintenanceAn 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.1918MIT
- AlicenseBqualityBmaintenanceUnofficial MCP server for querying and managing financial data from Despezzas.35MIT
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