LeashIndex Get the report

Index / other

Lunch Money

io-github-akutishevsky-lunchmoney-mcp declares 59 capabilities across 59 tools, with 2 critical issues.

98/100 exposureHigh exposure

Manifest recorded 2026-10-14 from tools/list answered by the npm package @akutishevsky/lunchmoney-mcp@3.0.0 (published to npm as @akutishevsky/lunchmoney-mcp, listed in the official MCP registry as io.github.akutishevsky/lunchmoney-mcp 3.0.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 59 tools

59 of 59 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 · 13 of 59 tools

13 tools are classified as irreversible and declare no limit.

high · no-expiry · All 59 tools

59 of 59 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 59 tools

59 of 59 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 · 17 of 59 tools

17 tools can modify data and declare no limit.

low · uncapped-read · 29 of 59 tools

29 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
get_userread declared
get_all_categoriesread declared
get_single_categoryread declared
create_categorywrite inferred
update_categorywrite inferred
delete_categorydestructive declared
get_all_tagsread declared
get_single_tagread declared
create_tagwrite inferred
update_tagwrite inferred
delete_tagdestructive declared
get_transactionsread declared
get_single_transactionread declared
create_transactionswrite inferred
update_transactionwrite inferred
delete_transactiondestructive declared
update_transactions_bulkwrite inferred
delete_transactions_bulkdestructive declared
create_transaction_groupwrite inferred
delete_transaction_groupdestructive declared
split_transactionwrite assumed
unsplit_transactiondestructive declared
attach_file_to_transactionwrite assumed
get_transaction_attachment_urlread declared
delete_transaction_attachmentdestructive declared
get_recurring_itemsread declared
get_single_recurring_itemread declared
get_budget_summaryread declared
get_budget_settingsread declared
upsert_budgetwrite inferred
remove_budgetdestructive declared
get_all_manual_accountsread declared
get_single_manual_accountread declared
create_manual_accountwrite inferred
update_manual_accountwrite inferred
delete_manual_accountdestructive declared
get_all_plaid_accountsread declared
get_single_plaid_accountread declared
trigger_plaid_fetchread inferred
get_supported_cryptocurrenciesread declared
add_supported_cryptocurrencywrite inferred
get_all_manual_cryptoread declared
get_single_manual_cryptoread declared
create_manual_cryptowrite inferred
update_manual_cryptowrite inferred
delete_manual_cryptodestructive declared
get_all_synced_cryptoread declared
get_single_synced_cryptoread declared
get_synced_crypto_balanceread declared
refresh_synced_cryptowrite assumed
get_balance_historyread declared
get_account_balance_historyread declared
upsert_account_balance_historyread inferred
delete_account_balance_historydestructive declared
get_crypto_synced_balance_historyread declared
upsert_crypto_synced_balance_historyread inferred
delete_crypto_synced_balance_historydestructive declared
delete_balance_history_entrydestructive declared
update_deleted_account_detailsread inferred
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.