A.X.E.L Filing (public tools)
Server Details
UK company lookup, filing deadlines, late penalties and Corporation Tax maths. No account.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
Most tools target clearly distinct operations (eligibility check, CT600 computation, self-assessment estimate, company lookup, penalties, combined director view), and the rich descriptions clarify boundaries. However, there is mild overlap: lookup_uk_company returns 'a quick fit check' similar to check_ct600_eligibility, and estimate_uk_self_assessment is partially subsumed by uk_director_tax_year which also returns each personal Self Assessment.
Mostly snake_case verb_noun (check_ct600_eligibility, compute_ct600, lookup_uk_company, estimate_uk_self_assessment), but ct600_filing_guide is noun-only with no verb and two tools adopt a uk_ domain prefix (uk_company_late_filing_penalties, uk_director_tax_year) while others do not, so the pattern is mixed though still readable.
Seven tools is well-scoped for a UK tax filing advisory surface, with each tool earning its place: eligibility, computation, onboarding guide, company lookup, penalties, personal estimate, and a combined director view.
Covers the key lifecycle steps for advisory CT600/Self Assessment work—eligibility, computation, lookup, penalties, and combined projection—plus an explicit guide. Actual submission/retrieval of prior filings appears to live in private tools and there is no explicit way to fetch a saved draft's contents, a minor gap agents can work around via filingId references.
Available Tools
7 toolscheck_ct600_eligibilityARead-onlyInspect
Check whether a company fits this tool (micro-entity limits, single UK trade, no groups/R&D/gains/property). An overdrawn director loan is supported: the return carries a CT600A. Money in POUNDS.
| Name | Required | Description | Default |
|---|---|---|---|
| dormant | No | ||
| turnover | No | ||
| claimsRandD | No | ||
| filingTypes | No | What the customer wants to file. Only matters for periodOver12Months: a period of account over 12 months rules out a CT600 (which covers at most 12 months) but NOT a set of accounts, which Companies House takes for a period of any length up to 18 months. A first-year company normally has a period of 12 months plus a few weeks, so 'accounts' is often filable when 'ct600' is not. | |
| partOfGroup | No | ||
| singleUkTrade | No | ||
| averageEmployees | No | ||
| balanceSheetTotal | No | ||
| hasPropertyIncome | No | ||
| hasChargeableGains | No | ||
| periodOver12Months | No | ||
| overdrawnDirectorsLoan | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish this is a safe, read-only, closed-world check, so the safety burden is already carried. The description adds useful domain context (overdrawn director loan is supported and produces a CT600A, currency is POUNDS), but does not state what the response contains or how ineligibility is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose, the enumerated criteria, then the director-loan exception and currency. Front-loaded and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter eligibility gate with an output schema absent, the description gives the agent enough domain context to interpret inputs and the special loan case. It falls short of describing the verdict/response shape, which is the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 8%, so the description must compensate, and it does explain the eligibility-relevant inputs: micro-entity limits, single UK trade, dormancy implied by limits, and the overdrawn loan/director-loan edge case. It does not map each of the 12 parameters to semantics, but covers the core business meaning well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: checks whether a company fits CT600 micro-entity eligibility, and enumerates the conditions (micro-entity limits, single UK trade, no groups/R&D/gains/property). Clearly distinct from sibling compute_ct600 (which computes) and ct600_filing_guide (which guides).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage as a pre-flight gate before compute_ct600, but the description never explicitly says 'use this before filing' or names alternatives. An agent must infer the ordering from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_ct600ARead-onlyInspect
Compute the corporation tax position from figures (stateless, nothing stored): tax due, taxable profit, marginal relief, losses, CT600 box values.
| Name | Required | Description | Default |
|---|---|---|---|
| figures | Yes | The return figures, all in POUNDS. periodStart/periodEnd are ISO dates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context beyond the annotations: the tool is stateless and persists nothing, and it names the outputs it produces. It does not, however, mention any input-validation behavior or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: verb and resource first, then the stateless caveat, then a compact colon-list of outputs. Zero filler and nothing that needs to be read twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates what the tool returns (tax due, taxable profit, marginal relief, losses, CT600 box values), and the stateless note answers the main caller concern. The deep nested input schema is fully documented on its own, so the remaining gap is only the absence of any routing guidance to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested 'figures' object carries extensive per-field documentation (e.g. taxAlreadyPaid, fullExpensing, tradingStartDate), so the schema does the heavy lifting. The description adds nothing about individual parameters, which is the correct baseline of 3 when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Compute) and resource (corporation tax position), and enumerates the concrete outputs (tax due, taxable profit, marginal relief, losses, CT600 box values). This clearly separates it from siblings like ct600_filing_guide and check_ct600_eligibility, which are advisory rather than computational.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(stateless, nothing stored)' implies it is safe to call freely and repeatedly, but the description never states when to reach for this tool versus siblings such as check_ct600_eligibility or ct600_filing_guide, nor any prerequisites. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ct600_filing_guideARead-onlyInspect
READ THIS FIRST. How to prepare a CT600 with this server: which companies qualify, the order to gather figures in, what the words mean (micro-entity, filleted accounts, the declaration), and which cases to refer to an accountant instead. Takes no arguments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds little behavioral context beyond confirming it takes no arguments (already in the schema) and that it is explanatory content, with no side effects or return-format detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The imperative 'READ THIS FIRST' is front-loaded as the single most important cue, followed by one efficient sentence that enumerates the guide's contents with zero filler. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only documentation tool with annotations covering safety, the description is nearly complete: it explains the guide's scope and that no arguments are needed. Only a brief note on the form of the returned text would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. 'Takes no arguments' explicitly reinforces the empty schema, which is a small but helpful clarification for an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a CT600 preparation guide for this server) and enumerates its contents: qualification, figure-gathering order, terminology, and accountant referral cases. It clearly positions itself as reference material rather than a computational tool, though it never names a sibling, so sibling differentiation is only implied by 'READ THIS FIRST'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'READ THIS FIRST' gives explicit ordering guidance for when to invoke it relative to the sibling tools, and the referral-to-accountant note indicates when to stop using the server's automated path. It does not, however, name which sibling handles eligibility versus computation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_uk_self_assessmentARead-onlyInspect
Estimate one person's UK Self Assessment for one tax year (2025-26 or 2026-27): income tax on salary, dividends, self-employment and interest, Class 4, student loans, payments on account, and Class 1 National Insurance on a salary from the person's own company. Uses the same engine as A.X.E.L Filing's returns, which matches HMRC's own test cases. An estimate only: nothing is saved or filed. Never ask for a UTR or National Insurance number.
| Name | Required | Description | Default |
|---|---|---|---|
| income | No | Income in ONE personal tax year (6 April to 5 April), all in POUNDS. Ask; do not guess. | |
| region | Yes | Where the person lives for income tax: rUK (England or Northern Ireland), scotland or wales. Scottish rates differ. Ask. | |
| payroll | No | For the Employment Allowance (up to £10,500 of employer NI). HMRC: a company with only one director cannot claim if that director is the only employee liable for employer NI. Ask both. | |
| taxYear | Yes | ||
| dividends | No | Total dividends received in the tax year, from any company | |
| eligibility | No | Answer true for any that apply; each is refused as out of scope (refer to an accountant). | |
| postgraduateLoan | No | ||
| studentLoanPlans | No | Undergraduate student loan plans being repaid | |
| overStatePensionAge | No | Over State Pension age: no employee National Insurance on salary (the company still pays employer NI) | |
| becameDirectorDuringYear | No | Became a director part-way through the tax year. Refused: a shorter NI earnings period needs HMRC's directors' calculator. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/non-destructive annotations, it discloses substantive traits: no persistence or filing side effects, use of the same engine as HMRC-matched returns, an explicit prohibition on requesting a UTR or NI number, and refusal semantics for edge cases. These are non-obvious constraints an agent must honour.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and scope are front-loaded in the first clause, followed by the computation list and the safety constraints. It is dense but each sentence carries information; only the HMRC-engine credibility claim is somewhat expendable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, nested-object tool with no output schema, the description is strong on inputs, scope, and side effects, but says nothing about the shape of the returned estimate (line items, totals, breakdown). An agent knows what it must supply but not what it will get back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so most parameters are already documented in the schema, including currency, region enum meaning, and eligibility refusal behaviour; the description largely restates these. It reinforces context (one personal tax year, all in pounds) but adds little parameter-level detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Estimate), a specific resource (one person's UK Self Assessment), and a bounded scope (one tax year, 2025-26 or 2026-27), then enumerates exactly what is computed: income tax on salary/dividends/self-employment/interest, Class 4, student loans, payments on account, Class 1 NI. This clearly separates it from the CT600/corporation-tax siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when this applies (personal self-assessment for one individual, one tax year) and a strong behavioural boundary: 'An estimate only: nothing is saved or filed.' It also routes out-of-scope cases (partnership, capital gains, foreign income, etc.) elsewhere, though it doesn't explicitly name a sibling tool as the alternative for those referrals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_uk_companyBRead-onlyInspect
Look up a UK company at Companies House by company number: name, status, registered office, next accounts period, and a quick fit check.
| Name | Required | Description | Default |
|---|---|---|---|
| companyNumber | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description usefully identifies the backing source (Companies House, consistent with the open-world hint) but omits any error behavior (e.g. company not found) or mention of rate limits/registration requirements for the external API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the verb and resource and then lists outputs; nothing is padded. The trailing phrase 'quick fit check' is undefined jargon that slightly undercuts precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does enumerate several fields (name, status, registered office, next accounts period). However, 'quick fit check' is never explained and no failure mode or lookup limits are described, leaving gaps for a one-parameter external lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single companyNumber parameter, so the description must carry it. Saying 'by company number' does clarify that the identifier is a company number rather than a name, but gives no format guidance (e.g. 8-digit numeric string) or validation expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (look up), resource (UK company), source (Companies House), and key selector (company number), then enumerates the returned fields. It is clearly distinct from the CT600/self-assessment siblings, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the implicit 'by company number' selector plus an undefined 'quick fit check'. There is no statement of when to reach for this tool versus the sibling tax tools, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uk_company_late_filing_penaltiesARead-onlyInspect
Late filing penalties for a UK company's accounts (Companies House) and CT600 (HMRC): what is owed if filed on a given date, and the full schedule of dates when each penalty applies. Use with lookup_uk_company, which gives the accounts deadline. Dates are ISO (YYYY-MM-DD); filedOn defaults to today.
| Name | Required | Description | Default |
|---|---|---|---|
| filedOn | No | Date the filing arrives, ISO date. Defaults to today. | |
| unpaidTax | No | Corporation tax still unpaid, in POUNDS, to estimate the 10% tax-geared penalties at 6 and 12 months. | |
| ct600Deadline | No | CT600 filing deadline (12 months after the end of the accounting period), ISO date | |
| accountsDeadline | No | Companies House accounts deadline, ISO date | |
| accountsLateLastYear | No | The previous year's accounts were also late: the Companies House penalty doubles. | |
| ct600ThirdLateInARow | No | This is the third late CT600 in a row: each fixed penalty is GBP 1,000 instead of GBP 200. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe, closed-world read, so the bar is lower. The description still adds real behavioral value: it explains the two output modes (amount owed vs. full penalty schedule), the ISO date format, that filedOn defaults to today, and the domain rules that drive doubling and tax-geared penalties.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns and followed by the workflow dependency and format notes. Every clause carries information; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does explain the return shape (amount owed plus the penalty date schedule) and the input format conventions. For a six-parameter calculation tool, this is nearly complete, though it does not clarify jurisdiction scope beyond UK or what happens when a deadline is not provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including the pounds/currency for unpaidTax and the doubling semantics for accountsLateLastYear and ct600ThirdLateInARow. The description restates the ISO format and the filedOn default, adding little beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (late filing penalties for UK accounts and CT600) and a specific computed output: the amount owed for a given filing date plus the full schedule of penalty dates. It also names the complementary sibling tool, so an agent can separate it from lookup_uk_company or ct600_filing_guide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit context: use it together with lookup_uk_company, which supplies the accounts deadline. This establishes the workflow and preconditions, but it does not state when not to use it (e.g. for non-UK entities or for self-assessment deadlines), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uk_director_tax_yearARead-onlyInspect
The director's whole year in one view: the company's corporation tax AND the director's own Self Assessment, side by side. Give either filingId (a saved CT600 draft, signed in) or the company's figures, plus the director's salary per tax year and each dividend with the date it was PAID (dividends are taxed in the tax year paid, which may differ from the company's year). Returns the company's profit, tax and profit after tax, each personal tax year's Self Assessment, Class 1 National Insurance on the salary (employee and employer, paid through payroll, with the Employment Allowance where it applies), payments on account, every due date, and the combined total. For what-ifs, call once per scenario and compare them side by side; when a scenario changes the salary, pass figures with staffCosts adjusted (salary plus employer NI) so corporation tax reflects it (see the guide). With MORE THAN ONE company, ask about every company they draw from and pass companies (or, signed in, useProfile: true to start from their saved answers): the Self Assessment covers all of it once, associated companies share the corporation tax limits, connected companies share one Employment Allowance, and NI can add the pay together. The user decides; present options, not a recommendation. Never ask for a UTR or National Insurance number.
| Name | Required | Description | Default |
|---|---|---|---|
| figures | No | The return figures, all in POUNDS. periodStart/periodEnd are ISO dates. | |
| director | Yes | ||
| filingId | No | A saved CT600 draft to take the company figures from (needs a signed-in account) | |
| companies | No | For a person with MORE THAN ONE company: each company they draw salary or dividends from. Their Self Assessment is then worked out once on all of it, each company's corporation tax uses the associated-companies count from who controls what, connected companies share one Employment Allowance, and pay is added together for NI when businessInAssociation is true. Put the person's other income in director.years (otherDividends = companies NOT listed here) and leave director.dividends empty. | |
| useProfile | No | Signed in only: work out the person's WHOLE position from their saved profile (their Tax cockpit): every company on their account with its latest figures, plus companies not on A.X.E.L and income from elsewhere. The result's `inputs` echoes what was used, so a what-if can pass it back as `companies` with one thing changed. | |
| businessInAssociation | No | Do the companies share premises, staff, equipment or customers? If so HMRC adds the pay from them together for Class 1 NI (one set of thresholds). Ask when more than one company pays a salary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds rich context beyond the readOnlyHint/destructiveHint annotations: it discloses out-of-scope refusals (eligibility), that associated companies share CT limits and connected companies share one Employment Allowance, that dividends are taxed in the year paid, and the explicit 'never ask for UTR/NI number' rule. The annotations only carry safety; the description carries the real behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the density is justified by a 6-parameter tool with deeply nested, complex schema. It is a wall of text with heavy parentheticals, which slightly hurts scanability, but most sentences carry non-redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's very high complexity plus an output schema that covers return values, the description still deliberately covers the tricky cases: multi-company associated/connected treatment, NI aggregation via businessInAssociation, what-if iteration, and eligibility refusals. An agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (83%), so the schema already documents most fields, but the description adds genuine interpretation: dividends must carry their PAID date (taxed in that year), staffCosts must include employer NI in what-ifs so CT reflects it, and filingId/useProfile require a signed-in account. This exceeds the baseline-3 high-coverage case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it delivers the director's whole year, combining the company's corporation tax AND the director's Self Assessment side by side. This is clearly distinguishable from siblings like compute_ct600 (company only) and estimate_uk_self_assessment (personal only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use guidance: pass filingId OR figures, call once per scenario for what-ifs, and use `companies`/`useProfile` with more than one company. It stops short of explicitly naming the sibling tools it displaces, so the agent must infer the routing from the combined-scope framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
compute_ct6001 field changed- added
Input schema / properties / figures / properties / taxAlreadyPaidAdded value: +{ + "description": "Corporation tax the company has already paid HMRC for this period and has not had back (CT600 box 595), in pounds. 0 or absent if none. Not for a period over 12 months.", + "type": "number" +}
- Changed
uk_director_tax_year2 fields changed- added
Input schema / properties / companies / items / properties / figures / properties / taxAlreadyPaidAdded value: +{ + "description": "Corporation tax the company has already paid HMRC for this period and has not had back (CT600 box 595), in pounds. 0 or absent if none. Not for a period over 12 months.", + "type": "number" +} - added
Input schema / properties / figures / properties / taxAlreadyPaidAdded value: +{ + "description": "Corporation tax the company has already paid HMRC for this period and has not had back (CT600 box 595), in pounds. 0 or absent if none. Not for a period over 12 months.", + "type": "number" +}
1 tool update
- Changed
uk_director_tax_year1 field changed- changed
Input schema / properties / useProfile / descriptionPrevious value: -"Signed in only: work out the person's WHOLE position from their saved profile (You and your companies): every company on their account with its latest figures, plus companies not on A.X.E.L and income from elsewhere. The result's `inputs` echoes what was used, so a what-if can pass it back as `companies` with one thing changed."New value: +"Signed in only: work out the person's WHOLE position from their saved profile (their Tax cockpit): every company on their account with its latest figures, plus companies not on A.X.E.L and income from elsewhere. The result's `inputs` echoes what was used, so a what-if can pass it back as `companies` with one thing changed."
1 tool update
- Changed
uk_director_tax_year3 fields changed- added
Input schema / properties / businessInAssociationAdded value: +{ + "description": "Do the companies share premises, staff, equipment or customers? If so HMRC adds the pay from them together for Class 1 NI (one set of thresholds). Ask when more than one company pays a salary.", + "type": "boolean" +} - added
Input schema / properties / companiesAdded value: +{ + "description": "For a person with MORE THAN ONE company: each company they draw salary or dividends from. Their Self Assessment is then worked out once on all of it, each company's corporation tax uses the associated-companies count from who controls what, connected companies share one Employment Allowance, and pay is added together for NI when businessInAssociation is true. Put the person's other income in director.years (otherDividends = companies NOT listed here) and leave director.dividends empty.", + "items": { + "properties": { + "control": { + "description": "Who controls it (over half the shares or votes): 'me' on their own, 'jointly' with others such as a partner (treated as the same group of people for each such company), 'no' not them. Companies with the same control are associated and connected. Ask.", + "enum": [ + "me", + "jointly", + "no" + ], + "type": "string" + }, + "dividends": { + "items": { + "properties": { + "amount": { + "type": "number" + }, + "date": { + "description": "YYYY-MM-DD, the date PAID", + "type": "string" + } + }, + "required": [ + "date", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "dormant": { + "description": "No trade or business at all in the period: never counts as associated", + "type": "boolean" + }, + "figures": { + "description": "The company year's figures, if known; omit for a company whose accounts you do not have (no corporation tax side)", + "properties": { + "adminExpenses": { + "description": "Running costs excluding staff and depreciation", + "type": "number" + }, + "associatedCompanies": { + "type": "number" + }, + "averageEmployees": { + "type": "number" + }, + "calledUpShareCapitalNotPaid": { + "description": "Share capital called up but not yet paid by shareholders. An asset, shown before fixed assets.", + "type": "number" + }, + "capitalAllowances": { + "description": "Equipment bought this period (AIA)", + "type": "number" + }, + "cashAtBank": { + "type": "number" + }, + "claimCarryBack": { + "type": "boolean" + }, + "costOfSales": { + "type": "number" + }, + "creditorsDueAfterOneYear": { + "type": "number" + }, + "creditorsDueWithinOneYear": { + "type": "number" + }, + "debtors": { + "type": "number" + }, + "deferredTax": { + "description": "Deferred tax charge (or credit) for the period. Shown with the corporation tax charge as one tax line in the accounts. Never changes what HMRC is owed.", + "type": "number" + }, + "depreciation": { + "type": "number" + }, + "disallowableExpenses": { + "description": "Expenses included in the accounts that corporation tax does not allow, added back in the computation: client entertaining, fines and penalties, and similar. Do NOT subtract these from the cost figures; they stay in the accounts and are added back for tax.", + "type": "number" + }, + "electricChargePoints": { + "description": "100% allowance on electric vehicle charge-point equipment (CT600 box 713).", + "type": "number" + }, + "exporter": { + "description": "Boxes 616-618. Did the company sell to customers outside the UK during the period? 'goods' = physical products sent abroad, 'services' = work done for overseas customers, 'both', or 'neither'. Does NOT affect the tax computation, but it is a statement of fact on a signed return, so it must be answered truthfully rather than defaulted.", + "enum": [ + "goods", + "services", + "both", + "neither" + ], + "type": "string" + }, + "firstPeriod": { + "description": "true = first accounting period (no comparative column)", + "type": "boolean" + }, + "fixedAssets": { + "type": "number" + }, + "fortyPercentFyaExpenditure": { + "description": "COST of new main-rate plant and machinery bought on or after 1 January 2026 claimed under the FA 2026 40% first-year allowance; 40% is claimed this period and the remaining 60% is added to the main pool automatically (CT600 box 725 until 5 April 2027, box 696 after).", + "type": "number" + }, + "fullExpensing": { + "description": "100% first-year allowance on new main-rate plant and machinery (CT600 box 688).", + "type": "number" + }, + "interestIncome": { + "description": "Bank interest received (CT600 box 170)", + "type": "number" + }, + "lossesBroughtForward": { + "type": "number" + }, + "machineryAndPlantMainPool": { + "description": "Writing-down allowance claimed on the main pool (18%, or 14% for periods beginning on or after 1 April 2026; hybrid rate across the change).", + "type": "number" + }, + "machineryAndPlantSpecialRatePool": { + "description": "Writing-down allowance claimed on the special rate pool (6%).", + "type": "number" + }, + "mainPoolAdditions": { + "description": "Main pool: expenditure added this period that AIA is not claimed on.", + "type": "number" + }, + "mainPoolBroughtForward": { + "description": "Main pool: unrelieved qualifying expenditure brought forward from the previous period. Give this and we compute the writing-down allowance instead of trusting a typed one.", + "type": "number" + }, + "mainPoolDisposals": { + "description": "Main pool: disposal proceeds, capped at original cost. More than the pool holds produces a balancing charge.", + "type": "number" + }, + "otherIncome": { + "type": "number" + }, + "participatorLoanReliefs": { + "description": "CT600A Part 2: amounts repaid, released or written off within 9 months and 1 day of the period end, with the date.", + "items": { + "properties": { + "date": { + "format": "date", + "type": "string" + }, + "name": { + "type": "string" + }, + "repaid": { + "type": "number" + }, + "writtenOff": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "participatorLoans": { + "description": "CT600A Part 1: loans to directors, shareholders or their associates made in the period and still outstanding at the period end, whole pounds per person.", + "items": { + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "participatorLoansOutstandingAllPeriods": { + "description": "CT600A box A75: all loans to participators outstanding at the period end, including earlier periods.", + "type": "number" + }, + "participatorLoansRepaidBeforePeriodEnd": { + "description": "CT600A Part 1 tick box: loans made in the period and repaid before the period end.", + "type": "boolean" + }, + "periodEnd": { + "type": "string" + }, + "periodStart": { + "type": "string" + }, + "priorCalledUpShareCapitalNotPaid": { + "description": "Called up share capital not paid last year, for the comparative column.", + "type": "number" + }, + "priorCashAtBank": { + "type": "number" + }, + "priorCostOfSales": { + "type": "number" + }, + "priorCreditorsDueAfterOneYear": { + "type": "number" + }, + "priorCreditorsDueWithinOneYear": { + "type": "number" + }, + "priorDebtors": { + "type": "number" + }, + "priorDepreciation": { + "type": "number" + }, + "priorFixedAssets": { + "type": "number" + }, + "priorOtherCharges": { + "type": "number" + }, + "priorOtherIncome": { + "type": "number" + }, + "priorPeriodEnd": { + "type": "string" + }, + "priorPeriodStart": { + "type": "string" + }, + "priorProvisionsForLiabilities": { + "description": "Provisions for liabilities last year, for the comparative column.", + "type": "number" + }, + "priorStaffCosts": { + "type": "number" + }, + "priorStocks": { + "type": "number" + }, + "priorTax": { + "type": "number" + }, + "priorTurnover": { + "type": "number" + }, + "priorYearTaxableProfit": { + "type": "number" + }, + "provisionsForLiabilities": { + "description": "Deferred tax provisions, warranty claims and other future obligations. Deducted after creditors in arriving at net assets.", + "type": "number" + }, + "qualifyingDonations": { + "type": "number" + }, + "specialRatePoolAdditions": { + "description": "Special rate pool: expenditure added this period.", + "type": "number" + }, + "specialRatePoolBroughtForward": { + "description": "Special rate pool: balance brought forward (integral features, long-life assets, higher-emission cars).", + "type": "number" + }, + "specialRatePoolDisposals": { + "description": "Special rate pool: disposal proceeds.", + "type": "number" + }, + "staffCosts": { + "type": "number" + }, + "stocks": { + "type": "number" + }, + "structuresAndBuildingsAllowance": { + "description": "Structures and buildings allowance, 3% of qualifying construction cost (CT600 box 711).", + "type": "number" + }, + "stubCapitalAllowances": { + "description": "Only when the period of account runs over 12 months, which HMRC files as TWO returns: how much of capitalAllowances was spent in the second (stub) period. Everything else is apportioned by days, but equipment relief belongs to the period the money was actually spent. Ask the user; default 0.", + "type": "number" + }, + "stubQualifyingDonations": { + "description": "As stubCapitalAllowances, for qualifyingDonations: how much was paid in the second period. Default 0.", + "type": "number" + }, + "tradingStartDate": { + "description": "When the company started trading or first had income, ISO date. Only needed in a FIRST year whose period of account runs over 12 months (incorporation to the accounting reference date, which is the normal shape). Corporation tax starts here, not at incorporation, so a company that began trading a few weeks in usually needs only ONE CT600. The accounts still cover the whole period of account. Ask the user; do not guess.", + "type": "string" + }, + "turnover": { + "type": "number" + }, + "zeroEmissionsCars": { + "description": "First-year allowance on zero-emission cars (CT600 box 726).", + "type": "number" + }, + "zeroEmissionsGoodsVehicles": { + "description": "First-year allowance on zero-emission goods vehicles (CT600 box 723).", + "type": "number" + } + }, + "required": [ + "periodStart", + "periodEnd" + ], + "type": "object" + }, + "filingId": { + "description": "Signed in: take this company's figures from a saved CT600 draft instead", + "type": "string" + }, + "name": { + "type": "string" + }, + "payroll": { + "properties": { + "directors": { + "type": "number" + }, + "othersLiableForEmployerNi": { + "type": "boolean" + } + }, + "type": "object" + }, + "salaries": { + "description": "Salary from this company per tax year, keyed '2025-26' / '2026-27': { salary, taxDeducted }", + "type": "object" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / useProfileAdded value: +{ + "description": "Signed in only: work out the person's WHOLE position from their saved profile (You and your companies): every company on their account with its latest figures, plus companies not on A.X.E.L and income from elsewhere. The result's `inputs` echoes what was used, so a what-if can pass it back as `companies` with one thing changed.", + "type": "boolean" +}
2 tool updates
- Changed
estimate_uk_self_assessment3 fields changed- added
Input schema / properties / becameDirectorDuringYearAdded value: +{ + "description": "Became a director part-way through the tax year. Refused: a shorter NI earnings period needs HMRC's directors' calculator.", + "type": "boolean" +} - added
Input schema / properties / overStatePensionAgeAdded value: +{ + "description": "Over State Pension age: no employee National Insurance on salary (the company still pays employer NI)", + "type": "boolean" +} - added
Input schema / properties / payrollAdded value: +{ + "description": "For the Employment Allowance (up to £10,500 of employer NI). HMRC: a company with only one director cannot claim if that director is the only employee liable for employer NI. Ask both.", + "properties": { + "directors": { + "description": "How many directors the company has", + "type": "number" + }, + "othersLiableForEmployerNi": { + "description": "Is anyone else on the payroll paid more than £5,000 a year?", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
uk_director_tax_year3 fields changed- added
Input schema / properties / director / properties / becameDirectorDuringYearAdded value: +{ + "description": "Became a director part-way through the tax year. Refused: a shorter NI earnings period needs HMRC's directors' calculator.", + "type": "boolean" +} - added
Input schema / properties / director / properties / overStatePensionAgeAdded value: +{ + "description": "Over State Pension age: no employee National Insurance on salary (the company still pays employer NI)", + "type": "boolean" +} - added
Input schema / properties / director / properties / payrollAdded value: +{ + "description": "For the Employment Allowance (up to £10,500 of employer NI). HMRC: a company with only one director cannot claim if that director is the only employee liable for employer NI. Ask both.", + "properties": { + "directors": { + "description": "How many directors the company has", + "type": "number" + }, + "othersLiableForEmployerNi": { + "description": "Is anyone else on the payroll paid more than £5,000 a year?", + "type": "boolean" + } + }, + "type": "object" +}
2 tool updates
- Added
estimate_uk_self_assessment - Added
uk_director_tax_year
5 tool updates
- First observed
check_ct600_eligibility - First observed
compute_ct600 - First observed
ct600_filing_guide - First observed
lookup_uk_company - First observed
uk_company_late_filing_penalties
Related MCP Connectors
Free Companies House deadline checks for UK companies: due dates, penalties, dormancy signals.
Sourced, date-aware UK tax and payroll rates, deadlines and UK business checks, with GOV.UK sources.
Every UK company plus 35M Companies House accounts since 2008: lookup, search, alerts.
UK company data: search, officers, owners, shareholders, filed accounts, new companies, KYB checks.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides access to UK Companies House public data, enabling search and retrieval of company profiles, officers, filing history, and more through natural language queries.12-

companieswiseofficial
AlicenseAqualityDmaintenanceProvides verified UK company lookup and number validation for AI agents using official Companies House data. Enables lookup of registered details by number, validation of company number format, and search by company name.385 npmApache 2.0- AlicenseNot gradedqualityBmaintenanceEnables querying UK Companies House data via natural language, including company profiles, officers, filing history, and other statutory records.422 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to search and retrieve UK Companies House data including company profiles, officers, and filing history via the official API.4178 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.