monarch-mcp
Click on "Deploy 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., "@monarch-mcpShow me my spending by category this month"
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.
monarch-mcp
MCP server bridging Claude (Desktop, Code, or any MCP client) to Monarch Money for personal-finance analysis and lightweight edits.
Wraps the unofficial monarchmoney Python client.
Features
Group | Tools |
Transactions |
|
Tags |
|
Categories |
|
Accounts |
|
Net worth |
|
Cash flow |
|
Budgets / goals |
|
Upstream API gaps
The following are not exposed because the upstream library does not implement them:
Tags: no rename, no delete.
Categories: no rename (delete is supported).
Goals: read-only (returned alongside
get_budgets); no create/update/delete.
Related MCP server: Monarch Money MCP Server
Install
Requires Python 3.10+ and an OS keychain that the keyring package can talk to (macOS Keychain, Windows Credential Manager, GNOME Keyring / KWallet via D-Bus on Linux).
Recommended: pipx
pipx installs the package into its own venv and puts the monarch-mcp / monarch-mcp-setup entry points on your $PATH:
pipx install .Alternative: pip in a venv
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install .If you go this route, Claude Desktop will need the absolute path to the venv's monarch-mcp binary (see below).
Linux note
On a headless Linux box (or WSL2 without a desktop session), keyring won't find a backend by default. Either:
install
gnome-keyringand rundbus-launchso the daemon is reachable, orinstall
keyrings.alt(pip install keyrings.alt) and accept that secrets land in a plaintext file under~/.local/share/python_keyring/— fine for a personal dev box, not fine for shared machines.
Configure credentials
Run once to store your Monarch email, password, and (optional but recommended) MFA TOTP secret in the OS keychain. All three live under service name monarch-mcp.
monarch-mcp-setup set # interactive prompts (password + MFA are hidden input)
monarch-mcp-setup show # report which fields are stored (values not echoed)
monarch-mcp-setup clear # wipe all three fieldsmonarch-mcp-setup with no subcommand defaults to set.
About the MFA secret
When you enable MFA in Monarch, the setup screen shows a QR code and a base32 string (often labelled "secret key" or "manual entry code"). That base32 string is what monarch-mcp-setup is asking for — not a 6-digit code.
Storing it lets the server compute TOTP codes itself and re-authenticate unattended after the session pickle expires. Without it, every session expiry forces you to manually re-login by clearing credentials and running set again with a fresh code.
If you didn't capture the secret when you first enrolled, you can re-enroll your authenticator in Monarch's settings to see it again.
Where session state lives
After the first successful login, the server caches a session pickle so subsequent process starts skip the login round-trip:
Default:
~/.config/monarch-mcp/session.pickleOverride: set the
MONARCH_MCP_SESSION_DIRenv var to a directory of your choice
If the pickle gets corrupted or rejected by Monarch, the server silently falls back to a fresh login using the stored credentials — you don't need to clear it manually.
Wire into Claude Desktop
Edit claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add an entry under mcpServers:
{
"mcpServers": {
"monarch": {
"command": "monarch-mcp"
}
}
}If monarch-mcp isn't on the $PATH Claude Desktop sees (common when you used a venv rather than pipx), give it the absolute path:
{
"mcpServers": {
"monarch": {
"command": "/Users/you/code/monarch-mcp/.venv/bin/monarch-mcp"
}
}
}To park the session pickle somewhere non-default:
{
"mcpServers": {
"monarch": {
"command": "monarch-mcp",
"env": { "MONARCH_MCP_SESSION_DIR": "/Users/you/.local/share/monarch-mcp" }
}
}
}Restart Claude Desktop. The tools should appear in the MCP picker.
Wire into Claude Code
claude mcp add monarch monarch-mcpNotes on the tool surface
All date arguments are ISO
YYYY-MM-DDstrings.IDs (category, tag, account) are opaque strings — discover them via the corresponding
list_*tool before calling filtered endpoints.set_budgetrequires exactly one ofcategory_idorcategory_group_id.list_transactionspaginates: passlimitandoffsetto walk results larger than the default 100.
Development & tests
The test suite is hermetic — it stubs keyring, monarchmoney, and mcp.server.fastmcp when those packages aren't installed, so you can run it without network access or a keychain backend.
Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'-e .[dev] installs the package editable plus pytest and pytest-asyncio.
Run
pytest # full suite (~80ms, 43 tests)
pytest tests/test_server.py # one module
pytest -k "set_budget" # one keyword
pytest -v # verbose, lists each testPytest config lives in pyproject.toml under [tool.pytest.ini_options]:
pythonpath = ["src"]— letsfrom monarch_mcp import ...resolve without an editable install (handy in CI containers that don't runpip install).asyncio_mode = "auto"— async test functions don't need a@pytest.mark.asynciodecorator.testpaths = ["tests"]— barepytestfinds the suite.
Layout
src/monarch_mcp/
auth.py — keychain wrapper (get/set/delete + require_login_credentials)
setup.py — monarch-mcp-setup CLI (set / show / clear)
server.py — FastMCP server, lazy-login client, all tool definitions
tests/
conftest.py — third-party stubs + clean_keyring / fake_mm_client / server_with_fake_client fixtures
test_auth.py
test_setup.py
test_server.pyWriting a new tool
Add an
@mcp.tool()-decorated async function to src/monarch_mcp/server.py. The docstring becomes the MCP tool description Claude sees, so write it for Claude.If it calls a new
MonarchMoneymethod, add the method name to_FAKE_METHODSin tests/conftest.py sofake_mm_clientmocks it out.Add a test in tests/test_server.py using the
server_with_fake_clientfixture — assert onclient.<method>.await_args.kwargsto confirm the call shape.
What the fixtures do
clean_keyring— clears the in-memory keyring stub before each test (no-op when real keyring is installed).fake_mm_client—MagicMockwhose Monarch methods areAsyncMocks returning{"called": <method_name>}.server_with_fake_client— monkeypatchesserver._clientto the fake, so tool calls bypass_get_client()and the login flow entirely. Tests that do exercise login (test_get_client_*) reset_clienttoNoneand patchserver.MonarchMoneydirectly.
Available Tools
18 toolscreate_categoryC
Create a new category under the given group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ||
| name | Yes | ||
| icon | No | ❓ | |
| rollover_enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral aspects such as side effects, permissions, idempotency, or error conditions.
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 short (one sentence) but omits critical information about parameters and behavior, making it under-specified rather than efficiently concise.
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?
Despite having an output schema, the description does not mention the return value. With 4 parameters and no parameter details, the description is insufficient for an agent to use the tool correctly.
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 description coverage is 0%, and the description does not explain any parameters. The input schema defines 4 parameters with defaults, but the description adds no value beyond the parameter names.
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 action (create) and resource (category) with context (under a given group). It is easily distinguishable from sibling tools like create_tag and delete_category.
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?
No guidance is provided on when to use this tool versus alternatives like list_categories or delete_category. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagA
Create a new tag. Color is a hex string like '#ff0000'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides color format example but no annotations; lacks info on error behavior, uniqueness, or return value beyond the output schema existence.
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 are direct and contain no extraneous 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?
With a simple parameter set and output schema present, the description covers the main purpose and color format; could mention constraints but adequate for basic use.
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?
Adds meaning for the 'color' parameter with a hex string example, but the 'name' parameter is not elaborated beyond schema, and schema coverage is 0%.
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 creates a new tag, distinguishing it from sibling tools like list_tags and create_category.
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?
No guidance on when to use this tool vs alternatives, such as when to create a category instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_categoryB
Delete a category by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It only states the action without mentioning side effects, permissions, or reversibility. For a delete operation, this is insufficient.
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 concise sentence with no fluff. However, it could be slightly expanded without losing conciseness to include more context.
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 (one required parameter, no nested objects), the description is minimally adequate. However, it lacks differentiation from sibling tools and doesn't address potential impacts, making it less complete.
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 schema has 0% coverage (no descriptions for parameters). The description adds 'by ID' but does not explain the format, constraints, or required format of the category_id parameter. More detail is 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?
The description 'Delete a category by ID.' specifies the action (delete), resource (category), and required identifier (ID), clearly distinguishing it from sibling tools like create_category or list_categories.
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?
No guidance on when to use this tool versus alternatives, nor any prerequisites or warnings about irreversible effects (e.g., cascading to transactions). A better description would mention potential side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_historyB
Historical balance snapshots for a single account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'Historical balance snapshots' without specifying granularity (daily, monthly?), time range, inclusion of current balance, or read-only nature. The lack of detail hinders agent understanding beyond the basic purpose.
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 clear sentence with no filler. While appropriately concise, it lacks structure (e.g., bullet points) that could improve readability for complex details. However, for a simple tool, brevity is acceptable.
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 has one parameter, an output schema, and no annotations, the description is minimally adequate but lacks context about output format, example usage, or how to obtain account_id. For a tool with many siblings, more completeness would improve agent decision-making.
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 0% description coverage, and the tool description does not explain the account_id parameter (e.g., format, source, constraints). The description only implies a single account but adds no semantics beyond the schema, leaving the agent without guidance on what value to provide.
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 retrieves 'Historical balance snapshots for a single account,' specifying the verb (get/historical snapshots), resource (account), and scope (single account). This distinguishes it from siblings like list_accounts (which lists accounts) and get_transaction (individual transactions).
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 historical balance data for a specific account, but it does not explicitly state when to prefer this tool over siblings like get_net_worth_history, get_cash_flow, or get_transactions_summary. No alternative tools or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_budgetsC
Budget plan vs. actuals for the date range. Includes v2 goals when present.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It mentions inclusion of v2 goals when present, which adds transparency. However, it does not state that the operation is read-only, any required permissions, rate limits, or how it behaves with no data.
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 filler. Front-loads the core purpose and includes a valuable additional detail about v2 goals. Efficient and clear.
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?
For a tool with no annotations and zero parameter descriptions, the description leaves many gaps. It does not explain budget periods, mandatory inputs, or what the output contains (though an output schema exists). The agent likely needs more context to use this tool reliably.
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 0% description coverage. The description hints at date range parameters but does not specify formats, constraints, or how the date range interacts with budget periods. Minimal added meaning beyond the schema.
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 resource (budgets) and purpose (plan vs. actuals for a date range). It adds a specific detail about v2 goals, which helps distinguish from general financial reports. However, it doesn't explicitly differentiate from sibling tools like get_cash_flow_summary or set_budget.
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?
No guidance on when to use this tool versus siblings such as get_cash_flow or set_budget. There is no mention of prerequisites, alternatives, or when not to use. The context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flowB
Cash flow aggregated by category, group, and merchant for the date range.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| start_date | No | ||
| end_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only nature, rate limits, or authentication requirements. The agent cannot infer safety or side effects.
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 with no redundant words. It is front-loaded with the core action and resource.
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?
Despite having an output schema (so return values are covered), the description lacks context on aggregation behavior, default date ranges, and interaction of dimensions. It is insufficient for an agent to use effectively without additional knowledge.
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 description coverage is 0%, and the description adds minimal meaning to parameters. It mentions 'date range' but does not clarify start_date/end_date format or how 'limit' affects results, leaving significant ambiguity.
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 aggregates cash flow by category, group, and merchant for a date range. It uses a specific verb and resource, and distinguishes from sibling tools like 'get_cash_flow_summary' which likely provides summary-level 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?
No guidelines on when to use this tool versus alternatives such as 'get_cash_flow_summary' or 'get_transactions'. The description does not mention exclusions or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flow_summaryA
Top-line cash flow numbers only (income, expense, savings).
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It discloses return values (income, expense, savings) but does not mention any behavioral traits like aggregation method, date range dependency, or permissions. Adequate for a simple read 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?
Single sentence, no wasted words. Front-loaded with the core purpose. Highly 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?
The description omits crucial parameter guidance despite having two optional parameters. With an output schema present, return values are covered, but parameter usage is left to assumption. Incomplete for a tool with optional date range.
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 0% with no parameter descriptions. The description does not mention 'start_date' or 'end_date' at all, leaving agents uninformed about how to use them. Fails to add any meaning beyond the schema itself.
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 returns top-line cash flow numbers (income, expense, savings). Specific verb and resource, distinguishes from sibling 'get_cash_flow' which likely provides 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?
The phrase 'only' implies a limited scope, hinting at when to use this summary vs. a detailed alternative. Does not explicitly name alternatives but context is clear from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_net_worth_by_typeC
Net worth broken down by account type. Timeframe: 'month' or 'year'.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| timeframe | No | month |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the tool breaks down net worth by type and timeframe, but does not disclose whether it is read-only, what aggregation period is used, or how dates are handled. This is insufficient for safe agent invocation.
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 short sentences and no redundancy. However, it is so brief that it sacrifices necessary detail, which slightly reduces the score.
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?
Although an output schema exists, the description leaves gaps in parameter clarity (start_date format) and does not differentiate from siblings. The tool's purpose is clear but the description is not fully complete given the lack of annotations and schema descriptions.
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 description coverage is 0%, so the description must compensate. It adds meaning for timeframe ('month' or 'year'), but start_date is completely unexplained (format, allowed range, etc.). This partial coverage leaves the agent guessing.
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 gets net worth broken down by account type, and mentions the timeframe parameter, distinguishing it from the sibling get_net_worth_history which likely provides a time series. However, it could be more specific about the grouping and return format.
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 no guidance on when to use this tool versus alternatives. It does not explain that it aggregates by account type, which is the key differentiator from get_net_worth_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_net_worth_historyA
Daily net-worth snapshots aggregated across all accounts.
Optional account_type filters to a single type (e.g. 'brokerage'). Dates are ISO YYYY-MM-DD.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| account_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It implies a read operation ('snapshots'), but does not explicitly state it is read-only, non-destructive, or describe any side effects. Lacks details on safety profile.
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, front-loaded with main purpose. No wasted words. Efficient and clear.
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 an output schema available, the description covers the tool's purpose, optional filter, and date format adequately. No missing essential information for an agent to use correctly.
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?
Adds meaning beyond input schema: explains account_type filter is optional and filters to a single type, and specifies date format (ISO YYYY-MM-DD). However, does not elaborate on start/end_date semantics beyond format.
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 provides daily net-worth snapshots aggregated across all accounts. Distinguishes from sibling tools like get_net_worth_by_type (which likely gives breakdown by type).
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?
Mentions optional account_type filter and ISO date format, but does not explicitly guide when to use this tool versus alternatives like get_net_worth_by_type, nor does it mention prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionA
Return full detail for a single transaction (includes splits, tags, attachments).
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It indicates a read operation and lists return contents, but lacks details on permissions, rate limits, or side effects.
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, and efficient. 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 the tool's simplicity (one parameter, output schema exists), the description adequately covers return contents. Lacks mention that the transaction ID must exist, but overall sufficient.
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?
With 0% schema description coverage, the description does not add meaning to the single parameter (transaction_id) beyond what the schema provides. It does not explain how to obtain the ID or format requirements.
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 'Return full detail for a single transaction' and lists included items (splits, tags, attachments). This differentiates it from sibling tools like list_transactions or get_transactions_summary.
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?
No explicit guidance on when to use this tool versus alternatives. While the purpose implies usage for detail retrieval, missing context about when not to use it or comparisons to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactions_summaryB
Aggregate stats (count, sum, average, max) across all transactions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It states the tool computes aggregate stats but does not disclose whether the operation is read-only, whether it uses cached data, or any potential side effects. For a read-only summary, more transparency would be expected.
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, efficient sentence that conveys the core purpose without any wasted words. It is front-loaded and to the point.
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, output schema exists), the description is adequate. It explains what the tool returns. However, it could mention that the aggregation is applied to all transactions without filtering, which is implied but not explicit.
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 (100% coverage), so the description adds significant value by specifying which statistics are returned (count, sum, average, max). This clarifies what the tool computes beyond the empty schema.
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 that the tool provides aggregate stats (count, sum, average, max) across all transactions. It uses an implicit verb 'Aggregate' and distinguishes itself from siblings like list_transactions by summarizing rather than listing. However, it could be more explicit about the scope (e.g., 'all transactions across the entire dataset').
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?
No guidance is provided on when to use this tool versus alternatives like list_transactions or get_cash_flow_summary. The description does not mention any prerequisites, limitations, or scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
List all configured accounts with current balances and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It indicates a read operation by saying 'list', but does not disclose potential behaviors such as pagination, rate limits, or required permissions. With no parameters and an output schema present, the description is minimally adequate.
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 with no extraneous words. It is front-loaded and immediately conveys the tool's purpose. Every part 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?
Given the tool's simplicity (no parameters, output schema exists), the description is complete enough. It covers the action, resource, and included data. However, it could optionally mention the output format or any default sorting if relevant.
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, and schema description coverage is 100%. The description adds value by specifying what is included (balances and metadata), which is not detailed in the schema. For a parameterless tool, this is sufficient.
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 verb 'list' and the resource 'accounts', specifying that it retrieves 'current balances and metadata'. This effectively distinguishes it from sibling tools like list_categories and list_tags, which operate on different resources.
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 retrieving all accounts, but does not provide explicit guidance on when to use this tool versus alternatives like get_account_history or get_budgets. The context suggests it is for a broad listing, but exclusions or specific scenarios are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
List all transaction categories.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'List all transaction categories' without disclosing any behavioral traits (e.g., read-only, no side effects). It fails to add transparency beyond the obvious.
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 with no extraneous information, achieving maximum conciseness.
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 has no parameters and an output schema exists, the description is complete enough for a simple list operation. However, it could briefly mention the nature of the output or any default ordering.
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 0 parameters and the input schema is empty (100% coverage). The description adds minimal additional meaning, but for zero-parameter tools, a baseline 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 'List all transaction categories' uses a clear verb ('List') and resource ('transaction categories'), distinguishing it from siblings like 'create_category' or 'delete_category'.
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?
No guidance is provided on when to use this tool versus alternatives such as 'list_accounts' or 'list_tags'. There is no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_category_groupsA
List all category groups (the parent groupings for categories).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description clearly indicates a read-only list operation, with no side effects disclosed. With no annotations, the description carries the burden, but it sufficiently conveys the trivial nature of the 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?
Single, concise sentence that conveys the tool's purpose without redundant or unnecessary content. Efficient 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?
Given the tool has no parameters, is read-only, and has an output schema, the description provides adequate completeness. Could optionally mention expected output (list of group objects) but not required.
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 present; schema coverage is 100% trivially. The description adds no parameter information, which is appropriate given no parameters exist. Baseline score of 4 for zero-parameter tools.
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 lists category groups and explains they are parent groupings for categories. The verb 'list' and resource 'category groups' are specific and distinct from sibling tool 'list_categories'.
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?
No explicit guidance on when to use this tool versus alternatives. However, as a simple list tool with no parameters, usage context is implied. Missing when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsA
List all transaction tags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It states 'List all transaction tags' which implies a read-only operation, but it does not disclose any additional behavioral traits such as return format, pagination, or side effects. It is not misleading but minimal.
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 that is concise and front-loaded. Every word is necessary and no extraneous information is included.
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 simplicity of the tool (no parameters, list all), the description is complete. The output schema exists to define return structure, so no further detail is needed.
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 no parameters in the input schema, so the description does not need to add parameter information. With 0 parameters, the baseline is 4. The description is sufficient.
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 'List all transaction tags' clearly states the action (List) and the resource (transaction tags). It effectively distinguishes from sibling tools like create_tag, delete_tag, and set_transaction_tags.
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?
While no explicit when-to-use or alternatives are given, the purpose is straightforward and the context of sibling tools makes it clear this is for listing all tags. A slightly higher score would require explicit differentiation, but it's adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsA
List transactions with optional filters. Dates are ISO YYYY-MM-DD.
Use list_categories / list_tags / list_accounts to discover the IDs needed for the *_ids filter arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| start_date | No | ||
| end_date | No | ||
| search | No | ||
| category_ids | No | ||
| account_ids | No | ||
| tag_ids | No | ||
| has_attachments | No | ||
| has_notes | No | ||
| hidden_from_reports | No | ||
| is_split | No | ||
| is_recurring | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies read-only operation but does not mention pagination, rate limits, or default behaviors beyond limit/offset schema. Dates format is a plus.
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?
Extremely concise: two sentences, front-loaded with purpose and key filter 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 13 parameters and no schema descriptions, the description covers only essentials. Output schema exists but is not referenced. Could mention default ordering or result structure.
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 0%, so description must compensate. It adds meaning for date format and ID discovery, but leaves limit, offset, search, and boolean parameters unexplained. Param names are fairly self-explanatory.
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 'List transactions with optional filters', using a specific verb and resource. It distinguishes from siblings like get_transaction (singular) and list_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?
Provides useful guidance: date format ISO YYYY-MM-DD, and suggests using other list tools to discover IDs for filter arguments. However, it does not explicitly compare with alternatives like get_transaction or get_transactions_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_budgetA
Set a budget amount. Provide exactly one of category_id or category_group_id.
timeframe: 'month' or 'year'. apply_to_future propagates the change forward.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| category_id | No | ||
| category_group_id | No | ||
| timeframe | No | month | |
| start_date | No | ||
| apply_to_future | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that apply_to_future propagates changes forward, which is a key behavioral trait. However, it does not mention whether this overwrites existing budgets, if the operation is idempotent, or any side effects.
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 with two sentences plus a line break, all front-loaded. Every word serves a purpose: stating the action, the key constraint, and explaining two parameters.
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 6 parameters, no annotations, and no output schema details, the description covers the core requirement and two parameters well. However, it leaves out start_date explanation and what happens if both or neither category IDs are provided, making it somewhat incomplete.
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?
With 0% schema description coverage, the description adds essential meaning: timeframe values ('month' or 'year'), the mutual exclusivity of category_id and category_group_id, and the propagation behavior of apply_to_future. However, it omits details about start_date and the format of IDs.
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 sets a budget amount, which is a specific verb+resource combination. It further distinguishes by requiring exactly one of category_id or category_group_id, setting it apart from sibling tools like get_budgets.
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 gives clear usage guidelines: provide exactly one of category_id or category_group_id, and explains timeframe and apply_to_future. While it does not explicitly mention when not to use this tool or alternatives, the constraints are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transaction_tagsB
Replace the set of tags on a transaction with the given tag IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes | ||
| tag_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Replace', implying destruction of existing tags, which is transparent. However, since no annotations are provided, the description carries full burden and could further clarify that all existing tags are removed and replaced.
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, 15 words, front-loaded with the verb. Every word earns its place; no fluff.
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?
For a simple replacement operation with an output schema, the description is mostly complete. However, it omits the effect on existing tags (complete overwrite) and does not link to other tools for obtaining tag IDs.
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?
With 0% schema description coverage, the description adds minimal value. It only restates 'tag IDs' without explaining that these come from list_tags or what format transaction_id expects. The array nature of tag_ids is not elaborated.
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 verb 'Replace' and the resource 'tags on a transaction', making the purpose specific. It distinguishes from sibling tools like create_tag or delete_category, but doesn't explain what tag IDs are or how to obtain them.
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?
No guidance on when to use this tool versus alternatives like create_tag or delete_category. No prerequisites or when-not-to-use conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
18 tool updates
v0.1.0- First observed
create_category - First observed
create_tag - First observed
delete_category - First observed
get_account_history - First observed
get_budgets - First observed
get_cash_flow - First observed
get_cash_flow_summary - First observed
get_net_worth_by_type - First observed
get_net_worth_history - First observed
get_transaction - First observed
get_transactions_summary - First observed
list_accounts - First observed
list_categories - First observed
list_category_groups - First observed
list_tags - First observed
list_transactions - First observed
set_budget - First observed
set_transaction_tags
TDQS
Scored across 18 tools
Each tool targets a distinct financial entity or operation (e.g., categories, tags, budgets, transactions, cash flow, net worth). No two tools have overlapping functionality; even related tools like get_cash_flow and get_cash_flow_summary are clearly differentiated by detail level.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_category, get_budgets, list_transactions). Verbs are uniformly chosen (create, delete, get, list, set) and nouns are plural or singular as appropriate.
18 tools cover the major areas of personal finance management (accounts, transactions, categories, tags, budgets, cash flow, net worth) without being overwhelming. The count is within the optimal 3-15 range, though slightly above, but still well-scoped for the domain.
The tool surface has significant gaps: no update or delete for transactions, no delete for tags, no update for categories or tags. While core reads and some writes exist, essential lifecycle operations (especially delete and update for transactions) are missing, limiting agent workflows.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP Server for Monarch Money, utilizing an unofficial api.11371MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that integrates with Monarch Money to provide financial data access and operations, including account management, transaction filtering, budget analysis, and goal tracking through natural language.-
- AlicenseCqualityBmaintenanceUnofficial MCP server for Monarch Money that exposes tools for managing accounts, transactions, budgets, and other financial data through natural language.1251MIT
- FlicenseBqualityDmaintenanceA personal MCP server that gives Claude native access to YNAB budget data.46-