AccountsOS
REMOTE · ACCOUNTS-OS.COM · 2 COMPONENTS
Query your live AccountsOS books: balances, transactions, VAT, deadlines, invoices.
Available components
Last scanned (4 hours ago)
Scores higher than 53% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Finance and Payments
Recent critical change
Authorization (2 Nov 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_company). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 13863 tokens (~159/item across 87 items; 82 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management26
- Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 0 breaking changes, 1 auth/transport breaks, 0 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "deel_calculate_take_home_pay" implies "pay" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 84 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 19 to 23.
- 2 Nov 26 −12
- Authorization: pass → fail ▼ critical
- Stability: 0.13 → fail ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- “list_tax_rules” added an optional parameter “country” cosmetic
- “lookup_tax_rule” added an optional parameter “country” cosmetic
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 0
- New resource “ACCOUNTS.md” functional
- “get_bills” reworded the description of “status” cosmetic
- “get_invoices” reworded the description of “status” cosmetic
- 29 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 28 Oct 26 77
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://accounts-os.com/api/mcp/plugin
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=accounts-os.com | CN=YR1,O=Let's Encrypt,C=US | 21 Oct 2026 | 19 Jan 2027 | RSA 2048 | SHA256-RSA | 5dde06db9a5e67a497b8e2920b4f41c8147 |
| SANs: accounts-os.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of accounts-os.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| accounts-os.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com https://cdn.plaid.com https://*.revolut.com https://www.googletagmanager.com https://www.google-analytics.com https://*.clarity.ms https://connect.facebook.net https://googleads.g.doubleclick.net https://www.googleadservices.com https://snap.licdn.com https://bzrcdn.openai.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https://*.supabase.co wss://*.supabase.co https://generativelanguage.googleapis.com wss://generativelanguage.googleapis.com https://api.anthropic.com https://api.resend.com https://*.ingest.de.sentry.io https://*.plaid.com https://api.simli.ai https://*.simli.ai wss://*.simli.ai https://*.livekit.cloud wss://*.livekit.cloud https://*.revolut.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://www.google.com https://stats.g.dou |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(self), microphone=(self), geolocation=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://accounts-os.com/api/mcp/plugin | Verified | 200 | |
| http (plaintext) | http://accounts-os.com/api/mcp/plugin | HTTPS enforced | 308 | https://accounts-os.com/api/mcp/plugin |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_document Add Document ~178
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| file | object | yes | The file the user attached: a bank statement (PDF, CSV or spreadsheet), a receipt, a bill or an invoice. |
No output schema declared.
No examples provided.
calculate_vat_period Calculate Vat Period ~158
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| period_id | string | yes | VAT period ID (UUID). Use get_vat_periods to find it. |
No output schema declared.
No examples provided.
check_vat_number Check Vat Number ~224
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Optional. The contact this VAT number belongs to, so the result can be reported against them. |
| vat_number | string | yes | UK VAT registration number, 9 digits, with or without the GB prefix. |
No output schema declared.
No examples provided.
deel_calculate_employment_cost Deel Calculate Employment Cost ~158
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| country | string | yes | Full country name (e.g., "Portugal", "Germany", "Ireland"). Must be the full name, not a code. |
| currency | string | yes | Currency code (e.g., "EUR", "USD") |
| salary | number | yes | Annual gross salary in the country's currency |
No output schema declared.
No examples provided.
deel_calculate_take_home_pay Deel Calculate Take Home Pay ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| country | string | yes | Two-letter ISO country code (e.g., "IE" for Ireland, "PT" for Portugal) |
| currency | string | yes | Currency code |
| salary | number | yes | Annual gross salary |
No output schema declared.
No examples provided.
deel_get_invoices Deel Get Invoices ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
| statuses | string | – | Filter by status: paid, pending, overdue |
No output schema declared.
No examples provided.
deel_get_payment_receipts Deel Get Payment Receipts ~91
Get payment receipts from Deel showing payments made to contractors. Use when the user asks about specific Deel payments or needs payment proof.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
No output schema declared.
No examples provided.
deel_get_people Deel Get People ~94
List people (contractors and employees) in the user's Deel organization. Use when the user asks about their Deel team, workforce, or contractor list.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
No output schema declared.
No examples provided.
deel_list_contracts Deel List Contracts ~109
List contracts from the user's Deel account. Use when the user asks about their Deel contracts, contractors, or team members managed through Deel.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
| statuses | string | – | Comma-separated statuses: active, completed, cancelled |
No output schema declared.
No examples provided.
find_duplicate_bank_accounts Find Duplicate Bank Accounts ~201
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
find_related_documents Find Related Documents ~146
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".
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| entity_id | string | yes | Entity ID to find related documents for |
| entity_type | string | yes | Entity type: transaction, invoice, bill, estimate, contact, project, expense_claim |
No output schema declared.
No examples provided.
get_accounts_status Get Accounts Status ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_aged_creditors Get Aged Creditors ~204
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Ages TODAY's open bills as at this date (YYYY-MM-DD). It is not a historical snapshot: bills paid since that date are not included. Defaults to the end of the user's working period, which is today wh… |
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Optional supplier contact ID to scope the report |
No output schema declared.
No examples provided.
get_aged_debtors Get Aged Debtors ~216
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | Ages TODAY's open invoices as at this date (YYYY-MM-DD). It is not a historical snapshot: invoices paid since that date are not included. Defaults to the end of the user's working period, which is to… |
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Optional contact ID to scope the report to a single client |
No output schema declared.
No examples provided.
get_attention Get Attention ~165
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_balance Get Balance ~67
Get current account balance
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Specific account (optional) |
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_balance_sheet Get Balance Sheet ~79
Get Balance Sheet report as at a given date.
| Name | Type | Req | Description |
|---|---|---|---|
| as_at | string | – | Report date (YYYY-MM-DD). Default: today |
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_bank_accounts Get Bank Accounts ~59
List bank accounts connected to the company.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_bills Get Bills ~124
Get supplier bills/invoices owed by the company. Shows what you owe to suppliers.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Filter by supplier contact ID |
| limit | number | – | Max results (default 50) |
| status | string | – | Filter: outstanding (every unpaid bill), overdue (unpaid and past due), draft, received, paid, all |
No output schema declared.
No examples provided.
get_budget_vs_actual Get Budget Vs Actual ~261
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| from_month | string | – | First month of the period (YYYY-MM). Defaults to the start of the current financial year. |
| to_month | string | – | Last month of the period, inclusive (YYYY-MM). Defaults to the current month. |
No output schema declared.
No examples provided.
get_capital_allowance_hint Get Capital Allowance Hint ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Fixed asset ID from get_fixed_assets |
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_cash_flow_forecast Get Cash Flow Forecast ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_chart_of_accounts Get Chart Of Accounts ~106
List account categories (chart of accounts). Use when the user asks about their chart of accounts, account codes, or available categories for categorizing transactions.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| type | string | – | Filter by type: income, expense, asset, liability, equity, cost_of_sales |
No output schema declared.
No examples provided.
get_contacts Get Contacts ~130
List contacts (clients, suppliers, leads). Use when user asks about customers, suppliers, or contacts.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 50) |
| search | string | – | Search by name or email |
| sort | string | – | Order: name (default) or newest first |
| type | string | – | Filter by type: client, supplier, lead, other |
No output schema declared.
No examples provided.
get_deadlines Get Deadlines ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| include_completed | boolean | – | Include completed deadlines |
No output schema declared.
No examples provided.
get_dividends Get Dividends ~105
List dividend records. Use when user asks about dividends paid, dividend history, or shareholder payments.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
| tax_year | string | – | Filter by tax year (e.g. "2025/26") |
No output schema declared.
No examples provided.
get_dla_balance Get Dla Balance ~100
Get the Director's Loan Account (DLA) balance and recent transactions. Shows if director owes company or vice versa, with section 455 tax warnings.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max number of transactions to return (default 10) |
No output schema declared.
No examples provided.
get_document_links Get Document Links ~217
Get the documents linked to ONE entity (transaction, invoice, bill, estimate, contact, project, expense claim), or the entities linked to ONE document. Every call needs either document_id, or entity_type together with entity_id: there is no "list all links" call, and a call with neither returns nothing but an error. Look the id up first (get_transactions, get_invoices, search_documents), then call once per id. Use when user asks "what documents are attached to this invoice?" or "show me what's linked to that receipt".
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| document_id | string | – | Document ID to get links for |
| entity_id | string | – | Entity ID to get linked documents for |
| entity_type | string | – | Entity type: transaction, invoice, bill, estimate, contact, project, expense_claim |
No output schema declared.
No examples provided.
get_estimates Get Estimates ~103
Get estimates/quotes sent to clients.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Filter by client contact ID |
| limit | number | – | Max results (default 50) |
| status | string | – | Filter: draft, sent, accepted, declined, all |
No output schema declared.
No examples provided.
get_expense_claims Get Expense Claims ~92
Get expense claims and reimbursement requests.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 20) |
| status | string | – | Filter: draft, submitted, approved, reimbursed, rejected |
No output schema declared.
No examples provided.
get_expenses Get Expenses ~113
List expense claims. Use when the user asks about expenses, expense claims, reimbursements, or receipts they have submitted.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| limit | number | – | Max results (default 50) |
| status | string | – | Filter by status: pending, approved, rejected, reimbursed, all (default: all) |
No output schema declared.
No examples provided.
get_filed_accounts_history Get Filed Accounts History ~203
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_financial_snapshot Get Financial Snapshot ~181
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_fixed_assets Get Fixed Assets ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| status | string | – | Filter by asset status. Defaults to active. |
No output schema declared.
No examples provided.
get_fx_rates Get Fx Rates ~284
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| date | string | – | A single date (YYYY-MM-DD). Defaults to today when no range is given. |
| end_date | string | – | End of a range (YYYY-MM-DD). Use with start_date. |
| from | string | yes | Currency to convert from, three-letter code, for example EUR. |
| start_date | string | – | Start of a range (YYYY-MM-DD). Use with end_date. |
| to | string | yes | Currency to convert to, three-letter code, for example AED. |
No output schema declared.
No examples provided.
get_gifi_status Get Gifi Status ~159
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| year_end | string | – | The fiscal year end, YYYY-MM-DD. Omit for the last completed fiscal year. |
No output schema declared.
No examples provided.
get_goals Get Goals ~140
Get active business/financial goals and their progress. Use when user asks about their goals, targets, or how they are tracking against objectives.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| goal_type | string | – | Filter by type: revenue_target, expense_reduction, savings_target, profit_margin, cash_reserve, debt_reduction, client_acquisition, invoice_collection, custom |
| status | string | – | Filter by status: active, completed, all (default: active) |
No output schema declared.
No examples provided.
get_gov_guidance Get Gov Guidance ~143
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| topic | string | yes | The topic to search for, e.g. "VAT returns", "corporation tax", "dividends", "director loans", "expenses" |
No output schema declared.
No examples provided.
get_gst_hst_return Get Gst Hst Return ~210
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| end | string | – | Last day of the reporting period, YYYY-MM-DD. Omit for the last completed period. |
| start | string | – | First day of the reporting period, YYYY-MM-DD. Omit for the last completed period. |
No output schema declared.
No examples provided.
get_hmrc_vat_liabilities Get Hmrc Vat Liabilities ~177
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| from | string | – | Start date (YYYY-MM-DD). Defaults to 12 months ago. A range longer than about a year is capped to the year ending at the end date, so ask in yearly chunks for anything older. |
| to | string | – | End date (YYYY-MM-DD). Defaults to today. |
No output schema declared.
No examples provided.
get_hmrc_vat_obligations Get Hmrc Vat Obligations ~209
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| from | string | – | Start date (YYYY-MM-DD). Defaults to 12 months ago. A range longer than about a year is capped to the year ending at the end date, so ask in yearly chunks for anything older. |
| to | string | – | End date (YYYY-MM-DD). Defaults to today. |
No output schema declared.
No examples provided.
get_hmrc_vat_payments Get Hmrc Vat Payments ~167
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| from | string | – | Start date (YYYY-MM-DD). Defaults to 12 months ago. A range longer than about a year is capped to the year ending at the end date, so ask in yearly chunks for anything older. |
| to | string | – | End date (YYYY-MM-DD). Defaults to today. |
No output schema declared.
No examples provided.
get_income_by_currency Get Income By Currency ~266
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| direction | string | – | in = income / money in (default); out = spend / money out |
| from_date | string | – | Start date (YYYY-MM-DD), inclusive |
| to_date | string | – | End date (YYYY-MM-DD), inclusive |
No output schema declared.
No examples provided.
get_incoming_messages Get Incoming Messages ~221
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| include_processed | boolean | – | Also include messages already marked processed (default false: waiting only) |
| limit | number | – | Max messages (default 20, max 50) |
| source | string | – | Filter by channel: email, whatsapp, slack, telegram, gmail. Omit for all. |
| unread_only | boolean | – | Only messages not yet opened (default false) |
No output schema declared.
No examples provided.
get_integration_status Get Integration Status ~304
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).
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
No output schema declared.
No examples provided.
get_invoices Get Invoices ~141
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| contact_id | string | – | Filter by client/contact ID |
| search | string | – | Search by invoice number |
| status | string | – | Filter by status: outstanding (every unpaid invoice), overdue (unpaid and past due), draft, sent, paid, cancelled, all |
No output schema declared.
No examples provided.
get_journal_entries Get Journal Entries ~104
Get General Ledger journal entries. Double-entry accounting records.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| from_date | string | – | Start date (YYYY-MM-DD) |
| limit | number | – | Max results (default 50) |
| to_date | string | – | End date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
get_month_close Get Month Close ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| period_start | string | – | First day of the month to check, YYYY-MM-01. Omit for the last complete month. |
No output schema declared.
No examples provided.
get_opportunity Get Opportunity ~79
Get detailed information about a specific pipeline opportunity/deal, including notes and activity history.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| opportunity_id | string | yes | Opportunity/project ID |
No output schema declared.
No examples provided.
get_payroll_summary Get Payroll Summary ~178
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.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Which company to read, by name or id, when the account has more than one (see list_companies). Leave it out to use the only company, or the default. |
| tax_year | string | – | Tax year (e.g. "2025-26"). Defaults to current tax year. |
No output schema declared.
No examples provided.
How do I install the AccountsOS MCP server?
AccountsOS is a hosted endpoint at https://accounts-os.com/api/mcp/plugin, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · accounts-os.com
claude mcp add --transport http paulgosnell-accountsos-mcp 'https://accounts-os.com/api/mcp/plugin'
What is the AccountsOS MCP server?
AccountsOS is an MCP server listed in the public MCP registry as io.github.paulgosnell/accountsos-mcp. Query your live AccountsOS books: balances, transactions, VAT, deadlines, invoices. This page covers its hosted endpoint (https://accounts-os.com/api/mcp/plugin).
Is the AccountsOS MCP server safe to use?
AccountsOS scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AccountsOS MCP server expose?
AccountsOS exposes 82 tools: list_companies, update_company, link_company, add_document, get_transactions, and 77 more. Their descriptions and schemas cost roughly 13,681 tokens of context every time the server is loaded.
Does the AccountsOS MCP server require authentication?
No. We connected to AccountsOS without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the AccountsOS MCP server still maintained?
AccountsOS is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.