whoami- Who am IReturns the signed-in user and the list of companies (client_ids) they can act on. Call this first.
No arguments.
Try saying
- "Who am I connected as in TaxChad, and what companies can you see?"
MCP Tool Reference
TaxChad exposes an OAuth-secured MCP server at https://taxchad.com/mcp. Every tool below is callable from Claude, ChatGPT, Cursor or any MCP-compatible client - as the signed-in user, subject to Row Level Security.
https://taxchad.com/mcpclient_id it returns for company-scoped calls.Signed in to TaxChad? See your AI Access audit log
Start here. Confirms who you are and which companies you can act on.
whoami- Who am IReturns the signed-in user and the list of companies (client_ids) they can act on. Call this first.
No arguments.
Try saying
Query your books, payments, customers and statements. Safe to call any time.
get_merchant_summary- Company summaryHeadline numbers for a company: balances, VAT status, unreconciled counts.
Arguments
client_iduuidOmit if you only have one company.Try saying
list_recent_transactions- List recent bank transactionsLatest bank feed rows for a company.
Arguments
client_iduuidlimitinteger 1-100Default 25.Try saying
list_transactions- List paymentsFilter TaxChad Payments by date, direction, status, customer or amount.
Arguments
client_iduuidfromISO datetoISO datedirection'in' | 'out'statuspending | completed | failed | refundedcustomer_iduuidmin_amountnumbermax_amountnumberlimit1-200Default 50.Try saying
get_payment- Get paymentFull detail for one payment by id.
Arguments
client_iduuidpayment_iduuidTry saying
list_payment_links- List payment linksPay-by-bank links, newest first.
Arguments
client_iduuidstatusactive | expired | paid | cancelledlimit1-200Default 50.Try saying
list_customers- List payments customersSaved payers/beneficiaries for a company.
Arguments
client_iduuidsearchstringSubstring match on name/email.limit1-200Default 50.Try saying
get_fee_ledger- Fees owed to TaxChadAccrued, billed and unbilled TaxChad Payments fees.
Arguments
client_iduuidfromISO datetoISO dateTry saying
get_statement- Get TaxChad statementFetch one statement by id, or list recent statements.
Arguments
client_iduuidstatement_iduuidlimit1-50Default 12.Try saying
verify_account- Verify a UK bank account (AIS)Confirmation-of-Payee style check via Finexer.
Arguments
client_iduuidsort_codestringaccount_numberstringibanstringbicstringaccount_namestringTry saying
Note: Currently returns provider_unavailable until Finexer is live.
Firm staff only. Triage, review, coding and practice management across every client of your firm. Reads are instant. Book-changing writes are two-step - preview first, then commit with the returned confirmation_token (15 minutes, single use); task and note updates are single step and write the same history events as the app. Callers without a firm membership get not_a_firm_member.
firm_overview- Firm overviewCross-client snapshot: active clients, open alerts by severity, uncategorised transactions, tasks due and overdue, stale bank feeds.
No arguments.
Try saying
firm_list_clients- List firm clientsEvery active client with VAT and deadline fields plus triage counts. Source of client_id for the other firm_ tools.
Arguments
searchstringneeds_attentionbooleanvat_registeredbooleanentity_typestringlimit1-200Default 100.Try saying
firm_client_status- Client statusOne client in full: bank accounts with masked identifiers, open alerts, upcoming tasks, open queries, current and last VAT periods.
Arguments
client_iduuidTry saying
firm_ledger_health- Ledger healthRun the ledger invariant checks live, or return stored open alerts.
Arguments
client_iduuidlivebooleanDefault true.Try saying
firm_list_exceptions- List exceptionsUncategorised and suspense transactions for a client, grouped by normalised payee for bulk triage.
Arguments
client_iduuidbank_account_iduuidfromISO datetoISO datelimit1-500Default 200.Try saying
firm_statement_coverage- Statement coveragePer bank account: first and last transaction dates, month gaps, months since last, and whether coverage reaches period end.
Arguments
client_iduuidTry saying
firm_vat_summary- VAT summaryRecent VAT periods with boxes, adjustments, filing due dates and movements versus the previous period.
Arguments
client_iduuidlimit1-8Default 5.Try saying
firm_vat_return- VAT return (live compute)Computes the full nine-box return with the same engine as the app's VAT Return screen: all schemes, late claims, splits, journals, margin scheme and adjustments. Read only.
Arguments
client_iduuidvat_period_iduuidDefault: the period the app's VAT Return screen opens.Try saying
firm_list_jobs- List tasksPractice tasks across the firm with client and assignee names.
Arguments
statusstringcategorystringclient_iduuidassignee'me' | 'unassigned' | uuiddue_within_days1-365overdue_onlybooleanlimit1-500Default 200.Try saying
firm_job_detail- Task detailOne task in full: record, client, checklist, events and notes.
Arguments
job_iduuidTry saying
firm_list_client_notes- Client notesInternal notes on a client, pinned first.
Arguments
client_iduuidlimit1-200Default 50.Try saying
firm_chart_of_accounts- Chart of accountsCompact nominal list: code, name, type, VAT treatment, active flag.
Arguments
client_iduuidinclude_inactivebooleanTry saying
firm_list_rules- Coding rulesAllocation rules, description cleanup rules and firm payee-rule settings for a client.
Arguments
client_iduuidTry saying
firm_preview_rule- Preview a coding ruleDry-run a proposed rule: which uncategorised rows it would code, which coded rows conflict, which existing rules overlap. Returns the confirmation_token for firm_create_rule.
Arguments
client_iduuidmatch_textstringmatch_typecontains | word | all_words | starts_with | regexDefault all_words.directionboth | money_in | money_outDefault both.currencyISO 4217category_codenominal codevat_rateS | R | Z | E | N | DR20 | DR5 | RC20 | OS | PVA | FRSTry saying
firm_create_rule- Create a coding ruleCreate an allocation rule. With apply_to_existing=true it also codes the previewed uncategorised rows - that needs the confirmation_token from firm_preview_rule for the identical rule.
Arguments
client_iduuidmatch_textstringmatch_typesee firm_preview_ruledirectionsee firm_preview_rulecurrencyISO 4217category_codenominal codevat_ratesee firm_preview_ruleapply_to_existingbooleanDefault false.confirmation_tokenstringRequired with apply_to_existing.Try saying
firm_delete_rule- Delete a coding ruleRemove one allocation rule. Transactions already coded are never touched.
Arguments
client_iduuidrule_iduuidTry saying
firm_rule_hygiene- Rule hygiene reportRules matching nothing, duplicate pairs, rules pointing at archived nominals, and same match text mapping to different categories or VAT rates.
Arguments
client_iduuidTry saying
firm_categorise_transactions- Code bank transactionsTwo-step manual coding of 1-100 uncategorised transactions. First call returns a per-item preview and confirmation_token; second call commits exactly the previewed items.
Arguments
client_iduuiditems[]arrayconfirmation_tokenstringSecond call only.Try saying
firm_update_job- Update a taskChange one task's stage, assignee, reviewer, internal deadline or internal notes. Writes the same history events as the app. Setting status to filed is refused - use firm_mark_job_filed.
Arguments
job_iduuidstatusstageAny stage except filed.assigneeuuid | 'me' | nullrevieweruuid | 'me' | nullinternal_deadlineISO date | nullinternal_notesstringTry saying
firm_mark_job_filed- Mark a task filedMark one task filed with the mandatory filing reference and an optional filing date (defaults to today).
Arguments
job_iduuidfiled_referencestringfiled_atISO dateDefault today.Try saying
firm_create_job- Create a taskCreate a task for one client, from a template (by id or code, with the app's deadline derivation and checklist seeding) or ad hoc with an explicit statutory deadline.
Arguments
client_iduuidtemplate_iduuidOr template_code.template_codestringOr template_id.titlestringstatutory_deadlineISO dateRequired for ad hoc jobs.assigneeuuid | 'me'Try saying
firm_add_client_note- Add a client noteAdd an internal practice note to a client's record, optionally pinned. Never client visible.
Arguments
client_iduuidbodystringpinnedbooleanTry saying
firm_log_chase- Log a client chaseRecord that the client was chased about a task, by email or WhatsApp, with an optional note. Writes the history line only - sends nothing.
Arguments
job_iduuidchannelemail | whatsappnotestringTry saying
firm_list_staff- List firm staffMembers of your firms with name, role and access scope - the source of assignee and reviewer ids.
No arguments.
Try saying
firm_create_transaction_query- Query the client about transactionsAsk a client what 1-100 uncategorised transactions were for, via the client portal. Without send: creates the query and returns the portal link (single step). With send=true: two-step preview then commit, emailing the portal link.
Arguments
client_iduuidtransaction_ids[]uuid arraymessagestringOptional message to the client.sendbooleantrue = email flow (two-step).confirmation_tokenstringSecond call of the send flow.Try saying
firm_preview_statement_import- Preview a statement import (step 1 of 2)Parse a CSV or PDF bank statement for one client account and preview the import: duplicates already in the ledger, new rows, date range, gap since the last transaction and opening balance tie. Nothing is written; returns a confirmation_token.
Arguments
client_iduuidbank_account_iduuidformat_idstringOmit to auto-detect by header signature.csv_textstringRaw CSV contents (or pdf_base64).pdf_base64stringBase64 PDF. Automated text extraction - rows need review.filenamestringTry saying
firm_import_statement- Import a previewed statement (step 2 of 2)Consumes the preview's confirmation_token (15 minutes, single use) and posts exactly the stored rows through the same dedupe, fingerprints, GBP stamping and opening balance anchoring as the in-app importers.
Arguments
client_iduuidbank_account_iduuidconfirmation_tokenstringTry saying
Draft new records. No money moves.
create_payment_link- Create pay-by-bank linkGenerate a pay-by-bank link (single, multiple-use or variable).
Arguments
client_iduuidamountnumberRequired unless type='variable'.currencyISO 4217Default GBP.referencestringdescriptionstringtypesingle | multiple | variableDefault single.customer_iduuidexpires_atISO datetimesettlement_account_iduuididempotency_keystringTry saying
create_customer- Create payments customerAdd a saved customer/beneficiary.
Arguments
client_iduuidnamestringemailemailTry saying
request_ais_consent- Request AIS consent linkAsk a customer for account-info consent (Finexer).
Arguments
client_iduuidcustomer_iduuidcallback_urlurlTry saying
Note: Returns provider_unavailable until Finexer is live.
Two-step: preview first, then execute with the returned confirmation_token. Requires platform kill-switch off + per-company opt-in.
create_payout- Send a payoutSend a payout to a verified beneficiary.
Arguments
client_iduuidbeneficiary_account_refstringamountnumbercurrencyISO 4217Default GBP.referencestringidempotency_keystringconfirmation_tokenstringSecond call only.Try saying
Note: Returns compliance_gate until TaxChad Payments launches.
create_bulk_payout- Send a batch of payoutsBatch of up to 100 payouts. Same two-step confirmation.
Arguments
client_iduuididempotency_keystringitems[]arrayconfirmation_tokenstringTry saying
Note: Returns compliance_gate until TaxChad Payments launches.
create_vrp_mandate- Create VRP mandate (Beta)Variable Recurring Payment mandate for a customer.
Arguments
client_iduuidcustomer_iduuidmax_per_paymentnumbermax_per_periodnumberperiodday | week | month | yearreferencestringTry saying
Note: Returns compliance_gate until TaxChad Payments launches.
execute_vrp_collection- Execute VRP collection (Beta)Pull a payment under an active VRP mandate.
Arguments
client_iduuidmandate_iduuidamountnumbercurrencyISO 4217Default GBP.referencestringidempotency_keystringTry saying
Note: Returns compliance_gate until TaxChad Payments launches.
TaxChad staff only. Rejected for non-admin callers.
admin_platform_summary- Admin: platform summaryRolling platform-wide totals across all merchants.
Arguments
days1-365Default 30.Try saying
Works with Claude, in early access. Not technical? See the plain-English guide to bookkeeping with Claude.
AI bookkeeping with Claude