{"serverId":"mcp-registry/dev.journalize/journalize","tools":[{"name":"export_ledger","fixed":{"name":"export_ledger","description":"Export the full ledger as literal Beancount text — a portable\n    snapshot for fava/bean-report/etc., not the live store. Shares a\n    combined free allowance of 2 with get_balance_sheet,\n    get_income_statement, and get_trial_balance (the \"report tier\") — not\n    2 free calls for each of those four separately.","inputSchema":{"type":"object","title":"export_ledgerArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":221,"tokensAfter":221},{"name":"get_account_balance","fixed":{"name":"get_account_balance","description":"Balance of a single account. Settles at the same fixed price\n    whether the account exists or not — an \"unknown account\" answer is\n    still a valid, billable response (no per-error pricing discount). No\n    free-trial allowance for this specific tool, unlike list_directives\n    (same price, but list_directives has 2 free calls and this doesn't) —\n    the free tier applies to browsing (list_directives, list_accounts)\n    and the report tier, not per-account lookups.","inputSchema":{"type":"object","title":"get_account_balanceArguments","required":["account","public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"account":{"type":"string","title":"Account"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":285,"tokensAfter":285},{"name":"get_balance_sheet","fixed":{"name":"get_balance_sheet","description":"Full realize() balance sheet — often served from cache. Settles at\n    the same fixed price regardless of cache hit/miss. Shares a combined\n    free allowance of 2 with export_ledger, get_income_statement, and\n    get_trial_balance (the \"report tier\") — not 2 free calls each.","inputSchema":{"type":"object","title":"get_balance_sheetArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":213,"tokensAfter":213},{"name":"get_income_statement","fixed":{"name":"get_income_statement","description":"Income statement, period-scoped by since/until (ISO date strings,\n    both optional — omitted means whole history). Always books full\n    history first, then clamps the output to the requested period (never\n    filters input dates — see reports.py for why). Shares a combined free\n    allowance of 2 with export_ledger, get_balance_sheet, and\n    get_trial_balance (the \"report tier\") — not 2 free calls each.","inputSchema":{"type":"object","title":"get_income_statementArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since","default":null},"until":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Until","default":null},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":299,"tokensAfter":299},{"name":"get_trial_balance","fixed":{"name":"get_trial_balance","description":"Trial balance, period-scoped same as income statement — same\n    underlying compute, priced and audited as its own resource. Shares a\n    combined free allowance of 2 with export_ledger, get_balance_sheet,\n    and get_income_statement (the \"report tier\") — not 2 free calls\n    each.","inputSchema":{"type":"object","title":"get_trial_balanceArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since","default":null},"until":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Until","default":null},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"list_accounts","fixed":{"name":"list_accounts","description":"List all opened accounts with their currency constraints and\n    booking method. No booking pass involved. Your first 2 calls per\n    registered key are free (a separate allowance from list_directives'\n    and the report tier's — see those tools).","inputSchema":{"type":"object","title":"list_accountsArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":202,"tokensAfter":202},{"name":"list_directives","fixed":{"name":"list_directives","description":"List raw directives (optionally filtered by account/date range). No\n    booking involved — cheapest paid tool. `since`/`until` are ISO date\n    strings (YYYY-MM-DD). Your first 2 calls per registered key are free\n    (independent of the write/accounts/report allowances — see\n    list_accounts, get_balance_sheet).","inputSchema":{"type":"object","title":"list_directivesArguments","required":["public_key","nonce","timestamp","signature"],"properties":{"limit":{"type":"integer","title":"Limit","default":100},"nonce":{"type":"string","title":"Nonce"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since","default":null},"until":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Until","default":null},"account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account","default":null},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":310,"tokensAfter":310},{"name":"submit_batch","fixed":{"name":"submit_batch","description":"Submit up to 1000 directives atomically — all persist together or\n    none do. Priced 10x a single write, regardless of batch size within\n    the cap. Always paid — the free-trial allowance (see\n    submit_directive) applies to single writes only, never to batches,\n    even if you haven't used any free writes yet. Paid.","inputSchema":{"type":"object","title":"submit_batchArguments","required":["directives","public_key","nonce","timestamp","signature"],"properties":{"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"directives":{"type":"array","items":{"type":"string"},"title":"Directives"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":247,"tokensAfter":247},{"name":"submit_directive","fixed":{"name":"submit_directive","description":"Submit one Beancount directive (open, transaction, close, balance,\n    price, note, document — any type). Paid, except your first 20\n    accepted writes per registered key, which are free (this specific\n    tool only — submit_batch is always paid, even for your first call).\n    Call with no payment_header first: if free writes remain, this\n    succeeds immediately; otherwise you'll get price/asset/recipient\n    back, so you can retry with payment_header set to your signed\n    X-PAYMENT-equivalen","inputSchema":{"type":"object","title":"submit_directiveArguments","required":["text","public_key","nonce","timestamp","signature"],"properties":{"text":{"type":"string","title":"Text"},"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"},"payment_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Header","default":null}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":288,"tokensAfter":288},{"name":"validate_directive","fixed":{"name":"validate_directive","description":"Free dry-run: parse+book text against your full history without\n    persisting or charging anything. Still requires a valid signature\n    (identity/replay protection is not a billing concern).","inputSchema":{"type":"object","title":"validate_directiveArguments","required":["text","public_key","nonce","timestamp","signature"],"properties":{"text":{"type":"string","title":"Text"},"nonce":{"type":"string","title":"Nonce"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"},"public_key":{"type":"string","title":"Public Key"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174}],"toolsChanged":10,"tokensSaved":0,"todo":[{"tool":"export_ledger","params":["nonce","signature","timestamp","public_key","payment_header"]},{"tool":"get_account_balance","params":["nonce","account","signature","timestamp","public_key","payment_header"]},{"tool":"get_balance_sheet","params":["nonce","signature","timestamp","public_key","payment_header"]},{"tool":"get_income_statement","params":["nonce","since","until","signature","timestamp","public_key","payment_header"]},{"tool":"get_trial_balance","params":["nonce","since","until","signature","timestamp","public_key","payment_header"]},{"tool":"list_accounts","params":["nonce","signature","timestamp","public_key","payment_header"]},{"tool":"list_directives","params":["limit","nonce","since","until","account","signature","timestamp","public_key","payment_header"]},{"tool":"submit_batch","params":["nonce","signature","timestamp","directives","public_key","payment_header"]},{"tool":"submit_directive","params":["text","nonce","signature","timestamp","public_key","payment_header"]},{"tool":"validate_directive","params":["text","nonce","signature","timestamp","public_key"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}