AccountsOS MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACCOUNTSOS_API_KEY | Yes | Your AccountsOS API key | |
| ACCOUNTSOS_BASE_URL | No | Override API base URL (default: https://accounts-os.com) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_transactionsA | Get transactions for the company with optional filters. Returns currency, amount_gbp and exchange_rate. For currency-split income totals prefer get_income_by_currency. |
| get_balanceB | Get current account balance |
| get_deadlinesB | Get upcoming tax and filing deadlines |
| get_vat_summaryB | Get VAT summary for a quarter |
| categorize_transactionB | Suggest a category for a transaction |
| search_documentsA | Search uploaded documents (receipts, invoices). Can also list documents by status without a query — status ["pending", "error"] is the Incoming queue. |
| read_wikiA | 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. |
| search_wikiA | Search Finn's knowledge base by keyword. Returns matching page names and excerpts. Use when unsure which page covers a topic. |
| read_company_wikiA | 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. |
| search_company_wikiA | Search this company's private memory wiki by keyword. Returns matching page slugs, titles and excerpts. |
| get_tax_factsA | 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. |
| search_tax_factsA | Search UK tax knowledge by keyword when unsure which category/item to look up. Returns matching tax facts across all categories. |
| upload_documentB | Upload a document (receipt, invoice, bank statement) for processing. The document will be analyzed by AI to extract data. |
| create_transactionC | Create a new transaction manually |
| update_transactionB | Update a transaction (category, notes, reconciliation status) |
| create_deadlineB | Create a new tax or filing deadline |
| list_categoriesB | List available transaction categories for categorization |
| get_dla_balanceA | Get the Director's Loan Account (DLA) balance and recent transactions. Shows if director owes company or vice versa, with section 455 tax warnings. |
| get_invoicesA | 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. |
| get_contactsA | List contacts (clients, suppliers, leads). Use when user asks about customers, suppliers, or contacts. |
| create_contactA | Create a new contact (client, supplier, lead). |
| get_billsA | Get supplier bills/invoices owed by the company. Shows what you owe to suppliers. |
| create_billB | Record a supplier bill/invoice that the company owes. |
| pay_billB | Record a payment against a bill. |
| get_estimatesB | Get estimates/quotes sent to clients. |
| create_estimateB | Create a new estimate/quote for a client. |
| get_profit_and_lossB | Get Profit and Loss (income statement) report for a period. |
| get_balance_sheetB | Get Balance Sheet report as at a given date. |
| get_trial_balanceB | Get Trial Balance showing all account balances. |
| get_tasksC | Get tasks and to-dos for the company. |
| create_taskB | Create a new task or to-do item. |
| get_expense_claimsB | Get expense claims and reimbursement requests. |
| get_bank_accountsA | List bank accounts connected to the company. |
| get_journal_entriesC | Get General Ledger journal entries. Double-entry accounting records. |
| list_opportunitiesB | List sales pipeline opportunities/deals. Shows prospects, their stage, value, and next actions. |
| get_opportunityA | Get detailed information about a specific pipeline opportunity/deal, including notes and activity history. |
| create_opportunityA | Create a new sales pipeline opportunity/deal. |
| add_opportunity_noteB | Add a note or activity log to a pipeline opportunity. |
| update_opportunity_stageB | Move an opportunity to a different pipeline stage (e.g., from Lead to Proposal). |
| update_projectA | Rename a project/deal, or change its notes, contact, or status. |
| delete_projectA | Delete an empty project/deal. Refuses if transactions, invoices, bills or other records are still linked. |
| get_income_by_currencyA | 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. |
| get_financial_snapshotA | 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", or any quick headline-figure question. For invoice/bill line-level detail use get_invoices/get_bills; for ageing use get_aged_debtors/get_aged_creditors. |
| get_integration_statusA | 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, 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). |
| get_vat_periodsA | 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. |
| calculate_vat_periodA | 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. |
| get_hmrc_vat_obligationsA | 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. |
| get_hmrc_vat_liabilitiesA | 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. |
| get_hmrc_vat_paymentsA | 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. |
| check_vat_numberA | 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. |
| get_gov_guidanceA | 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. |
| get_aged_debtorsA | 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. |
| get_aged_creditorsA | 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. |
| get_goalsA | Get active business/financial goals and their progress. Use when user asks about their goals, targets, or how they are tracking against objectives. |
| list_employeesA | List active employees for the company. Use when the user asks about their employees, staff, team members, or headcount. |
| get_payroll_summaryA | 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. |
| get_projectsA | List projects (pipeline, active, completed). Use when the user asks about their projects, deals, or pipeline. |
| get_project_pnlA | 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. |
| get_expensesA | List expense claims. Use when the user asks about expenses, expense claims, reimbursements, or receipts they have submitted. |
| get_chart_of_accountsA | List account categories (chart of accounts). Use when the user asks about their chart of accounts, account codes, or available categories for categorizing transactions. |
| get_filed_accounts_historyA | 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. |
| get_fixed_assetsA | 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. |
| get_capital_allowance_hintA | 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. |
| get_reconciliation_statusA | Show unreconciled transaction count per bank account. Use when the user asks about reconciliation progress, unreconciled transactions, or bank account status. |
| get_cash_flow_forecastA | 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. |
| month_close_summaryA | 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 — saves several round-trips compared to calling each report tool separately. |
| get_dividendsA | List dividend records. Use when user asks about dividends paid, dividend history, or shareholder payments. |
| get_recurring_invoicesA | List recurring invoice templates. Use when user asks about recurring invoices, scheduled invoices, or subscription billing. |
| deel_list_contractsA | List contracts from the user's Deel account. Use when the user asks about their Deel contracts, contractors, or team members managed through Deel. |
| deel_get_invoicesA | 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. |
| deel_get_payment_receiptsA | Get payment receipts from Deel showing payments made to contractors. Use when the user asks about specific Deel payments or needs payment proof. |
| deel_calculate_employment_costA | 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. |
| deel_calculate_take_home_payA | 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. |
| deel_get_peopleA | List people (contractors and employees) in the user's Deel organization. Use when the user asks about their Deel team, workforce, or contractor list. |
| get_document_linksA | Get all documents linked to an entity (transaction, invoice, bill, estimate, contact, project, expense claim), or all entities linked to a document. Use when user asks "what documents are attached to this invoice?" or "show me what's linked to that receipt". |
| find_related_documentsA | Find documents that might be related to an entity based on amount, vendor, date, and reference matching. Shows both already-linked documents and AI-suggested matches. Use when user asks "are there any receipts for this transaction?" or "find documents related to this invoice". |
| get_accounts_statusA | 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. |
| get_attentionA | 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. |
| lookup_companyA | Look up a UK company on Companies House — search by name to find candidates, or fetch a single company by its number to get the full public record (registered name, number, status, incorporation date, registered office address, SIC codes, directors/officers, and filing deadlines). Use this during onboarding to find and confirm the user's company ("is this your company?") and to see who the directors are. Read-only — it does NOT save anything; use link_company to save the confirmed company. UK only (Companies House); for non-UK companies, ask the user for their details directly. |
| find_duplicate_bank_accountsA | Find manual bank accounts that look like the same real-world account as a live bank feed (Revolut Business, Starling, Wise, Mercury, Qonto, 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. |
| lookup_tax_ruleA | Look up a verified tax or accounting rule by its key. The system automatically routes to the correct country library (UK or UAE) based on the active company. 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. For a question about a PAST period, pass as_of so you get the rule that applied then rather than the current one. If you do not know the exact key, call list_tax_rules first. |
| get_qfzp_statusA | 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 |
| list_tax_rulesA | List all available verified tax/accounting rule keys for the active company's country (UK or UAE), optionally filtered by category. Use this when you need to find the right key for lookup_tax_rule. |
| recall_conversationsA | 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.) |
| get_month_closeA | 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. |
| reopen_month_closeA | Undo a month-end close so the founder can make further changes. Use when the user asks to "reopen", "unlock" or "undo the close" for a month that's already closed. Closing a month doesn't post anything to the ledger, so reopening is a pure status change — no reversal needed. Refuses if a VAT return already submitted to HMRC covers the same period (editing filed data isn't safe; that needs a VAT adjustment instead). Confirmation-gated. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Company | Company details and settings |
| Recent Transactions | Most recent 50 transactions |
| Documents | Uploaded receipts and invoices |
| Deadlines | Upcoming tax and filing deadlines |
TDQS
Scored across 86 tools
The tool set is large and includes several pairs that overlap in purpose, such as get_expenses vs get_expense_claims, get_projects vs list_opportunities/get_opportunity, and get_document_links vs find_related_documents. However, the detailed descriptions with explicit 'use when' guidance help disambiguate most cases, so an agent can usually select correctly.
The vast majority of tools follow a consistent verb_noun snake_case convention (get_, create_, update_, search_, read_, etc.), with a predictable prefixed group (deel_*). Minor deviations like month_close_summary (a noun-first compound) and the mixed use of list_ vs get_ for similar resources keep it from being perfect, but the pattern is still highly readable.
86 tools is an extreme count by any standard, far exceeding the typical well-scoped MCP server. While the accounting domain is broad, this number will overwhelm agents and increase selection latency and error rates; the scope could be consolidated into fewer, more composite tools without losing capability.
The tool surface covers an impressively wide domain: VAT, payroll, invoicing, expenses, projects, bank feeds, HMRC integrations, document management, tax rules, and annual accounts. There are minor gaps such as no update/delete for invoices or bills and no ability to create a recurring invoice, but these are generally workable around given the read-heavy nature of the use cases.