LeashIndex Get the report

Index / payments

Actual Budget

io-github-henfrydls-actual-budget-mcp declares 43 capabilities across 43 tools, with 2 critical issues.

94/100 exposureHigh exposure

Manifest recorded 2026-10-22 from tools/list answered by the npm package actual-budget-mcp@0.11.0 (published to npm as actual-budget-mcp, listed in the official MCP registry as io.github.henfrydls/actual-budget-mcp 0.11.0), run in an isolated container with no network access and placeholder credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 43 tools

43 of 43 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 6 of 43 tools

6 tools are classified as irreversible and declare no limit.

high · no-expiry · All 43 tools

43 of 43 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 43 tools

43 of 43 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 22 of 43 tools

22 tools can modify data and declare no limit.

low · uncapped-read · 15 of 43 tools

15 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
list_accountsread declared
get_budget_monthread declared
get_transactionsread declared
get_category_balanceread declared
get_budget_summaryread declared
get_categoriesread declared
get_payeesread declared
budget_vs_actualread declared
spending_projectionread declared
category_trendsread declared
spending_by_categoryread declared
monthly_summaryread declared
balance_historyread declared
reconcile_accountread declared
get_rulesread declared
repair_syncwrite assumed
create_transactionwrite inferred
create_transactionswrite inferred
create_split_transactionwrite inferred
reconcile_currency_residualwrite assumed
update_budget_amountwrite inferred
transfer_between_categorieswrite inferred
hold_for_next_monthwrite assumed
set_category_carryoverwrite inferred
recategorize_transactionwrite assumed
create_transferwrite inferred
update_transactionwrite inferred
delete_transactiondestructive declared
run_bank_syncwrite assumed
create_accountwrite inferred
delete_accountdestructive declared
update_accountwrite inferred
create_categorywrite inferred
update_categorywrite inferred
delete_categorydestructive declared
create_category_groupwrite inferred
update_category_groupwrite inferred
delete_category_groupdestructive declared
create_payeewrite inferred
update_payeewrite inferred
delete_payeedestructive declared
create_rulewrite inferred
delete_ruledestructive declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.