# MTD Chase — chase clients for MTD records (remote · mtd-chase.smallwright.com)

UK bookkeepers: chase clients for Making Tax Digital quarterly records, upload links, reminders.

- Trust score: 80/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mtd-chase.smallwright.com`: 80/100 (this document), [markdown](https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase.md), [page](https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase)

## Channel facts

- Endpoint: `https://mtd-chase.smallwright.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.1.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 80/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2979 tokens (~141/item across 21 items; 20 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 71% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the MTD Chase — chase clients for MTD records MCP server?

MTD Chase — chase clients for MTD records is a hosted endpoint at https://mtd-chase.smallwright.com/mcp, 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.

### Claude

```bash
claude mcp add --transport http com-smallwright-mtd-chase 'https://mtd-chase.smallwright.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-smallwright-mtd-chase": {
      "url": "https://mtd-chase.smallwright.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-smallwright-mtd-chase": {
      "type": "http",
      "url": "https://mtd-chase.smallwright.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-smallwright-mtd-chase]
url = "https://mtd-chase.smallwright.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-smallwright-mtd-chase": {
      "type": "remote",
      "url": "https://mtd-chase.smallwright.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-smallwright-mtd-chase --url 'https://mtd-chase.smallwright.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-smallwright-mtd-chase:
    url: "https://mtd-chase.smallwright.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-smallwright-mtd-chase": {
      "Transport": "http",
      "Url": "https://mtd-chase.smallwright.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-smallwright-mtd-chase -t streamable-http -u 'https://mtd-chase.smallwright.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-smallwright-mtd-chase": {
      "type": "http",
      "url": "https://mtd-chase.smallwright.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 80, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-04 (score 79)

First indexed and scored.

## MCP tools (20)

### `get_mtd_deadlines` (~111 tokens)

MTD deadlines

Returns the four MTD for Income Tax quarterly update periods for a tax year (standard and calendar period ends), each deadline, the final declaration date, and days until the next deadline. Works without signing in.
Use this when: someone asks when the next quarterly update is due or what a Quarter covers.
Not for: whether a particular Client has sent records (whos_outstanding).

Input parameters:

- `tax_year` (string): e.g. "2026-27". Default: the current tax year.

### `get_started` (~63 tokens)

Where am I up to

Returns the practice's setup and current position: plan and active Clients vs limit, Clients, open Chases per Quarter, settings still unset, and the next few things the practitioner can say.
Use this when: the practitioner asks where they're up to or what to do next.

### `update_practice` (~287 tokens)

Update practice settings

Changes what Clients see and how MTD Chase behaves for this practice: name shown to Clients, reply-to email, sign-off, phone shown on the Client's page, how many days before the HMRC deadline Clients are asked to send by (0–30, default 10; applies to Chases started afterwards), how many days after a deadline files are kept (30–365), daily summary email on/off, and the default checklist new Chases ask Clients for (1–8 items; running Chases keep theirs). Returns before → after.
Use this when: the practitioner changes their details, the date clients are asked to send by, their default checklist, or retention.

Input parameters:

- `ask_by_days` (number): 0–30: days before the HMRC deadline that clients are asked to send by
- `daily_summary` (boolean)
- `default_checklist` (array): 1–8 items, each up to 120 characters
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `name` (string)
- `phone` (string): UK phone number shown to Clients; empty clears it
- `reply_to_email` (string)
- `retention_days` (number): 30–365: days after the HMRC deadline that files are kept
- `sign_off` (string)

### `export_practice_data` (~67 tokens)

Export practice data

Exports everything the practice holds in MTD Chase (Clients, Chases with history, Nudges sent, Records list, requests) as one JSON file; returns a download link for the signed-in practitioner.
Use this when: they want a copy of their data or are leaving.

### `request_feature` (~169 tokens)

Request a feature

Files a request with MTD Chase when the user asks for something none of the other tools can do, or adds a vote to a matching open request; returns its ID, status and any workaround with existing tools. No date is promised.
Use this when: the practitioner wants a capability MTD Chase doesn't have.
Not for: reporting a single Client's problem.

Input parameters:

- `closest_existing_tool` (string)
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `urgency` (string, required): blocking = they can't do the job today; nice_to_have = a workaround exists
- `what_the_user_wanted` (string, required): their own words
- `what_they_were_trying_to_achieve` (string, required): the job behind it

### `list_my_requests` (~80 tokens)

List my feature requests

Lists the practice's feature requests with status (open, planned, live, declined), how many times each was asked for, the workaround meanwhile, and for declined ones the reason.
Use this when: asked what happened to something they asked for.
Not for: asking for something new (request_feature) or what's recently live for everyone (whats_new).

### `whats_new` (~64 tokens)

What's new

Lists changes that went live recently in MTD Chase, and which of this practice's requests are now live, with the date each went live and what to say to try it.
Use this when: the practitioner asks what's new, or whether something they asked for is live yet.

### `add_clients` (~158 tokens)

Add Clients

Adds Clients (people the practice does MTD quarterly updates for) from a pasted list; matches existing Clients by email, else exact name. confirm:false (default) shows what would be added, skipped as duplicates, or rejected, and the plan-limit effect; confirm:true saves. Max 500.
Use this when: setting up or adding MTD clients from a spreadsheet or accounting-software export, or a typed list.
Not for: changing one Client (update_client).

Input parameters:

- `clients` (array, required)
- `confirm` (boolean): false (default) = dry run: shows what would happen, changes nothing. true = do it.
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.

### `update_client` (~143 tokens)

Update a Client

Changes one Client's name, email, mobile, period type (standard/calendar), tags or reference. Returns before → after.
Use this when: a Client's details change.
Not for: stopping chasing someone (archive_client) or pausing nudges (pause_nudges).

Input parameters:

- `client` (string, required): Client name, email or your own reference
- `email` (string)
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `mobile` (string)
- `name` (string)
- `period_type` (string)
- `ref` (string)
- `tags` (array)

### `archive_client` (~136 tokens)

Archive or unarchive a Client

Archives a Client who has left: their open Chases become skipped and their links stop working; they stop counting towards the plan limit. confirm:false (default) shows what would change. unarchive:true brings them back.
Use this when: a Client leaves the practice or comes back.

Input parameters:

- `client` (string, required): Client name, email or your own reference
- `confirm` (boolean): false (default) = dry run: shows what would happen, changes nothing. true = do it.
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `unarchive` (boolean)

### `list_clients` (~100 tokens)

List Clients

Lists Clients with contact details, period type, tags and the status of their Chase for the current Quarter.
Use this when: looking up who the practice has, finding a Client's details, or seeing a tagged group (e.g. landlords) with this Quarter's status.

Input parameters:

- `include_archived` (boolean)
- `period_type` (string)
- `tag` (string)
- `text` (string): part of a name or email

### `start_chase` (~301 tokens)

Chase a Quarter

Starts chasing Clients for their records for a Quarter: each gets a personal link (no login, works on a phone) and a first email; then Nudges go out on the practice's plan until they send their records. confirm:false (default) shows who would be chased, who has no email, the checklist and the dates (the date Clients are asked to send by, and the HMRC deadline); confirm:true starts it. Safe to repeat: Clients already being chased are left alone.
Use this when: asking Clients to send their records for a Quarter — everyone, a group by tag, or one Client — including particular items such as bank statements or receipts (checklist).
Not for: reminding Clients already being chased (send_nudges_now); documents unrelated to the quarterly update.

Input parameters:

- `checklist` (array): what to send, 1–8 items; default: the practice's checklist (sales and income, receipts and invoices for expenses, bank statements for accounts the practice can't already see)
- `clients` (required): "all", or Client names/emails/tags
- `confirm` (boolean): false (default) = dry run: shows what would happen, changes nothing. true = do it.
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.

### `get_chase_links` (~103 tokens)

Get Chase links

Returns each Client's personal records link for a Quarter and a ready-to-paste message for a messaging app or text.
Use this when: the practitioner wants to send a link themselves (no email on file, or they prefer a messaging app or text).

Input parameters:

- `clients` (array): names/emails; default all being chased
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.

### `mark_chase` (~180 tokens)

Set a Chase status

Sets one Client's Chase for a Quarter to ready, partial, nothing_to_report, skipped or back to waiting, with an optional note; Nudges stop for ready/nothing_to_report/skipped and resume for waiting/partial. The change is recorded in the Client's history.
Use this when: records arrived another way (office, post, email) or a Client should be skipped this Quarter.

Input parameters:

- `client` (string, required): Client name, email or your own reference
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `note` (string)
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.
- `recount` (boolean): true = recount lateness from now
- `status` (string, required)

### `list_records` (~117 tokens)

List Records

Lists the files (name, size, received) a Client sent through their link for a Quarter — or for every Client in a Quarter — with download links valid 24 hours for the signed-in practitioner, and the Client's note marked as written by the Client.
Use this when: asked what a Client sent or to download it.

Input parameters:

- `client` (string): Client name, email or your own reference
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.

### `set_nudge_plan` (~228 tokens)

Set the nudge plan

Sets when Nudges (reminder emails) go out for every Chase, including ones already running, counted from the date Clients are asked to send by (the ask-by date): days before it, on the day, and days after it, sent at 09:00 UK time on weekdays. A value left out keeps its current setting. Returns the plan in words and this Quarter's remaining nudge dates.
Use this when: the practitioner wants reminders on different days.
Not for: one extra reminder now (send_nudges_now), one Client (pause_nudges), or the ask-by date itself (update_practice).

Input parameters:

- `days_after` (array): 1–60, up to 6 values: days after it
- `days_before` (array): 1–60, up to 6 values: days before the date clients are asked to send by
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `on_the_day` (boolean): also nudge on the ask-by date itself

### `send_nudges_now` (~201 tokens)

Nudge now

Sends a Nudge email now to Clients who haven't finished sending records for a Quarter (waiting or partial), at most one per Client per day. confirm:false (default) lists who would get one and who is excluded (no email, nudged today, paused); confirm:true sends.
Use this when: chasing up everyone outstanding, or named Clients, now — an extra reminder outside the plan.

Input parameters:

- `clients` (array): Client names, emails or references; default: everyone outstanding
- `confirm` (boolean): false (default) = dry run: shows what would happen, changes nothing. true = do it.
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `only_status` (string): e.g. waiting = only those who've sent nothing
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.

### `pause_nudges` (~140 tokens)

Pause or resume Nudges

Stops all Nudges to one Client until a date (YYYY-MM-DD) or until resumed; resume:true restarts them. The result warns if the pause runs past a deadline.
Use this when: a Client is ill, away or has asked for no reminders for now.
Not for: a Client who has left (archive_client) or has sent their records (mark_chase).

Input parameters:

- `client` (string, required): Client name, email or your own reference
- `idempotency_key` (string): Optional; reuse when retrying so the change happens once.
- `resume` (boolean)
- `until` (string): YYYY-MM-DD

### `whos_outstanding` (~131 tokens)

Who's outstanding

Returns the Clients who haven't finished sending records for a Quarter (waiting or partial), with days to/after the date they were asked to send by, last Nudge, whether they opened their link, and counts per status.
Use this when: asked who's still outstanding, who's sent what, or how the Quarter is going.
Not for: one tagged group (list_clients with tag).

Input parameters:

- `late_last_quarter` (boolean): only those who were late last Quarter
- `quarter` (string): Quarter like "2026-27 Q3". Default: the Quarter whose HMRC deadline is next.

### `get_client_history` (~125 tokens)

Client history

Returns a Client's Chases across Quarters — when they finished and how many days early or late against the date they were asked to send by (and whether before or after the HMRC deadline) — with a one-line summary. Without a client, returns every active Client ranked by how late they usually are.
Use this when: asked whether a Client is usually late, how they did last time, or who's always late.
Not for: who hasn't sent records this Quarter (whos_outstanding).

Input parameters:

- `client` (string): Client name, email or your own reference

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase#diagnostics

## Score history

- 2026-11-05: 80
- 2026-11-04: 79

## Common questions

### What is the MTD Chase — chase clients for MTD records MCP server?

MTD Chase — chase clients for MTD records is an MCP server listed in the public MCP registry as com.smallwright/mtd-chase. UK bookkeepers: chase clients for Making Tax Digital quarterly records, upload links, reminders. This page covers its hosted endpoint (https://mtd-chase.smallwright.com/mcp).

### Is the MTD Chase — chase clients for MTD records MCP server safe to use?

MTD Chase — chase clients for MTD records scores 80 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 MTD Chase — chase clients for MTD records MCP server expose?

MTD Chase — chase clients for MTD records exposes 20 tools: get_mtd_deadlines, get_started, update_practice, export_practice_data, request_feature, and 15 more. Their descriptions and schemas cost roughly 2,904 tokens of context every time the server is loaded.

### Does the MTD Chase — chase clients for MTD records MCP server require authentication?

Yes. MTD Chase — chase clients for MTD records asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the MTD Chase — chase clients for MTD records MCP server still maintained?

MTD Chase — chase clients for MTD records 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.

### What did VerifyMCP test on the MTD Chase — chase clients for MTD records MCP server?

VerifyMCP ran 14 checks on MTD Chase — chase clients for MTD records, covering TLS certificate, Authorization, HTTPS, HSTS header and 10 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://mtd-chase.smallwright.com/mcp
- Website: https://mtd-chase.smallwright.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase.json
- HTML version of this page: https://verifymcp.io/servers/com-smallwright-mtd-chase/mtd-chase
