Free, no key: UK parking ticket appeal guides, PCN contravention codes and deadline calculator.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Given the notice type and the date on the notice, returns the discount deadline, the challenge/representations deadline, when escalation can start, and (if you pass a rejection date) the tribunal or POPLA/IAS deadline. Statutory defaults; the notice is authoritative.
yyyy-mm-dd, the date on the notice
council_parking = Council parking PCN (windscreen or handed to you); council_postal = Council PCN by post (CCTV parking, bus lane or moving traffic outside London); london_moving = London bus lane, yellow box or banned turn (borough or TfL red route); tfl_charge = ULEZ, LEZ or Congestion Charge PCN (TfL); clean_air_zone = Clean Air Zone PCN (Birmingham, Bristol, Bath, Bradford, Portsmouth, Sheffield, Tyneside); private_anpr = Private parking charge by post (ANPR camera); private_windscreen = Private parking charge left on the windscreen
yyyy-mm-dd, the parking date if different (private ANPR/windscreen)
yyyy-mm-dd on the Notice of Rejection, if you have one
Given the notice type and the date on the notice, returns the discount deadline, the challenge/representations deadline, when escalation can start, and (if you pass a rejection date) the tribunal or POPLA/IAS deadline. Statutory defaults; the notice is authoritative.
| Argument | Type | Description |
|---|---|---|
| event_date | string | yyyy-mm-dd, the parking date if different (private ANPR/windscreen) |
| notice_date* | string | yyyy-mm-dd, the date on the notice |
| notice_type* | string | council_parking = Council parking PCN (windscreen or handed to you); council_postal = Council PCN by post (CCTV parking, bus lane or moving traffic outside London); london_moving = London bus lane, yellow box or banned turn (borough or TfL red route); tfl_charge = ULEZ, LEZ or Congestion Charge PCN (TfL); clean_air_zone = Clean Air Zone PCN (Birmingham, Bristol, Bath, Bradford, Portsmouth, Sheffield, Tyneside); private_anpr = Private parking charge by post (ANPR camera); private_windscreen = Private parking charge left on the windscreen |
| rejection_date | string | yyyy-mm-dd on the Notice of Rejection, if you have one |
| notice_to_owner_date | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"notice_type",
"notice_date"
],
"properties": {
"event_date": {
"type": "string",
"description": "yyyy-mm-dd, the parking date if different (private ANPR/windscreen)"
},
"notice_date": {
"type": "string",
"description": "yyyy-mm-dd, the date on the notice"
},
"notice_type": {
"enum": [
"council_parking",
"council_postal",
"london_moving",
"tfl_charge",
"clean_air_zone",
"private_anpr",
"private_windscreen"
],
"type": "string",
"description": "council_parking = Council parking PCN (windscreen or handed to you); council_postal = Council PCN by post (CCTV parking, bus lane or moving traffic outside London); london_moving = London bus lane, yellow box or banned turn (borough or TfL red route); tfl_charge = ULEZ, LEZ or Congestion Charge PCN (TfL); clean_air_zone = Clean Air Zone PCN (Birmingham, Bristol, Bath, Bradford, Portsmouth, Sheffield, Tyneside); private_anpr = Private parking charge by post (ANPR camera); private_windscreen = Private parking charge left on the windscreen"
},
"rejection_date": {
"type": "string",
"description": "yyyy-mm-dd on the Notice of Rejection, if you have one"
},
"notice_to_owner_date": {
"type": "string"
}
}
}What a two-digit council PCN contravention code means (e.g. 01, 12, 30, 34, 62), its penalty band, and the grounds that usually beat it.
| Argument | Type | Description |
|---|---|---|
| code* | string | The code on the PCN, e.g. '12' or '31J' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code on the PCN, e.g. '12' or '31J'"
}
}
}Returns a full AppealGo guide as Markdown, with its sources.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
}
}
}Public status for a customer reference such as PCN-4471A2B9.
| Argument | Type | Description |
|---|---|---|
| reference* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reference"
],
"properties": {
"reference": {
"type": "string"
}
}
}Find the code for a description, e.g. 'disabled bay' or 'bus lane'.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
}
}Search plain-English guides on appealing UK parking tickets: council PCNs, private parking charges (ParkingEye, Euro Car Parks, APCOA...), bus lane, ULEZ, Clean Air Zone, Notice to Owner, TE9 witness statements, London boroughs and contravention codes. Returns slugs to pass to get_guide.
| Argument | Type | Description |
|---|---|---|
| query* | string | Free text, e.g. 'ParkingEye grace period' or 'yellow box' |
| category | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Free text, e.g. 'ParkingEye grace period' or 'yellow box'"
},
"category": {
"enum": [
"notice-types",
"operators",
"councils",
"codes"
],
"type": "string"
}
}
}