Skip to content

AccountsOS

io.github.paulgosnell/accountsos-mcppaulgosnellstreamable-httpv0.3.2Scanned

Query your live AccountsOS books: balances, transactions, VAT, deadlines, invoices.

82 tools: 1 can delete or cancel things, 1 do something that can't be undone, 6 change things and 74 only read.

Tools: 1 delete, 1 irreversible, 6 write, 74 read.
  • Reads private data · 11
  • Reads text others write · 16
  • Can send data out · 0
  • 3 findings, 1 high

Anlyon alternative

8 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

82 tools

Deletes or cancels 1Claude Code: deny
  • update_companySave the user's answers about their own business to their AccountsOS company: what kind of business it is (entity_type, for example sole_trader or ltd), the country it is registere…No findings

    Why it is in this group

    • The name "update_company" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Save the user's answers about their own business to their AccountsOS company: what kind of business it is (entity_type, for example sole_trader or ltd), the country it is registered in (ISO code such as GB, IE, US), the company or registration number, the name, what it does, the currency, the year-end month and VAT registration. Use it during setup, and when the user corrects one of these details. For a UK or Irish limited company with a registration number, call lookup_company and then link_company instead, which fills everything from the official register. Only pass what the user told you; never guess.

    Annotations the server declares

    • title: Set Up Company
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
Can't be undone 1Claude Code: ask
  • deel_calculate_take_home_payCalculate take-home pay for a given salary in a specific country.Reads text others write1 finding

    Why it is in this group

    • The name "deel_calculate_take_home_pay" says "pay": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "deel_calculate_take_home_pay" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "deel_calculate_take_home_pay" says "pay": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Calculate take-home pay for a given salary in a specific country. Use when the user asks about net pay, take-home salary, or deductions in a country.

    Annotations the server declares

    • title: Deel Calculate Take Home Pay
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 6Claude Code: ask
  • add_documentAdd a file the user attached in this chat to their AccountsOS books: a bank statement, a receipt, a supplier bill or a sales invoice.No findings

    Why it is in this group

    • The name "add_document" says "add": a word for a change.
    Description, as the server wrote it
    Add a file the user attached in this chat to their AccountsOS books: a bank statement, a receipt, a supplier bill or a sales invoice. AccountsOS reads it the same way as an emailed document: a bank statement is imported into a bank account (created if it does not exist yet), a receipt or bill is read and matched. Use it whenever the user attaches or mentions a financial document and wants it in their books. The result says what was found and what happened.

    Annotations the server declares

    • title: Add Document
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • check_vat_numberCheck a UK VAT registration number against HMRC's live Check-a-UK-VAT-number register and return the registered trader name and address.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Check a UK VAT registration number against HMRC's live Check-a-UK-VAT-number register and return the registered trader name and address. GB only. A "not registered" answer is a real answer from HMRC, not an error. Use this when the user asks whether a VAT number is valid, when adding or editing a supplier or customer with a VAT number, and when a VAT number appears on a document and the user wants it confirmed. Report the registered name back to the user, and point out when it does NOT match the contact's name: a mismatch is the actual thing worth flagging.

    Annotations the server declares

    • title: Check Vat Number
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • deel_calculate_employment_costCalculate the total cost of hiring someone in a specific country through Deel EOR.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Calculate the total cost of hiring someone in a specific country through Deel EOR. Use when the user asks "how much would it cost to hire in [country]?" or about employment costs abroad.

    Annotations the server declares

    • title: Deel Calculate Employment Cost
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • month_close_summaryComposite read returning everything needed to close a month in one call: P&L for the period, balance-sheet snapshot at period end, VAT summary if registered, unreconciled transacti…1 finding

    Why it is in this group

    • The name "month_close_summary" says "close": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "month_close_summary" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "month_close_summary" says "close": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Composite read returning everything needed to close a month in one call: P&L for the period, balance-sheet snapshot at period end, VAT summary if registered, unreconciled transaction count, outstanding invoices, and overdue deadlines. Use when the user asks about month-end, "how did we do in [month]", a period close, or wants a one-shot business health view. It saves several round-trips compared to calling each report tool separately.

    Annotations the server declares

    • title: Month Close Summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • recall_conversationsRecall what you and the user discussed in PAST conversations (across earlier sessions, including voice and video calls).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Recall what you and the user discussed in PAST conversations (across earlier sessions, including voice and video calls). Call this whenever the user asks "what were we talking about last time?", "remind me what we discussed", "where did we leave off?", "what did we cover yesterday?", or refers back to an earlier chat. Returns recent conversation summaries newest-first — each with a short summary, the key topics, any decisions made, and open action items, plus when it happened. ALWAYS call this before saying you don't remember — you DO have access to past conversations through this tool. (Distinct from read_company_wiki, which is curated durable facts, not the back-and-forth of past chats.)

    Annotations the server declares

    • title: Recall Conversations
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 74Show 74 read-only tools
  • calculate_vat_periodPreview the 9-box VAT breakdown for a period WITHOUT locking it.No findings

    Why it is in this group

    • The description's first verb is "preview": a word for reading.
    Description, as the server wrote it
    Preview the 9-box VAT breakdown for a period WITHOUT locking it. Computes the boxes from the period's transactions using the same logic as the VAT page, so the user can review the figures before locking. Use when the user says "what's my VAT for this quarter", "show me the 9 boxes", or before lock_vat_period so they can check first. Read-only: does not change anything.

    Annotations the server declares

    • title: Calculate Vat Period
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • deel_get_invoicesGet invoices from the user's Deel account.Reads text others writeNo findings

    Why it is in this group

    • The name "deel_get_invoices" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Get invoices from the user's Deel account. Shows contractor payment invoices. Use when the user asks about Deel payments, contractor invoices, or payment history.

    Annotations the server declares

    • title: Deel Get Invoices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • deel_get_payment_receiptsGet payment receipts from Deel showing payments made to contractors.Reads text others writeNo findings

    Why it is in this group

    • The name "deel_get_payment_receipts" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Get payment receipts from Deel showing payments made to contractors. Use when the user asks about specific Deel payments or needs payment proof.

    Annotations the server declares

    • title: Deel Get Payment Receipts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • deel_get_peopleList people (contractors and employees) in the user's Deel organization.Reads text others writeNo findings

    Why it is in this group

    • The name "deel_get_people" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List people (contractors and employees) in the user's Deel organization. Use when the user asks about their Deel team, workforce, or contractor list.

    Annotations the server declares

    • title: Deel Get People
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • deel_list_contractsList contracts from the user's Deel account.Reads text others writeNo findings

    Why it is in this group

    • The name "deel_list_contracts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List contracts from the user's Deel account. Use when the user asks about their Deel contracts, contractors, or team members managed through Deel.

    Annotations the server declares

    • title: Deel List Contracts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • find_duplicate_bank_accountsFind manual bank accounts that look like the same real-world account as a live bank feed (Revolut Business, Starling, Wise, Mercury, Qonto, Airwallex, Stripe Treasury) already conn…No findings

    Why it is in this group

    • The name "find_duplicate_bank_accounts" says "find": a word for reading.
    Description, as the server wrote it
    Find manual bank accounts that look like the same real-world account as a live bank feed (Revolut Business, Starling, Wise, Mercury, Qonto, Airwallex, Stripe Treasury) already connected — the classic case where a user uploaded statements into a manual account, then later connected the live feed for the same account, leaving duplicate transactions that double-count cash and inflate the P&L. Returns candidate pairs with matched/unmatched transaction counts, date ranges, sample matched pairs, and an AI same-account verdict. Use when the user says their cash or balance looks wrong after connecting a bank, mentions a duplicate account, or asks why a P&L looks inflated. Read-only — use merge_bank_accounts to actually merge a pair.

    Annotations the server declares

    • title: Find Duplicate Bank Accounts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_accounts_statusGet the status of annual accounts preparation for the current company.No findings

    Why it is in this group

    • The name "get_accounts_status" says "get": a word for reading.
    Description, as the server wrote it
    Get the status of annual accounts preparation for the current company. Returns the current accounting period, preparation status, and next steps. Use when the user asks about their annual accounts, Companies House filing, year-end accounts, or corporation tax deadline.

    Annotations the server declares

    • title: Get Accounts Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_aged_creditorsAged creditors report: outstanding bills grouped by supplier, bucketed by days past due (current/not-yet-due, 1-30, 31-60, 61-90, 90+).No findings

    Why it is in this group

    • The name "get_aged_creditors" says "get": a word for reading.
    Description, as the server wrote it
    Aged creditors report: outstanding bills grouped by supplier, bucketed by days past due (current/not-yet-due, 1-30, 31-60, 61-90, 90+). Use when the user asks "who do I owe", "what bills are due", "show aged payables", or is planning supplier payments. Read-only.

    Annotations the server declares

    • title: Get Aged Creditors
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_aged_debtorsAged debtors report: outstanding invoices grouped by contact, bucketed by days past due (current/not-yet-due, 1-30, 31-60, 61-90, 90+).Reads private dataNo findings

    Why it is in this group

    • The name "get_aged_debtors" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    Description, as the server wrote it
    Aged debtors report: outstanding invoices grouped by contact, bucketed by days past due (current/not-yet-due, 1-30, 31-60, 61-90, 90+). Use when the user asks "who owes me money", "what's in our debtors book", "show aged receivables", or wants to pick which clients to chase. Read-only.

    Annotations the server declares

    • title: Get Aged Debtors
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_attentionReturn the proactive, ranked list of everything that currently needs the user's attention across their whole account: missing bank statements, unreconciled transactions, upcoming t…Reads private dataNo findings

    Why it is in this group

    • The name "get_attention" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "return" and "file": it reads files.
    Description, as the server wrote it
    Return the proactive, ranked list of everything that currently needs the user's attention across their whole account: missing bank statements, unreconciled transactions, upcoming tax/filing deadlines, a month-end ready to close, annual accounts ready to file, overdue invoices to chase, and open tasks. Use whenever the user asks what they need to do, what's outstanding, what's missing, whether anything needs them, for a status check or 'what should I focus on'. Each item includes a plain-English reason and where to fix it. Proactively offer to help with the most important ones.

    Annotations the server declares

    • title: Get Attention
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_balanceGet current account balanceNo findings

    Why it is in this group

    • The name "get_balance" says "get": a word for reading.
    Description, as the server wrote it
    Get current account balance

    Annotations the server declares

    • title: Get Balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_balance_sheetGet Balance Sheet report as at a given date.No findings

    Why it is in this group

    • The name "get_balance_sheet" says "get": a word for reading.
    Description, as the server wrote it
    Get Balance Sheet report as at a given date.

    Annotations the server declares

    • title: Get Balance Sheet
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_bank_accountsList bank accounts connected to the company.No findings

    Why it is in this group

    • The name "get_bank_accounts" says "get": a word for reading.
    Description, as the server wrote it
    List bank accounts connected to the company.

    Annotations the server declares

    • title: Get Bank Accounts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_billsGet supplier bills/invoices owed by the company.No findings

    Why it is in this group

    • The name "get_bills" says "get": a word for reading.
    Description, as the server wrote it
    Get supplier bills/invoices owed by the company. Shows what you owe to suppliers.

    Annotations the server declares

    • title: Get Bills
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_budget_vs_actualBudget vs actual: how the company is doing against its budget.No findings

    Why it is in this group

    • The name "get_budget_vs_actual" says "get": a word for reading.
    Description, as the server wrote it
    Budget vs actual: how the company is doing against its budget. Use when the user asks about budget, against budget, over budget, under budget, budget vs actual, budget variance, are we on track, or how a month, quarter or the year compares with the plan. Returns, for each income, cost of sales and expense account, the budget, the actual from the ledger, the variance (actual minus budget) and the variance percent, plus totals and net profit. Income above budget is good, costs below budget are good. hasBudget false means the company has not set a budget: say so and point them to /reports/budget, never present zeros as a result. Budgets are set on the Reports page, Budget vs actual tab. Quote figures from the result only.

    Annotations the server declares

    • title: Get Budget Vs Actual
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_capital_allowance_hintGet a tax capital allowance hint for a fixed asset (book depreciation vs tax relief).No findings

    Why it is in this group

    • The name "get_capital_allowance_hint" says "get": a word for reading.
    Description, as the server wrote it
    Get a tax capital allowance hint for a fixed asset (book depreciation vs tax relief). GB companies get AIA/WDA guidance from official rates; other countries get a jurisdiction note. Use when the user asks about capital allowances, AIA, or tax relief on a specific asset — not a filing computation.

    Annotations the server declares

    • title: Get Capital Allowance Hint
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_cash_flow_forecast13-week cash-flow forecast.No findings

    Why it is in this group

    • The name "get_cash_flow_forecast" says "get": a word for reading.
    Description, as the server wrote it
    13-week cash-flow forecast. Returns current bank balance, projected weekly inflows/outflows/running balance for the next 13 weeks, projected low point, recurring patterns detected from history, outstanding invoices expected to clear, recurring invoice projections, and tax deadlines that could draw cash. Use when the user asks about cashflow, runway, "can I afford X", "when will I run out", or wants to plan ahead.

    Annotations the server declares

    • title: Get Cash Flow Forecast
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_chart_of_accountsList account categories (chart of accounts).No findings

    Why it is in this group

    • The name "get_chart_of_accounts" says "get": a word for reading.
    Description, as the server wrote it
    List account categories (chart of accounts). Use when the user asks about their chart of accounts, account codes, or available categories for categorizing transactions.

    Annotations the server declares

    • title: Get Chart Of Accounts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_contactsList contacts (clients, suppliers, leads).Reads private dataNo findings

    Why it is in this group

    • The name "get_contacts" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_contacts" says "get" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "list" and "contact": it reads contacts.
    Description, as the server wrote it
    List contacts (clients, suppliers, leads). Use when user asks about customers, suppliers, or contacts.

    Annotations the server declares

    • title: Get Contacts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_deadlinesGet upcoming tax and filing deadlines.No findings

    Why it is in this group

    • The name "get_deadlines" says "get": a word for reading.
    Description, as the server wrote it
    Get upcoming tax and filing deadlines. Each carries support (files, prepares, workpaper, reminder_only, or null for a payment) and support_note: what AccountsOS does for it. reminder_only means AccountsOS does not produce the form.

    Annotations the server declares

    • title: Get Deadlines
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_dividendsList dividend records.No findings

    Why it is in this group

    • The name "get_dividends" says "get": a word for reading.
    Description, as the server wrote it
    List dividend records. Use when user asks about dividends paid, dividend history, or shareholder payments.

    Annotations the server declares

    • title: Get Dividends
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_dla_balanceGet the Director's Loan Account (DLA) balance and recent transactions.No findings

    Why it is in this group

    • The name "get_dla_balance" says "get": a word for reading.
    Description, as the server wrote it
    Get the Director's Loan Account (DLA) balance and recent transactions. Shows if director owes company or vice versa, with section 455 tax warnings.

    Annotations the server declares

    • title: Get Dla Balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_estimatesGet estimates/quotes sent to clients.No findings

    Why it is in this group

    • The name "get_estimates" says "get": a word for reading.
    Description, as the server wrote it
    Get estimates/quotes sent to clients.

    Annotations the server declares

    • title: Get Estimates
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_expense_claimsGet expense claims and reimbursement requests.No findings

    Why it is in this group

    • The name "get_expense_claims" says "get": a word for reading.
    Description, as the server wrote it
    Get expense claims and reimbursement requests.

    Annotations the server declares

    • title: Get Expense Claims
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_expensesList expense claims.No findings

    Why it is in this group

    • The name "get_expenses" says "get": a word for reading.
    Description, as the server wrote it
    List expense claims. Use when the user asks about expenses, expense claims, reimbursements, or receipts they have submitted.

    Annotations the server declares

    • title: Get Expenses
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_filed_accounts_historyThe year-by-year figures from the accounts this company has filed at Companies House, newest first: balance sheet lines (fixed assets, current assets, creditors, net assets, capita…No findings

    Why it is in this group

    • The name "get_filed_accounts_history" says "get": a word for reading.
    Description, as the server wrote it
    The year-by-year figures from the accounts this company has filed at Companies House, newest first: balance sheet lines (fixed assets, current assets, creditors, net assets, capital and reserves), average employees, turnover and profit after tax where the filing includes a profit and loss, and the movement in reserves against the previous year (profit after tax less dividends). Use when the user asks how last year or an earlier year went, how the business has grown, what was filed, or wants past figures beside the current books. These are the registry's snapshots, not the ledger: say "as filed" and never blend them with live ledger figures. A micro-entity filing has no turnover or profit; say so rather than treating a null as zero.

    Annotations the server declares

    • title: Get Filed Accounts History
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_financial_snapshotGet the headline money figures in one call: cash, what the company is owed (open invoices), what it owes (open bills), and net profit this month, the EXACT numbers on the user's Ho…No findings

    Why it is in this group

    • The name "get_financial_snapshot" says "get": a word for reading.
    Description, as the server wrote it
    Get the headline money figures in one call: cash, what the company is owed (open invoices), what it owes (open bills), and net profit this month, the EXACT numbers on the user's Home dashboard. Use for "how am I doing", "how much am I owed", "what do I owe", "what's my position", a quick business health check, or any quick headline-figure question. For how a past month went, use get_profit_and_loss for that month. For invoice/bill line-level detail use get_invoices/get_bills; for ageing use get_aged_debtors/get_aged_creditors.

    Annotations the server declares

    • title: Get Financial Snapshot
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_fixed_assetsList fixed assets on the register with cost, net book value, monthly depreciation and status.No findings

    Why it is in this group

    • The name "get_fixed_assets" says "get": a word for reading.
    Description, as the server wrote it
    List fixed assets on the register with cost, net book value, monthly depreciation and status. Use when the user asks about their asset register, depreciation schedules, NBV, or capital items tracked per asset. Filter by active, disposed, or all.

    Annotations the server declares

    • title: Get Fixed Assets
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_fx_ratesExchange rates: the closing rate for a currency pair on a date, or a series over a range.Reads text others writeNo findings

    Why it is in this group

    • The name "get_fx_rates" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Exchange rates: the closing rate for a currency pair on a date, or a series over a range. Use when the user asks for an exchange rate, FX, a currency conversion, what the euro to dirham or pound to dollar rate is, what a currency move cost us, or whether it is cheaper to buy in one currency or another. With one date it returns that day's closing rate. With a range of 62 days or less it returns the daily closing series and the percentage change. Over 62 days it returns monthly averages (up to 36 months). Read-only, needs no company data. Quote rates from the result only.

    Annotations the server declares

    • title: Get Fx Rates
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_gifi_statusCanada: is my GIFI ready for the T2, which accounts are not mapped or need review, and do the balance checks pass.Reads text others writeNo findings

    Why it is in this group

    • The name "get_gifi_status" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "review": it reads comments, which other people can write.
    Description, as the server wrote it
    Canada: is my GIFI ready for the T2, which accounts are not mapped or need review, and do the balance checks pass. 'is my GIFI ready', 'GIFI mapping', 'T2 schedule 100 / 125'. Maps any new accounts first. AccountsOS prepares the GIFI trial balance for the accountant's T2 software, it does not prepare or file the T2.

    Annotations the server declares

    • title: Get Gifi Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_goalsGet active business/financial goals and their progress.No findings

    Why it is in this group

    • The name "get_goals" says "get": a word for reading.
    Description, as the server wrote it
    Get active business/financial goals and their progress. Use when user asks about their goals, targets, or how they are tracking against objectives.

    Annotations the server declares

    • title: Get Goals
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_gov_guidanceSearch official GOV.UK tax and business guidance.No findings

    Why it is in this group

    • The name "get_gov_guidance" says "get": a word for reading.
    Description, as the server wrote it
    Search official GOV.UK tax and business guidance. Use when the user asks "what does HMRC say about X?", asks about tax rules, filing requirements, or wants to know the official guidance on a topic like VAT, corporation tax, dividends, or director responsibilities.

    Annotations the server declares

    • title: Get Gov Guidance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_gst_hst_returnCanada: prepare the GST/HST return (GST34) for a period: 'GST return', 'HST return', 'GST report', 'what do I owe CRA', 'my Q3 GST'.No findings

    Why it is in this group

    • The name "get_gst_hst_return" says "get": a word for reading.
    Description, as the server wrote it
    Canada: prepare the GST/HST return (GST34) for a period: 'GST return', 'HST return', 'GST report', 'what do I owe CRA', 'my Q3 GST'. Returns every line (101 to 113C), the balance owing or refund, the due date and any warnings. Defaults to the last completed reporting period. Always use this tool for a Canadian GST/HST figure; never add up a return yourself. AccountsOS prepares the return, it does not file it with CRA.

    Annotations the server declares

    • title: Get Gst Hst Return
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_hmrc_vat_liabilitiesRead the company's VAT liabilities (amounts HMRC says are owed and when they are due) directly from HMRC MTD.Reads text others writeNo findings

    Why it is in this group

    • The name "get_hmrc_vat_liabilities" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Read the company's VAT liabilities (amounts HMRC says are owed and when they are due) directly from HMRC MTD. Use when the user asks "how much VAT do I owe HMRC", "what's outstanding on my VAT account". Requires HMRC MTD connected.

    Annotations the server declares

    • title: Get Hmrc Vat Liabilities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_hmrc_vat_obligationsRead the company's VAT obligations (the returns HMRC expects, with their period keys, start/end dates, due dates, and whether they are Open or Fulfilled) directly from HMRC MTD.Reads text others writeNo findings

    Why it is in this group

    • The name "get_hmrc_vat_obligations" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Read the company's VAT obligations (the returns HMRC expects, with their period keys, start/end dates, due dates, and whether they are Open or Fulfilled) directly from HMRC MTD. Use when the user asks "what does HMRC say I owe a return for", "when is my next VAT return due according to HMRC", or to reconcile our periods against HMRC's record. Requires HMRC MTD connected.

    Annotations the server declares

    • title: Get Hmrc Vat Obligations
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_hmrc_vat_paymentsRead the VAT payments HMRC has received on the company's account directly from HMRC MTD.Reads text others writeNo findings

    Why it is in this group

    • The name "get_hmrc_vat_payments" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Read the VAT payments HMRC has received on the company's account directly from HMRC MTD. Use when the user asks "has HMRC received my VAT payment", "what VAT have I paid". Requires HMRC MTD connected.

    Annotations the server declares

    • title: Get Hmrc Vat Payments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_income_by_currencyCurrency-split income (or expense) totals in ONE compact call: face totals grouped by each transaction currency (e.g.No findings

    Why it is in this group

    • The name "get_income_by_currency" says "get": a word for reading.
    Description, as the server wrote it
    Currency-split income (or expense) totals in ONE compact call: face totals grouped by each transaction currency (e.g. EUR face vs GBP face) PLUS the company functional-currency total for the same set. Use when the user asks "total income in EUR and in GBP", "how much came in in euros vs pounds", "income by currency", or wants face vs converted figures before an FX check. Do NOT page get_transactions to sum — this returns aggregates only (no transaction dump). Defaults to money-in (income); pass direction "out" for spend. Covers bank lines only: invoices and ledger revenue are NOT included, and a company with no bank account returns nothing here, which is not "no income". For income as the books record it, use get_profit_and_loss.

    Annotations the server declares

    • title: Get Income By Currency
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_incoming_messagesRead the company's Incoming inbox: messages that arrived by email, WhatsApp, Slack or Telegram (sender, subject, preview, attachments and their processing status), plus a count of …Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_incoming_messages" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_incoming_messages" says "get" and "message": it reads messages.
    • private-dataThe description's first sentence says "read" and "inbox": it reads mail.
    • untrusted-inputThe name "get_incoming_messages" says "get" and "message": it reads messages, which other people can write.
    • untrusted-inputThe description's first sentence says "read" and "inbox": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Read the company's Incoming inbox: messages that arrived by email, WhatsApp, Slack or Telegram (sender, subject, preview, attachments and their processing status), plus a count of documents still processing or failed. Use whenever the user asks what is waiting in Incoming, whether anything came in, about an email or message someone sent, or before saying Incoming is clear. Documents alone are not the whole inbox: a waiting email with a statement attached is a message.

    Annotations the server declares

    • title: Get Incoming Messages
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_integration_statusSee every integration for this company and user in one call: what's connected (banks, HMRC MTD, Stripe, Deel, Gmail, WhatsApp, Telegram, Slack, Xero and the rest), what's available…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_integration_status" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "message": it reads messages.
    • untrusted-inputThe description's first sentence says "message": it reads messages, which other people can write.
    Description, as the server wrote it
    See every integration for this company and user in one call: what's connected (banks, HMRC MTD, Stripe, Deel, Gmail, WhatsApp, Telegram, Slack, Xero and the rest), what's available but not connected, and whether data is actually FLOWING through each connected feed (flowing / quiet / error, last event, 7-day event count, error message). Use when the user asks about connections or channels, when something they need for the task at hand is not connected, or when their data looks stale or missing — a dead feed is often the real cause. To OFFER to set one up, end your message with [[connect: provider_id]] on its own line (use the provider id from this tool's result, e.g. [[connect: slack]] or [[connect: mercury]]): it renders a card. OAuth providers start sign-in; API-key providers (Mercury, Stripe, Wise, Qonto, Airwallex, Starling) collect the key on a masked in-thread field. Offer at most one connection per message. Never ask the user to paste an API key into the chat box — the card collects it, and the key is never returned to you (you only see connected true/false).

    Annotations the server declares

    • title: Get Integration Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_invoicesGet invoices the user has raised, with summary stats on outstanding and overdue amounts.No findings

    Why it is in this group

    • The name "get_invoices" says "get": a word for reading.
    Description, as the server wrote it
    Get invoices the user has raised, with summary stats on outstanding and overdue amounts. Use when user asks about invoices, outstanding payments, or money owed to them.

    Annotations the server declares

    • title: Get Invoices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_journal_entriesGet General Ledger journal entries.No findings

    Why it is in this group

    • The name "get_journal_entries" says "get": a word for reading.
    Description, as the server wrote it
    Get General Ledger journal entries. Double-entry accounting records.

    Annotations the server declares

    • title: Get Journal Entries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_month_closeCheck how 'closed' a month's books are.No findings

    Why it is in this group

    • The name "get_month_close" says "get": a word for reading.
    Description, as the server wrote it
    Check how 'closed' a month's books are. Returns a close-confidence percentage (share of the month's transactions that are categorised AND reconciled) plus exactly what still needs the founder — uncategorised transactions, categorisations you're unsure about, unreconciled lines, payments missing a receipt, and open VAT. Use when the user asks "is my month done?", "close my books", "what's left for May?", "month-end", or any close/period-end question. Defaults to the last complete month. Surface the returned message; offer to help clear each exception.

    Annotations the server declares

    • title: Get Month Close
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_opportunityGet detailed information about a specific pipeline opportunity/deal, including notes and activity history.Reads private dataNo findings

    Why it is in this group

    • The name "get_opportunity" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "get" and "note": it reads notes.
    Description, as the server wrote it
    Get detailed information about a specific pipeline opportunity/deal, including notes and activity history.

    Annotations the server declares

    • title: Get Opportunity
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_payroll_summaryGet year-to-date payroll figures, last run date, and next payment due.No findings

    Why it is in this group

    • The name "get_payroll_summary" says "get": a word for reading.
    Description, as the server wrote it
    Get year-to-date payroll figures, last run date, and next payment due. Use when user asks about payroll costs, total salary spend, or when the next payroll run is. For a salary, drawings or "what have I paid myself" question read list_employees (the configured salary), this (whether payroll has run) and get_transactions (what left the bank) together: a configured salary with no payroll runs means nothing was paid through payroll, so say that and show what the bank shows.

    Annotations the server declares

    • title: Get Payroll Summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_profit_and_lossGet Profit and Loss (income statement) report for a period.No findings

    Why it is in this group

    • The name "get_profit_and_loss" says "get": a word for reading.
    Description, as the server wrote it
    Get Profit and Loss (income statement) report for a period.

    Annotations the server declares

    • title: Get Profit And Loss
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_pnlGet a deal/project's mini P&L: income, costs by category, and net margin, computed from bank transactions linked to it, plus invoice/bill/expense-claim commitment summaries.No findings

    Why it is in this group

    • The name "get_project_pnl" says "get": a word for reading.
    Description, as the server wrote it
    Get a deal/project's mini P&L: income, costs by category, and net margin, computed from bank transactions linked to it, plus invoice/bill/expense-claim commitment summaries. Use for "how is project X doing", "project profit", "mini P&L for a project", and for the final report when a project completes. Pass project_id if known, or project_name to resolve it by name.

    Annotations the server declares

    • title: Get Project Pnl
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_projectsList projects (pipeline, active, completed).No findings

    Why it is in this group

    • The name "get_projects" says "get": a word for reading.
    Description, as the server wrote it
    List projects (pipeline, active, completed). Use when the user asks about their projects, deals, or pipeline.

    Annotations the server declares

    • title: Get Projects
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_qfzp_statusGet the active company's QFZP (Qualifying Free Zone Person) status for UAE Corporate Tax.No findings

    Why it is in this group

    • The name "get_qfzp_status" says "get": a word for reading.
    Description, as the server wrote it
    Get the active company's QFZP (Qualifying Free Zone Person) status for UAE Corporate Tax. Returns the qualifying/non-qualifying income split, de minimis status (ok / warning / breach), free zone name, substance declaration state, and per-zone smart hints (e.g. audited accounts requirement, designated zone VAT, trade license expiry). Returns `applicable: false` for UK or UAE mainland companies. Use when the user asks about QFZP status, whether they still qualify, their de minimis headroom, or whether they'll owe 9% CT.

    Annotations the server declares

    • title: Get Qfzp Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_reconciliation_statusReconciliation per bank account: every uploaded statement with its own opening and closing balance as printed, the books' balance at its end date, the difference and whether they a…No findings

    Why it is in this group

    • The name "get_reconciliation_status" says "get": a word for reading.
    Description, as the server wrote it
    Reconciliation per bank account: every uploaded statement with its own opening and closing balance as printed, the books' balance at its end date, the difference and whether they agree (month by month), plus the unreconciled transaction count and the newest unreconciled lines. Use it for "does the bank agree?", "what was the closing balance in March?", before quoting any reconciliation difference, when the user asks to check the books against the bank statements, or about reconciliation progress. This tool only reads: to actually reconcile ("reconcile what you can", "match the receipts", "reconcile my bank") call auto_match_receipts, which does the matching. Never say everything is reconciled without a result from this tool, get_attention or auto_match_receipts. Never say you cannot read balances off statements. Each statement row carries period_start, period_end, opening_balance, closing_balance, book_balance_at_end, difference, agrees and document_id. Pass bank_account_id to look at one account. It also gives the link to download the reconciliation report (PDF or Excel), the report to give an accountant who asks for one.

    Annotations the server declares

    • title: Get Reconciliation Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_recurring_invoicesList recurring invoice templates.No findings

    Why it is in this group

    • The name "get_recurring_invoices" says "get": a word for reading.
    Description, as the server wrote it
    List recurring invoice templates. Use when user asks about recurring invoices, scheduled invoices, or subscription billing.

    Annotations the server declares

    • title: Get Recurring Invoices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_risk_flagsList the entries Finn flagged for a second look before they reach a VAT return: suspect or duplicate receipts and invoices, VAT added to a zero-rated purchase, VAT that does not fi…No findings

    Why it is in this group

    • The name "get_risk_flags" says "get": a word for reading.
    Description, as the server wrote it
    List the entries Finn flagged for a second look before they reach a VAT return: suspect or duplicate receipts and invoices, VAT added to a zero-rated purchase, VAT that does not fit the total, personal-looking purchases and amounts out of line with a supplier. Use when the user asks about flagged, suspect, duplicate or odd entries, or when get_attention shows entries needing a second look. Each flag has entity_type, entity_id, label, severity, title and detail.

    Annotations the server declares

    • title: Get Risk Flags
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_statement_checksEach imported bank statement against the books: the statement's period, its opening and closing balance as printed, the book balance on the statement's end date, the difference and…No findings

    Why it is in this group

    • The name "get_statement_checks" says "get": a word for reading.
    Description, as the server wrote it
    Each imported bank statement against the books: the statement's period, its opening and closing balance as printed, the book balance on the statement's end date, the difference and whether they agree. Use this to answer 'does the bank agree?', 'what was the closing balance in March?', or before quoting any reconciliation difference. Optional bank_account_id.

    Annotations the server declares

    • title: Get Statement Checks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_tasksGet tasks and to-dos for the company.No findings

    Why it is in this group

    • The name "get_tasks" says "get": a word for reading.
    Description, as the server wrote it
    Get tasks and to-dos for the company.

    Annotations the server declares

    • title: Get Tasks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_tax_factsLook up current UK tax rates, thresholds and allowances (income_tax, national_insurance, corporation_tax, dividends, capital_allowances, vat, pensions, mileage, self_assessment, ho…No findings

    Why it is in this group

    • The name "get_tax_facts" says "get": a word for reading.
    Description, as the server wrote it
    Look up current UK tax rates, thresholds and allowances (income_tax, national_insurance, corporation_tax, dividends, capital_allowances, vat, pensions, mileage, self_assessment, home_office, mtd). Returns the figure plus its source.

    Annotations the server declares

    • title: Get Tax Facts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_transactionsGet transactions for the company with optional filters.No findings

    Why it is in this group

    • The name "get_transactions" says "get": a word for reading.
    Description, as the server wrote it
    Get transactions for the company with optional filters. Returns currency, amount_gbp and exchange_rate. A row with expected_income: true is an uploaded sales invoice still waiting to be paid, NOT money received: leave it out of any cash, income received or bank balance figure. For currency-split income totals prefer get_income_by_currency.

    Annotations the server declares

    • title: Get Transactions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_trial_balanceGet Trial Balance showing all account balances.No findings

    Why it is in this group

    • The name "get_trial_balance" says "get": a word for reading.
    Description, as the server wrote it
    Get Trial Balance showing all account balances.

    Annotations the server declares

    • title: Get Trial Balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_vat_periodsList the company's VAT return periods and their status (open, locked, submitted, failed, overdue), with the net VAT due, due date, and HMRC receipt for any submitted ones.No findings

    Why it is in this group

    • The name "get_vat_periods" says "get": a word for reading.
    Description, as the server wrote it
    List the company's VAT return periods and their status (open, locked, submitted, failed, overdue), with the net VAT due, due date, and HMRC receipt for any submitted ones. Use this FIRST when the user asks about VAT returns, "which quarters are outstanding", "have I filed Q1", or before calculating/locking/submitting — it gives you the period_id you need for the other VAT tools.

    Annotations the server declares

    • title: Get Vat Periods
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_vat_summaryGet VAT summary for a calendar quarter, or for any VAT period with start_date and end_dateReads private dataNo findings

    Why it is in this group

    • The name "get_vat_summary" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "get" and "calendar": it reads calendars.
    Description, as the server wrote it
    Get VAT summary for a calendar quarter, or for any VAT period with start_date and end_date

    Annotations the server declares

    • title: Get Vat Summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_year_on_yearHow this year compares with last year and the years before: are we up or down on last year, revenue and profit trend, margin, cash at year end, year on year, same time last year, h…No findings

    Why it is in this group

    • The name "get_year_on_year" says "get": a word for reading.
    Description, as the server wrote it
    How this year compares with last year and the years before: are we up or down on last year, revenue and profit trend, margin, cash at year end, year on year, same time last year, how did last year go. Returns the completed years (from the ledger or the filed accounts), the current year to date against the same months last year, and Finn's read of the trend. Use it before any 'how are we doing', planning or forecasting answer when the company has history.

    Annotations the server declares

    • title: Get Year On Year
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_categoriesList available transaction categories for categorizationNo findings

    Why it is in this group

    • The name "list_categories" says "list": a word for reading.
    Description, as the server wrote it
    List available transaction categories for categorization

    Annotations the server declares

    • title: List Categories
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_companiesList the companies this AccountsOS account can see (for an accountancy practice, its clients), with the default one marked.No findings

    Why it is in this group

    • The name "list_companies" says "list": a word for reading.
    Description, as the server wrote it
    List the companies this AccountsOS account can see (for an accountancy practice, its clients), with the default one marked. Call this first when the user has more than one company, then pass `company` to the other tools.

    Annotations the server declares

    • title: List Companies
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_employeesList active employees for the company.No findings

    Why it is in this group

    • The name "list_employees" says "list": a word for reading.
    Description, as the server wrote it
    List active employees for the company. Use when the user asks about their employees, staff, team members, or headcount.

    Annotations the server declares

    • title: List Employees
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_opportunitiesList sales pipeline opportunities/deals.No findings

    Why it is in this group

    • The name "list_opportunities" says "list": a word for reading.
    Description, as the server wrote it
    List sales pipeline opportunities/deals. Shows prospects, their stage, value, and next actions.

    Annotations the server declares

    • title: List Opportunities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_tax_rulesList all available verified tax/accounting rule keys for the active company's country (every live country has a library), optionally filtered by category.No findings

    Why it is in this group

    • The name "list_tax_rules" says "list": a word for reading.
    Description, as the server wrote it
    List all available verified tax/accounting rule keys for the active company's country (every live country has a library), optionally filtered by category. Use this when you need to find the right key for lookup_tax_rule.

    Annotations the server declares

    • title: List Tax Rules
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • lookup_companyLook up a company on its official register: search by name to find candidates, or fetch a single company by its number to get the full public record.Reads text others writeNo findings

    Why it is in this group

    • The name "lookup_company" says "lookup": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Look up a company on its official register: search by name to find candidates, or fetch a single company by its number to get the full public record. UK companies come from Companies House (registered name, number, status, incorporation date, registered office address, SIC codes, directors/officers, and filing deadlines). Irish companies come from the CRO (registered name, CRO number, status, company type, incorporation date, registered address and the annual return date); a CRO number is digits only. Use this during onboarding to find and confirm the user's company ("is this your company?"). Read-only: it does NOT save anything; use link_company to save the confirmed company. If the result says the lookup is not available, tell the user plainly and take their company details directly with update_company. French companies come from the Annuaire des Entreprises (registered name, SIREN, status, legal form, incorporation date, registered address, activity code and officers); search by name or by SIREN (9 digits). Other countries have no register lookup; ask the user for their company details directly.

    Annotations the server declares

    • title: Lookup Company
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • lookup_tax_ruleLook up a verified tax or accounting rule by its key.1 finding

    Why it is in this group

    • The name "lookup_tax_rule" says "lookup": a word for reading.

    Findings

    • High

      The description contains "never tell a user", an instruction to keep something from the user.

      Matched text

      description: "...rsonal-income-tax-slabs-new-regime), so never tell a user you only know UK rules. Use this for AN..."

      What this check looks for
    Description, as the server wrote it
    Look up a verified tax or accounting rule by its key. The system automatically routes to the active company's own country library: every live country has one (e.g. India: gst-rate-slabs, personal-income-tax-slabs-new-regime), so never tell a user you only know UK rules. Use this for ANY question about specific deadlines, thresholds, notice periods, regulatory dates, or rules where being wrong would mislead the user. UK examples: vat-registration-threshold, ct-filing-deadline, mtd-itsa-mandatory-50k, dividend-allowance-2026-27, mileage-rates-2026-27. UAE examples: ct-rates, ct-filing-deadline, vat-rate, free-zone-qfzp, no-personal-income-tax. Returns the exact answer + an official source URL you MUST cite in your reply, and where the rule has a validity period, the dates it applies between. ALWAYS prefer this over stating a rule from memory. Apply the rule to the user's facts: when the answer turns on a fact only the user knows (when goods were delivered, when work was finished, when money arrived), ask for that fact, never for the conclusion (ask "when did you deliver it?", not "does it belong in Q3 or October?"). Once the user gives the fact, that is the fact: state the result the rule gives for it, with the source, and do not add that you cannot check it or that their accountant should confirm it. Point to an accountant only when the rule itself leaves the question open. For a question about a PAST period, or a FUTURE one (next year's rates where a budget has already set them), pass as_of so you get the rule for that date rather than the current one. If you do not know the exact key, call list_tax_rules first.

    Annotations the server declares

    • title: Lookup Tax Rule
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • read_company_wikiRead a page from this company's private memory wiki — Finn's long-term per-company notes (preferences, decisions, people, recurring Q&A).Reads private dataNo findings

    Why it is in this group

    • The name "read_company_wiki" says "read": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "read" and "note": it reads notes.
    Description, as the server wrote it
    Read a page from this company's private memory wiki — Finn's long-term per-company notes (preferences, decisions, people, recurring Q&A). Call with slug="index" first to list available pages.

    Annotations the server declares

    • title: Read Company Wiki
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • read_wikiRead a page from Finn's knowledge base — compiled UK (and US) tax and accounting guidance: rules, cross-references, edge cases, plain-English advice for company directors.No findings

    Why it is in this group

    • The name "read_wiki" says "read": a word for reading.
    Description, as the server wrote it
    Read a page from Finn's knowledge base — compiled UK (and US) tax and accounting guidance: rules, cross-references, edge cases, plain-English advice for company directors. Call with page="index" first to list all available pages.

    Annotations the server declares

    • title: Read Wiki
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_company_wikiSearch this company's private memory wiki by keyword.No findings

    Why it is in this group

    • The name "search_company_wiki" says "search": a word for reading.
    Description, as the server wrote it
    Search this company's private memory wiki by keyword. Returns matching page slugs, titles and excerpts.

    Annotations the server declares

    • title: Search Company Wiki
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_documentsSearch uploaded documents (receipts, invoices).Reads private dataNo findings

    Why it is in this group

    • The name "search_documents" says "search": a word for reading.

    What it can reach

    • private-dataThe name "search_documents" says "search" and "document": it reads documents.
    • private-dataThe description's first sentence says "search" and "document": it reads documents.
    Description, as the server wrote it
    Search uploaded documents (receipts, invoices). Can also list documents by status without a query — status ["pending", "error"] is the Incoming queue. Called with no arguments it lists the newest uploads (up to 25).

    Annotations the server declares

    • title: Search Documents
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_tax_factsSearch UK tax knowledge by keyword when unsure which category/item to look up.No findings

    Why it is in this group

    • The name "search_tax_facts" says "search": a word for reading.
    Description, as the server wrote it
    Search UK tax knowledge by keyword when unsure which category/item to look up. Returns matching tax facts across all categories.

    Annotations the server declares

    • title: Search Tax Facts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_wikiSearch Finn's knowledge base by keyword.No findings

    Why it is in this group

    • The name "search_wiki" says "search": a word for reading.
    Description, as the server wrote it
    Search Finn's knowledge base by keyword. Returns matching page names and excerpts. Use when unsure which page covers a topic.

    Annotations the server declares

    • title: Search Wiki
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 high2 warn
  • The description contains "never tell a user", an instruction to keep something from the user.

    Matched text

    description: "...rsonal-income-tax-slabs-new-regime), so never tell a user you only know UK rules. Use this for AN..."

    What this check looks for
  • The server marks "deel_calculate_take_home_pay" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "deel_calculate_take_home_pay" says "pay": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "month_close_summary" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "month_close_summary" says "close": a word for a change.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.3.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http accountsos https://accounts-os.com/api/mcp/plugin
claude mcp add --transport http accountsos https://accounts-os.com/api/mcp/plugin

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__accountsos__list_companies",
      "mcp__accountsos__get_transactions",
      "mcp__accountsos__get_balance",
      "mcp__accountsos__get_deadlines",
      "mcp__accountsos__get_vat_summary",
      "mcp__accountsos__search_documents",
      "mcp__accountsos__read_wiki",
      "mcp__accountsos__search_wiki",
      "mcp__accountsos__read_company_wiki",
      "mcp__accountsos__search_company_wiki",
      "mcp__accountsos__get_tax_facts",
      "mcp__accountsos__search_tax_facts",
      "mcp__accountsos__list_categories",
      "mcp__accountsos__get_dla_balance",
      "mcp__accountsos__get_invoices",
      "mcp__accountsos__get_contacts",
      "mcp__accountsos__get_bills",
      "mcp__accountsos__get_estimates",
      "mcp__accountsos__get_profit_and_loss",
      "mcp__accountsos__get_balance_sheet",
      "mcp__accountsos__get_trial_balance",
      "mcp__accountsos__get_tasks",
      "mcp__accountsos__get_expense_claims",
      "mcp__accountsos__get_bank_accounts",
      "mcp__accountsos__get_journal_entries",
      "mcp__accountsos__list_opportunities",
      "mcp__accountsos__get_opportunity",
      "mcp__accountsos__get_income_by_currency",
      "mcp__accountsos__get_financial_snapshot",
      "mcp__accountsos__get_integration_status",
      "mcp__accountsos__get_gst_hst_return",
      "mcp__accountsos__get_gifi_status",
      "mcp__accountsos__get_vat_periods",
      "mcp__accountsos__get_hmrc_vat_obligations",
      "mcp__accountsos__get_hmrc_vat_liabilities",
      "mcp__accountsos__get_hmrc_vat_payments",
      "mcp__accountsos__get_incoming_messages",
      "mcp__accountsos__get_gov_guidance",
      "mcp__accountsos__get_aged_debtors",
      "mcp__accountsos__get_aged_creditors",
      "mcp__accountsos__get_goals",
      "mcp__accountsos__list_employees",
      "mcp__accountsos__get_payroll_summary",
      "mcp__accountsos__get_projects",
      "mcp__accountsos__get_project_pnl",
      "mcp__accountsos__get_chart_of_accounts",
      "mcp__accountsos__get_filed_accounts_history",
      "mcp__accountsos__get_year_on_year",
      "mcp__accountsos__get_budget_vs_actual",
      "mcp__accountsos__get_fx_rates",
      "mcp__accountsos__get_fixed_assets",
      "mcp__accountsos__get_capital_allowance_hint",
      "mcp__accountsos__get_reconciliation_status",
      "mcp__accountsos__get_cash_flow_forecast",
      "mcp__accountsos__get_dividends",
      "mcp__accountsos__get_recurring_invoices",
      "mcp__accountsos__deel_list_contracts",
      "mcp__accountsos__deel_get_invoices",
      "mcp__accountsos__deel_get_payment_receipts",
      "mcp__accountsos__deel_get_people",
      "mcp__accountsos__get_document_links",
      "mcp__accountsos__find_related_documents",
      "mcp__accountsos__get_accounts_status",
      "mcp__accountsos__get_attention",
      "mcp__accountsos__get_risk_flags",
      "mcp__accountsos__lookup_company",
      "mcp__accountsos__find_duplicate_bank_accounts",
      "mcp__accountsos__lookup_tax_rule",
      "mcp__accountsos__get_qfzp_status",
      "mcp__accountsos__list_tax_rules",
      "mcp__accountsos__get_month_close",
      "mcp__accountsos__calculate_vat_period",
      "mcp__accountsos__get_expenses",
      "mcp__accountsos__get_statement_checks"
    ],
    "ask": [
      "mcp__accountsos__link_company",
      "mcp__accountsos__add_document",
      "mcp__accountsos__check_vat_number",
      "mcp__accountsos__deel_calculate_employment_cost",
      "mcp__accountsos__deel_calculate_take_home_pay",
      "mcp__accountsos__recall_conversations",
      "mcp__accountsos__month_close_summary"
    ],
    "deny": [
      "mcp__accountsos__update_company"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as accountsos. Review it before you use it.

Capability tags behind 25 rules
  • mcp__accountsos__link_company untrusted-input
  • mcp__accountsos__get_vat_summary private-data
  • mcp__accountsos__search_documents private-data
  • mcp__accountsos__read_company_wiki private-data
  • mcp__accountsos__get_contacts private-data
  • mcp__accountsos__get_opportunity private-data
  • mcp__accountsos__get_integration_status private-data, untrusted-input
  • mcp__accountsos__get_gifi_status untrusted-input
  • mcp__accountsos__get_hmrc_vat_obligations untrusted-input
  • mcp__accountsos__get_hmrc_vat_liabilities untrusted-input
  • mcp__accountsos__get_hmrc_vat_payments untrusted-input
  • mcp__accountsos__check_vat_number untrusted-input
  • mcp__accountsos__get_incoming_messages private-data, untrusted-input
  • mcp__accountsos__get_aged_debtors private-data
  • mcp__accountsos__get_fx_rates untrusted-input
  • mcp__accountsos__deel_list_contracts untrusted-input
  • mcp__accountsos__deel_get_invoices untrusted-input
  • mcp__accountsos__deel_get_payment_receipts untrusted-input
  • mcp__accountsos__deel_calculate_employment_cost untrusted-input
  • mcp__accountsos__deel_calculate_take_home_pay untrusted-input
  • mcp__accountsos__deel_get_people untrusted-input
  • mcp__accountsos__get_document_links private-data
  • mcp__accountsos__find_related_documents private-data
  • mcp__accountsos__get_attention private-data
  • mcp__accountsos__lookup_company untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.github.paulgosnell/accountsos-mcp/verify?hash=ac88afcd45610567d72ddb61c15ee7e70d77888593332692352a19059e48dfb0" | jq -e '.changed == false'

Pinned hash ac88afcd4561, from Oct 28, 2026, 12:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.github.paulgosnell/accountsos-mcp/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.github.paulgosnell/accountsos-mcp
[![anlyon.dev](https://anlyon.dev/badge/io.github.paulgosnell/accountsos-mcp.svg)](https://anlyon.dev/servers/io.github.paulgosnell/accountsos-mcp)

Source: MCP Registry · repository. Synced Oct 28, 2026, 12:17 UTC.