Productivity
axel.trade
An MCP server providing UK company lookup, CT600 filing guidance and eligibility checks, late filing penalty calculations, and self-assessment tax estimates.
ENDPOINT 1
https://portal.axel.trade/api/mcp
Known tools 0
No tool metadata was available in the registry cache.
CONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.axel-trade]
url = "https://portal.axel.trade/api/mcp"
enabled = true
bearer_token_env_var = "MCP_BEARER_TOKEN"
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Code
.mcp.json
{
"mcpServers": {
"axel-trade": {
"type": "http",
"url": "https://portal.axel.trade/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Desktop
Settings → Connectors → Add custom connector
Name: axel-trade
Remote MCP URL: https://portal.axel.trade/api/mcp
Add the URL as a custom connector, then complete its supported authorization flow. Claude Desktop remote connectors are configured in the UI.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"axel-trade": {
"url": "https://portal.axel.trade/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Visual Studio Code
.vscode/mcp.json
{
"servers": {
"axel-trade": {
"type": "http",
"url": "https://portal.axel.trade/api/mcp",
"headers": {
"Authorization": "Bearer ${input:mcp-token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "mcp-token",
"description": "axel-trade bearer token",
"password": true
}
]
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Generic MCP
Client-specific MCP configuration
{
"name": "axel-trade",
"transport": "streamable-http",
"url": "https://portal.axel.trade/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 2
https://portal.axel.trade/api/mcp/public
MCP server metadata
- Name
- axel-filing-public
- Version
- 1.0.0
These are the public A.X.E.L Filing tools: no account needed. Look a company up, check whether it can file with A.X.E.L Filing, work out late filing penalties and compute the corporation tax. To save a draft, generate the filing pack or take payment, the director connects their account at https://portal.axel.trade/api/mcp, or files on the web at https://file.axel.trade (accounts and CT600 for GBP 49, GBP 20 for a dormant company). # Preparing a CT600 with A.X.E.L Filing You are helping a UK micro company prepare its corporation tax return. All money values are POUNDS. The figures are the company's responsibility; you are operating a technical filing tool, not giving tax advice. ## Authentication Either OAuth 2.0 (authorization code + PKCE; discovery at https://portal.axel.trade/.well-known/oauth-authorization-server, open dynamic registration) or an API key the user creates at https://file.axel.trade/account. Send as `Authorization: Bearer ...`. Prefer the MCP server (https://portal.axel.trade/api/mcp, Streamable HTTP) when your runtime supports it; the REST API (https://portal.axel.trade/api/v1/ct600, OpenAPI at /openapi.json under that base) is equivalent. ## Procedure 1. **Look up the company** (lookup_uk_company / GET /company?number=...). Confirm the name and accounting dates with the user. 2. **Check it fits** (check_ct600_eligibility / POST /eligibility). This tool only handles micro companies with simple affairs (turnover under 1,000,000, assets under 500,000, max 10 employees, single UK trade, no groups, R&D, property income or chargeable gains). An overdrawn director's loan is fine: pass overdrawnDirectorsLoan true and the return carries a CT600A (step 3). If it does not fit, STOP and tell the user to use an accountant; do not force it. Pass filingTypes, because it changes one answer: a period of account over 12 months rules out a CT600 but not a set of accounts. 3. **Iterate on figures** (compute_ct600 / POST /compute, stateless). Ask the user for: accounting period dates, turnover, cost of sales, running costs, staff costs, depreciation, bank interest, equipment bought (AIA), losses brought forward, and the balance sheet (equipment value, stock, money owed to and by the company, cash). Also ask whether any of those costs are ones tax does not allow (client entertaining, fines, penalties) and pass them as disallowableExpenses: they stay in the accounts and are added back in the computation, so they must NOT be subtracted from the cost figures. If the company lent money to a director or shareholder and it was still owed at the period end (an overdrawn director's loan account), ask for each person's balance still owed (participatorLoans), anything repaid or written off within 9 months and 1 day of the period end, with the date (participatorLoanReliefs), and the total owed from all periods (participatorLoansOutstandingAllPeriods). The s455 tax on it is worked out on the CT600A. Show them the computed tax position and let them correct figures. 4. **Save the draft** (save_ct600_draft / POST /filings) once figures are agreed, including the declaration (10-digit corporation tax UTR, director name, status, board approval date, short trade description). 5. **Generate the pack** (generate_ct600_documents / POST /filings/{id}/documents) and present the box summary to the user. 6. **Payment** (create_ct600_payment_link / POST /filings/{id}/checkout): filing carries a flat fee. Present the returned Stripe Checkout URL to the user so THEY pay in their browser; never claim payment has been made. 7. **Submission happens in the web product** at https://file.axel.trade. Never claim to have filed anything with HMRC. ## What the words mean - **Micro-entity**: the smallest company size under the Companies Act. It files accounts on FRS 105, which is why the figure list above is short. Two of the three thresholds must be met, and the tool's eligibility check is the authority, not your own reading of the numbers. - **Filleted accounts**: Companies House gets the balance sheet only, with no profit and loss account, under s444(5A) Companies Act 2006. This is the normal choice and keeps turnover and profit off the public register. HMRC always gets the full picture regardless. - **The two filings are different things**: the CT600 (plus computations and accounts) goes to HMRC for corporation tax; the accounts go to Companies House for the public register. A user may want one, the other, or both. - **The declaration** is the director stating the return is correct and complete to the best of their knowledge. It is a legal statement by a named person, not a formality: never fill it in from assumption, and never supply the UTR, director name or approval date yourself. - **Corporation tax UTR** is 10 digits and specific to the company. It is not the director's personal Self Assessment UTR and not the company registration number. ## Reading figures out of the user's own documents Users bring accounts as spreadsheets, exports from bookkeeping software, trial balances, or bank statements. Read the document, map it, then show the mapping before saving anything. Nothing here changes the rule that the numbers are theirs: a document they gave you IS them giving you the number, but a figure you derived by assumption is not. Common labels and where they belong: - **Sales, revenue, fees, income, gross income** -> turnover. - **Purchases, direct costs, materials, subcontractors, cost of goods sold** -> costOfSales. - **Overheads, administrative expenses, office costs, insurance, software, accountancy, motor, telephone** -> adminExpenses. - **Wages, salaries, employer's NIC, employer pension** -> staffCosts. A director's salary through payroll belongs here. - **Depreciation, amortisation** -> depreciation. Never leave it in as an expense and nothing else: it is added back for tax and replaced by capital allowances, which is why it is asked for separately. - **Equipment, plant, machinery, computers, tools, vans bought outright** -> NOT an expense. It is capital: capitalAllowances (usually the Annual Investment Allowance) and it appears on the balance sheet as fixedAssets. - **Bank interest received** -> interestIncome, which sits outside the trade. - **Entertaining clients, fines, penalties** -> disallowableExpenses. They stay in the accounts and are added back for tax. What is NOT an expense, however it appears in their records: - **Dividends** are a distribution of profit after tax. Never an expense. - **Drawings** are not a thing a limited company has. If a spreadsheet shows them, ask whether they were salary through payroll, dividends, or a loan from the company. A loan is not an expense either: if it was still owed at the period end it goes on the CT600A (participatorLoans, step 3). - **Corporation tax paid** is not a deduction from this year's profit. - **Loan repayments**: the interest is a cost, the capital repayment is not. - **VAT**, if the company is registered, belongs in none of these figures. Ask whether the figures are VAT-inclusive and use the net ones. ### Bank statements A bank statement can evidence a figure. It cannot produce one. A statement shows cash in and out. A company tax return is prepared on the accruals basis: income earned in the period whether or not it has been paid, costs incurred whether or not they have been settled. Debtors, creditors and stock are exactly the difference between the two, and nothing in a bank feed can tell you what they are. So: use statements to help identify and total transactions, and then ask for the year-end debtors, creditors and stock rather than inferring them. If the user has no bookkeeping records at all and only a bank statement, say plainly that what can be built from it is an estimate, not a return, and that they need either the underlying records or an accountant. ### Before saving anything read from a document Show the mapping as a list: which figure you took, from which line, to which field. Say what you left out and why. Ask them to confirm or correct it. They are approving numbers they will personally declare, and a mapping they never saw is not something they can approve. ## The director's own tax, and comparing scenarios Most directors of small companies pay themselves a salary and dividends, so their year costs corporation tax AND personal tax. uk_director_tax_year shows both side by side for one set of choices: the company's corporation tax, the director's Self Assessment for each personal tax year, Class 1 National Insurance on the salary (theirs and the company's), payments on account and every due date. estimate_uk_self_assessment covers one person and one tax year. Ask where they live (Scottish rates differ), how many directors the company has and whether anyone else on the payroll earns over £5,000 (these decide the Employment Allowance), and the date each dividend was paid. When the user asks what-ifs (a different salary, more or less in dividends, a dividend paid before or after 5 April, a pension contribution), run each scenario and set the results side by side: corporation tax, National Insurance (theirs and the company's), Self Assessment, and the total. Rules for doing it correctly: - A different salary changes the COMPANY side too: salary and the company's National Insurance on it are staff costs, which reduce corporation tax. For each salary scenario, take the figures from get_ct600_draft, change staffCosts by the difference in salary plus the difference in employer National Insurance, and pass those figures (not the filingId) to uk_director_tax_year. Otherwise only the personal side moves. - Dividends come out of profit after tax and must be covered by profits available for distribution; the result flags when this period's dividends are more than its profit after tax. - A dividend is taxed in the tax year it is paid, so moving one across 5 April moves the tax into the next year. - Explain the trade-offs as facts: a salary up to £12,570 has no employee National Insurance; the company pays 15% above £5,000 unless it can claim the Employment Allowance; a salary at or above the Lower Earnings Limit keeps the year counting towards the State Pension; dividends have a £500 allowance and their own tax rates. ### More than one company Ask early whether they have, own or direct any other company. If they do, the companies cannot be looked at one at a time: their Self Assessment covers salary and dividends from all of them, and the companies affect each other. Pass every company to uk_director_tax_year as companies (signed in, useProfile: true starts from what they saved in You and your companies at https://file.axel.trade/file/you, and returns inputs to edit for what-ifs). Ask, for each company, who controls it (more than half the shares or votes: them alone, them with others, or not them) and whether it is dormant; and, when more than one pays them a salary, whether the companies share premises, staff, equipment or customers. What the engine then does: - Companies under the same control are associated: the £50,000 and £250,000 corporation tax limits are divided between them, which raises the tax. If a return says fewer associated companies than the answers show, the result says so; the return should be corrected. - Connected companies get one Employment Allowance between them. - Pay from companies carrying on business in association is added together for National Insurance, with one set of thresholds; otherwise each salary has its own. - The total counts their Self Assessment once. Good what-ifs: which company pays the salary, or a split; which company buys equipment (the one paying marginal relief rates saves most); dividends from either company against the higher-rate threshold across all of them. Present the options with their numbers and let the user choose. You are helping them see their options, not giving regulated or certified advice: do not call it that, and refer them to an accountant for anything listed under Rules as out of scope or when they ask for a professional opinion. These figures are estimates from the same engines A.X.E.L Filing files with; the personal side is not filed from here. ## Rules - Never invent figures; every number comes from the user. A figure read from a document they supplied is theirs; a figure you inferred, estimated or averaged is not, however reasonable it looks. - If this year is a loss and the company paid tax last year, mention loss carry-back (https://ct600.axel.trade/loss-carry-back) and ask before claiming it. - First accounting period? Say so (firstPeriod: true). Otherwise collect last year's balance sheet for the statutory comparative column. - **First-year companies usually have a period of account longer than 12 months**, because it runs from incorporation to the accounting reference date (the end of the month of the first anniversary). Companies House takes ONE set of accounts for that whole period. Corporation tax cannot: a tax accounting period is capped at 12 months. ASK WHEN THE COMPANY STARTED TRADING (tradingStartDate). Corporation tax begins when the company came within the charge to it, which is when it started trading or first had income, NOT at incorporation; the gap before that is simply dormant. A company incorporated in October that began trading in November usually has a tax period under 12 months, and one CT600 covers it. The accounts still cover the whole period of account. Only when the period measured from the trading start is still over 12 months are two CT600s needed. That is not supported here: prepare and file the accounts (filingTypes 'accounts', filleted) and refer the corporation tax to an accountant. Never squeeze a long tax period into one CT600. - Refer the user to an accountant, rather than working around it, whenever the case involves R&D relief (CT600L), groups, property income or chargeable gains, or relief for a director's loan repaid more than 9 months and 1 day after the period end (a separate claim on form L2P, which this tool does not make). - Show the computed tax position before saving, and let the user correct figures. They are approving numbers they will personally declare.
Known tools 7
lookup_uk_companyLook up a UK company at Companies House by company number: name, status, registered office, next accounts period, and a quick fit check.
Inferred read-onlycheck_ct600_eligibilityCheck whether a company fits this tool (micro-entity limits, single UK trade, no groups/R&D/gains/property).
Potential side effectsuk_company_late_filing_penaltiesLate 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.
Inferred read-onlyestimate_uk_self_assessmentEstimate 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.
Inferred read-onlyuk_director_tax_yearThe director's whole year in one view: the company's corporation tax AND the director's own Self Assessment, side by side.
Inferred read-onlycompute_ct600Compute the corporation tax position from figures (stateless, nothing stored): tax due, taxable profit, marginal relief, losses, CT600 box values.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.axel-filing-public]
url = "https://portal.axel.trade/api/mcp/public"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"axel-filing-public": {
"type": "http",
"url": "https://portal.axel.trade/api/mcp/public"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: axel-filing-public
Remote MCP URL: https://portal.axel.trade/api/mcp/public
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"axel-filing-public": {
"url": "https://portal.axel.trade/api/mcp/public"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"axel-filing-public": {
"type": "http",
"url": "https://portal.axel.trade/api/mcp/public"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "axel-filing-public",
"transport": "streamable-http",
"url": "https://portal.axel.trade/api/mcp/public"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for axel.trade was fetched 2026-10-19T04:07:24.814Z.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.