AccountsOS
REMOTE · ACCOUNTS-OS.COM · 2 COMPONENTS
Query your live AccountsOS books: balances, transactions, VAT, deadlines, invoices.
Available components
Last scanned (5 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 →
get_profit_and_loss Get Profit And Loss ~93
Get Profit and Loss (income statement) report for a period.
| 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) |
| to_date | string | – | End date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
get_project_pnl Get Project Pnl ~181
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.
| 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. |
| project_id | string | – | Project ID (preferred if known) |
| project_name | string | – | Project name to resolve if project_id is not known. Case-insensitive; errors with candidate names if ambiguous. |
No output schema declared.
No examples provided.
get_projects Get Projects ~111
List projects (pipeline, active, completed). Use when the user asks about their projects, deals, or pipeline.
| 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. |
| search | string | – | Search by project name |
| status | string | – | Filter by status: pitched, won, in_progress, completed, lost, all (default: all) |
No output schema declared.
No examples provided.
get_qfzp_status Get Qfzp Status ~171
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.
| 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_reconciliation_status Get Reconciliation Status ~295
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bank_account_id | string | – | Limit to one bank 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_recurring_invoices Get Recurring Invoices ~87
List recurring invoice templates. Use when user asks about recurring invoices, scheduled invoices, or subscription billing.
| 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 status (default: active) |
No output schema declared.
No examples provided.
get_risk_flags Get Risk Flags ~146
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.
| 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_statement_checks Get Statement Checks ~136
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bank_account_id | string | – | Limit to one bank 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_tasks Get Tasks ~100
Get tasks and to-dos for 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. |
| completed | boolean | – | Filter by completion status |
| limit | number | – | Max results (default 20) |
| priority | string | – | Filter: low, medium, high, urgent |
No output schema declared.
No examples provided.
get_tax_facts Get Tax Facts ~170
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Tax category (e.g. "income_tax", "dividends", "mileage") |
| 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. |
| item | string | – | Specific item within the category (optional — omit for all items) |
| tax_year | string | – | Tax year (e.g. "2025-26"). Defaults to current. |
No output schema declared.
No examples provided.
get_transactions Get Transactions ~310
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| 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; out = expense |
| from_date | string | – | Start date (YYYY-MM-DD) |
| limit | number | – | Max results (default 50, max 100) |
| max_amount | number | – | Maximum amount |
| max_confidence | number | – | Only lines whose categorisation confidence is below this percentage (0 to 100). Lines with no confidence score are included. |
| min_amount | number | – | Minimum amount |
| needs_review | boolean | – | Only the lines Finn could not place with confidence: the same set as the 'transactions need a look' count. |
| offset | number | – | Skip this many rows (default 0) for pagination |
| search | string | – | Search in description |
| to_date | string | – | End date (YYYY-MM-DD) |
| uncategorised | boolean | – | Only lines with no category. |
No output schema declared.
No examples provided.
get_trial_balance Get Trial Balance ~87
Get Trial Balance showing all account balances.
| 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) |
| to_date | string | – | End date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
get_vat_periods Get Vat Periods ~193
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.
| 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 periods to return (default 12). |
| status | string | – | Optional filter: open, ready, locked, submitted, overdue, failed. |
| year | string | – | Optional 4-digit year filter (e.g. "2026"). |
No output schema declared.
No examples provided.
get_vat_summary Get Vat Summary ~127
Get VAT summary for a calendar quarter, or for any VAT period with start_date and end_date
| 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_date | string | – | Last day of the VAT period, YYYY-MM-DD |
| quarter | string | – | Calendar quarter (e.g., "Q1 2025") |
| start_date | string | – | First day of the VAT period, YYYY-MM-DD |
No output schema declared.
No examples provided.
get_year_on_year Get Year On Year ~153
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.
| 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.
link_company Link Company From Register ~144
Save a UK (Companies House) or Irish (CRO) company from its official register onto the user's AccountsOS company: registered name, number, status, address, directors, year-end and filing deadlines. Call it only after lookup_company found the company and the user confirmed it is theirs. Returns the year-end and the deadlines it set up: tell the user what they are.
| 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. |
| company_number | string | yes | The confirmed Companies House number to link and save. |
No output schema declared.
No examples provided.
list_categories List Categories ~78
List available transaction categories for categorization
| 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 |
No output schema declared.
No examples provided.
list_companies List Companies ~56
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_employees List Employees ~93
List active employees for the company. Use when the user asks about their employees, staff, team members, or headcount.
| 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_inactive | boolean | – | Include terminated/on_leave employees (default false) |
No output schema declared.
No examples provided.
list_opportunities List Opportunities ~159
List sales pipeline opportunities/deals. Shows prospects, their stage, value, and next actions.
| 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) |
| stage | string | – | Filter by pipeline stage name |
| status | string | – | Which deals to return, judged by the pipeline stage: "active" = still in play (default), "won" = in a closed-won stage, "lost" = in a closed-lost stage, "all" = every deal. This is NOT the project de… |
No output schema declared.
No examples provided.
list_tax_rules List Tax Rules ~228
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional category filter. UK categories: vat, corporation_tax, self_assessment, paye, mtd, companies_house, dividends, directors, expenses, capital_gains, capital_allowances, pensions, income_tax, na… |
| 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 | – | ISO country code of the business, such as GB, IE or US. Pass it when the user has not connected AccountsOS. Once connected, leave it out and their company's country is used. |
No output schema declared.
No examples provided.
lookup_company Lookup Company ~346
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.
| 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. |
| company_number | string | – | Exact company number to fetch the full record + directors + deadlines. Use once you know the number (e.g. after the user confirms a search candidate). |
| query | string | – | Company name to search for (returns up to ~10 candidates with number, status, and address). Use when you have a name but not a number. |
No output schema declared.
No examples provided.
lookup_tax_rule Lookup Tax Rule ~631
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | Optional ISO date (YYYY-MM-DD) the answer must be true for. Pass this whenever the question is about a PAST period - a prior-year return, an old invoice, a historic filing - or a FUTURE one such as n… |
| 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 | – | ISO country code of the business, such as GB, IE or US. Pass it when the user has not connected AccountsOS. Once connected, leave it out and their company's country is used. |
| key | string | yes | The rule key. Use list_tax_rules to see all available keys for the active company's country. |
No output schema declared.
No examples provided.
month_close_summary Month Close Summary ~215
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.
| 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_end | string | – | YYYY-MM-DD end of the period (e.g. 2026-05-31). Defaults to the last day of the previous calendar month. |
| period_start | string | – | YYYY-MM-DD start of the period (e.g. 2026-05-01). Defaults to the first day of the previous calendar month. |
No output schema declared.
No examples provided.
read_company_wiki Read Company Wiki ~117
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.
| 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. |
| slug | string | – | Page slug (e.g. "index", or a specific topic). Defaults to "index". |
No output schema declared.
No examples provided.
read_wiki Read Wiki ~144
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.
| 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. |
| page | string | yes | Wiki page name (e.g. "index", "corporation-tax", "vat", "ir35", "us-sales-tax-nexus"). Use "index" to see all pages. |
No output schema declared.
No examples provided.
recall_conversations Recall Conversations ~247
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.)
| 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 | – | How many recent conversations to recall (default 5, max 15). |
| query | string | – | Optional keyword to filter to conversations about a topic (e.g. "VAT", "payroll", "the Acme invoice"). |
No output schema declared.
No examples provided.
search_company_wiki Search Company Wiki ~80
Search this company's private memory wiki by keyword. Returns matching page slugs, titles and excerpts.
| 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. |
| query | string | yes | Search keyword |
No output schema declared.
No examples provided.
search_documents Search Documents ~146
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).
| 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. |
| query | string | – | Search query (optional when filtering by status or type) |
| status | array | – | Filter by status: pending, error, processed, matched |
| type | string | – | Document type (receipt, invoice, statement) |
No output schema declared.
No examples provided.
search_tax_facts Search Tax Facts ~110
Search UK tax knowledge by keyword when unsure which category/item to look up. Returns matching tax facts across all categories.
| 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. |
| query | string | yes | Search query (e.g. "employment allowance", "dividend tax") |
| tax_year | string | – | Tax year. Defaults to current. |
No output schema declared.
No examples provided.
search_wiki Search Wiki ~102
Search Finn's knowledge base by keyword. Returns matching page names and excerpts. Use when unsure which page covers a topic.
| 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. |
| query | string | yes | Search keyword (e.g. "marginal relief", "employment allowance", "flat rate scheme") |
No output schema declared.
No examples provided.
update_company Set Up Company ~727
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.
| Name | Type | Req | Description |
|---|---|---|---|
| business_summary | string | – | What the business does, in one plain sentence in the user's own words, e.g. "Mobile dog groomer" or "Two-person web design agency". Save it whenever the user says what they do: it tells categorisatio… |
| 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. |
| company_number | string | – | Company/registration number (e.g. UK Companies House number, IE CRO number, DK CVR number). Setting this lets us sync filing deadlines from the registry. |
| country | string | – | ISO 3166-1 alpha-2 country code where the business is registered (for example GB, IE, US, AU, AE). Sets which tax rules apply. Refused once the company has bookkeeping entries. |
| default_currency | string | – | ISO 4217 default currency code, e.g. GBP, EUR, USD, AED, DKK. Uppercased automatically. |
| entity_type | string | – | Business structure (e.g. "ltd" for a UK limited company, "sole_trader", "llp", "fzco" for a UAE free-zone company). Use the value appropriate to the company's country. Drives which tax rules apply. |
| financial_year_end_month | number | – | Month (1-12) the financial year ends. Only set when the user tells you their year-end; do not guess. |
| incorporation_date | string | – | Date the company was incorporated, YYYY-MM-DD. Pass it whenever the user tells you, and ALWAYS for a UK limited company with no company number yet (just incorporated, or not on Companies House yet):… |
| name | string | – | Registered/legal company name (the business being kept books for). |
| trading_name | string | – | Trading name / "doing business as", if different from the registered name. |
| vat_number | string | – | VAT/GST registration number. Providing a number also marks the company VAT registered unless vat_registered is explicitly false. |
| vat_registered | boolean | – | Whether the business is VAT/GST registered. Set true when the user confirms they are registered, false when they confirm they are not. Also false for a business whose sales are all VAT-exempt and tha… |
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.