AppealGo
Server Details
Check and appeal UK parking tickets (PCNs): grounds, deadlines, draft letters and filing.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
10 toolscalculate_deadlinesCalculate PCN and parking charge deadlinesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_date | No | yyyy-mm-dd, the parking date if different (private ANPR/windscreen) | |
| notice_date | Yes | yyyy-mm-dd, the date on the notice | |
| notice_type | Yes | 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 | No | yyyy-mm-dd on the Notice of Rejection, if you have one | |
| notice_to_owner_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent behavior. The description adds useful context beyond that: it clarifies that results are 'statutory defaults' and that 'the notice is authoritative', which tells the agent when the computed value may be overridden. No contradiction with annotations.
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 with no filler: the first front-loads the inputs and enumerates the returned deadlines, the second adds the authoritative caveat. Every clause earns its place.
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 compensates by enumerating the returned deadline values and the conditional tribunal/POPLA/IAS deadline. It leaves the optional event_date and notice_to_owner_date parameters unexplained, but those are not needed for the core call.
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 the baseline is 3; the description reinforces the role of notice_type, notice_date, and rejection_date but adds no new meaning for event_date or notice_to_owner_date. The enum descriptions in the schema already carry most of the semantic load.
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 uses a specific verb ('returns') and names the resource (deadlines) plus the exact outputs: discount deadline, challenge/representations deadline, escalation start, and tribunal/POPLA/IAS deadline with a rejection date. This distinguishes it clearly from siblings like check_notice or file_appeal, which address different actions.
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?
It explicitly states the input condition ('Given the notice type and the date on the notice') and the optional rejection-date branch, making it clear when to call it. It does not name alternative tools or exclusion cases, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_noticeScan a parking ticket / PCN and get the grounds + draft appealAInspect
Upload a photo or PDF of a UK parking ticket, council PCN, private parking charge, bus lane, ULEZ or Clean Air Zone notice. AppealGo reads it, identifies the issuer and contravention, finds the grounds to challenge it and drafts the appeal. Checking is free (fair-use cap per key per day); filing costs £6.99 or is covered by an Unlimited plan. Provide image_url OR image_base64. Takes 20–90 seconds. Never invent notice details: report exactly what this tool returns.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Scan even if this account already appealed the same notice | |
| file_name | No | ||
| image_url | No | Public https URL of the photo/PDF | |
| content_type | No | image/jpeg, image/png, image/heic or application/pdf (for image_base64) | |
| image_base64 | No | Base64 of the photo/PDF (data: URLs accepted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds non-schema behavior: 20–90 second latency, fair-use daily cap, pricing, and an explicit anti-hallucination instruction to report exactly what the tool returns. Annotations already carry readOnly/destructive flags, so the description adds meaningful context rather than repeating them.
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 description is front-loaded with the core action and includes necessary operational details like input format, latency, and cost. It is slightly dense with pricing/plan information, but each sentence serves agent decision-making.
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?
Despite lacking an output schema, the description states that results include issuer, contravention, grounds, and a drafted appeal, and warns not to invent details. It covers input requirements, timing, and cost; minor gaps remain around exact response structure and mutual exclusivity of image inputs.
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 input schema covers most parameters (80%) with descriptions for image_url, content_type, image_base64, and force; the description reinforces 'image_url OR image_base64' but adds little beyond that. file_name is left undocumented in both the description and schema.
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 names a concrete verb+resource: upload a UK parking ticket/PCN and have AppealGo read it, identify the issuer and contravention, and draft grounds/appeal. This clearly distinguishes it from siblings like get_notice, explain_contravention_code, and file_appeal.
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: use when the user has a photo/PDF of a UK notice to check; instructs the agent to provide image_url or image_base64 and notes timing, cost, and free-use cap. It does not explicitly name sibling alternatives or when-not conditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_contravention_codeExplain a PCN contravention codeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code on the PCN, e.g. '12' or '31J' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive, so the description carries little safety burden. It adds useful context by describing the kind of output (meaning, penalty band, grounds) and includes the caveat 'usually beat it,' implying legal guidance is not absolute. It does not disclose other behavioral traits like data sources or limitations.
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?
One compact sentence that front-loads the main purpose and then lists the key deliverables. Every element adds value, and there is no filler, repetition, or unnecessary detail.
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 read-only lookup tool with a single required parameter and helpful annotations, the description is nearly complete: it tells the agent what the tool returns and the type of input expected. It does not explain how this differs from search_contravention_codes or whether codes outside the listed set are accepted, but these are minor gaps given the simple scope.
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 100% and the single parameter code is already described with examples in the schema. The description adds the notion of a 'council PCN' and examples of penalty codes, but those largely overlap with the parameter description. It provides no additional formatting or normalization guidance beyond what is in the schema.
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 clearly identifies the resource (council PCN contravention codes) and what the tool provides: meaning, penalty band, and grounds. It lacks an explicit verb in the description text, but the tool title 'Explain a PCN contravention code' supplies it, and the scope is specific enough to distinguish it from a generic search tool.
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 use case is implied: an agent would call this when the user wants to know what a code means or how to challenge it. However, there is no explicit guidance contrasting it with sibling tools like search_contravention_codes, and no stated conditions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_appealFile the appeal with the issuerADestructiveInspect
Files the drafted appeal for a notice in the account holder's own name. This sends a real appeal to a real council or parking operator and cannot be undone, so confirm with the user first. If the notice is unpaid and not covered by a plan, returns a Stripe checkout_url (£6.99 standard); once paid, AppealGo files it automatically. Name and postal address are required (saved on the profile, or pass them here). Always show the user the checkout_url rather than claiming the appeal was filed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | Full name the appeal is filed under | |
| address | No | Full postal address including postcode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive action (destructiveHint=true), but the description goes further: it explains irreversibility ('cannot be undone'), the real-world consequence (sends to a real council/parking operator), the payment step, and the requirement to show the checkout_url rather than falsely claim success. This provides substantial behavioral context beyond annotations.
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 description is concise yet information-dense. It front-loads the core purpose, then covers irreversibility, payment flow, required fields, and user instruction in a logical order. Every sentence serves a purpose, with no 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?
For a mutating, irreversible action with a payment component, the description covers side effects, prerequisites (name/address), the conditional payment step, and the expected output (checkout_url) and subsequent automatic filing. It is sufficiently complete for an agent to invoke correctly without an output schema.
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 schema documents id, name, and address, with descriptions for name and address (67% coverage). The description adds value by explaining that name and address are required for the appeal but can be sourced from the profile if not passed, and clarifies the required condition. This goes beyond the schema's minimal description of the parameters.
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 verb ('files') and resource ('the drafted appeal'), and clarifies it is done in the account holder's name. It also differentiates from siblings like 'lookup_appeal_status' by implying this is the actual filing action, not a status check. The purpose is unmistakable.
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 description provides clear context on when to use it (filing a drafted appeal) and includes critical pre-conditions like 'confirm with the user first' and the payment flow for unpaid notices. It does not explicitly name alternative tools, but the context strongly implies when not to use it (e.g., for checking status), so it is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideRead a guideARead-onlyIdempotentInspect
Returns a full AppealGo guide as Markdown, with its sources.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds behavioral detail about the return format (Markdown) and that sources are included, which goes beyond the annotations. No contradictions.
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 description is a single, efficient sentence that front-loads the core action and output format. No filler or 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?
For a simple read-only tool with one parameter and no output schema, the description covers the return format and content, but does not explain the slug or address error scenarios (e.g., invalid or missing guide). It is adequate but has gaps given the zero schema coverage.
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 0% and the description does not explain the 'slug' parameter at all. While the parameter name is suggestive, the description fails to clarify what a slug represents or how it maps to a guide. The description must compensate for the lack of schema documentation but does not.
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 clearly states the tool returns a full AppealGo guide in Markdown format and includes sources. This is specific and distinguishes it from search_guides, which is about finding guides rather than retrieving a complete one by slug.
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 description does not explicitly mention when to use this tool versus alternatives. While the sibling list includes search_guides, there is no guidance on selecting get_guide when you have a slug or need a full guide. Usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_noticeGet one notice with its draft appeal and statusARead-onlyIdempotentInspect
Full detail for a notice id returned by check_notice or list_my_notices.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that this returns 'full detail' rather than a summary and constrains valid IDs to those from sibling tools. However, it does not expand on response contents or error behavior, which is acceptable but not rich.
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 description is one tight sentence that delivers the essential information: what it returns and where the valid input comes from. Every word earns its place, and the most important qualifier ('Full detail') is front-loaded.
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 single-parameter, read-only, idempotent tool with strong annotations, the description is mostly complete. It tells the agent where to obtain a valid ID and what kind of result to expect. The absence of an output schema and the vagueness of 'full detail' are minor gaps, but not blocking for correct invocation.
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?
With 0% schema description coverage, the description carries the burden for the single 'id' parameter. It adds meaningful provenance semantics: the ID must come from check_notice or list_my_notices. This is more useful than the bare schema type string, though it does not describe format requirements.
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 clearly identifies the resource as a single notice and specifies that it returns 'full detail' for an ID, distinguishing it from list-oriented siblings like list_my_notices and check_notice. The title further clarifies the response includes draft appeal and status. This is a specific verb+resource statement with no ambiguity.
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 description explicitly tells the agent when this tool is appropriate: for a notice ID 'returned by check_notice or list_my_notices.' This provides clear context for chaining after discovery tools. It does not explicitly state when not to use it or name alternative tools, but the source constraint is strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_noticesList the account's notices and appealsARead-onlyIdempotentInspect
Every notice this AppealGo account has scanned, with status and links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the description only needs to add context; it does by noting the account-level scope and that results include status and links. It omits pagination/ordering/limit behavior, but for a simple read-only listing with strong annotations this is adequate.
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?
One short sentence that states the resource, scope, and result contents without filler. The most useful information is front-loaded.
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?
The combination of zero parameters, safe-read annotations, and a simple account-wide list makes the description essentially sufficient for an agent to invoke it. It could be slightly richer about output ordering or complete field details, but nothing critical is missing.
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?
There are zero parameters, so the schema is fully self-documenting and the baseline is high. The description appropriately adds no parameter detail because nothing needs explaining.
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 clear verb ('list'), an account-scoped resource ('every notice this AppealGo account has scanned'), and the included attributes ('with status and links'). However, it does not explicitly differentiate itself from siblings like get_notice or check_notice, so it falls short of the top score.
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?
No guidance on when to choose this tool over siblings such as get_notice, check_notice, or lookup_appeal_status. The phrase 'every notice ... account has scanned' only implies an account-wide use case but gives no explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_appeal_statusLook up an AppealGo appeal by referenceARead-onlyIdempotentInspect
Public status for a customer reference such as PCN-4471A2B9.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds 'public status' implying no authentication needed, but this is minor. It does not contradict annotations and adds minimal extra context beyond what annotations provide.
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 sentence with no filler, front-loaded with the core purpose and an example. Every word contributes to understanding the tool.
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 simple one-parameter lookup with no output schema, the description is adequate to call the tool correctly. It could mention the return format, but that is not necessary given the simplicity of the 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?
With 0% schema description coverage, the description provides a concrete example reference (PCN-4471A2B9), giving the agent a format hint that the schema lacks. This adds meaningful semantic value beyond the raw string type, though it doesn't fully specify accepted patterns.
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 action ('look up') on a specific resource ('AppealGo appeal') with a concrete example reference format. This clearly distinguishes it from sibling tools like file_appeal or check_notice, which have different purposes.
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 description implies this is for public status lookups but does not explicitly state when to use it versus alternatives. No mention of other tools or conditions for exclusion, leaving the agent to infer context from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contravention_codesSearch contravention codes by descriptionARead-onlyIdempotentInspect
Find the code for a description, e.g. 'disabled bay' or 'bus lane'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description does not need to restate those. The description adds only examples, not behavioral details such as result format, matching behavior, or what happens with partial matches. It is consistent with annotations but adds little beyond them.
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 description is a single front-loaded sentence with a clear action and two useful examples. Every element earns its place; there is no filler or redundant elaboration.
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 simple one-parameter lookup with strong annotations, the description is mostly complete: the agent knows what to pass and the general purpose. The lack of an output schema and any statement about multiple matches or empty results is a minor gap, but not critical for such a straightforward search.
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 schema gives no description for the single 'query' parameter, so the tool description must compensate. It does clarify that query is a human-readable description and supplies examples. However, it leaves matching semantics (exact vs partial) and acceptable input formats ambiguous, making it adequate but minimal.
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 uses a clear verb ('Find') with a specific resource ('the code for a description') and concrete examples ('disabled bay', 'bus lane'), so an agent can grasp the core purpose immediately. It does not explicitly differentiate from the sibling explain_contravention_code, though the direction is strongly implied; thus it stops short of a 5.
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 description implies the primary use case: given a description, find the corresponding contravention code. However, it provides no explicit guidance on when not to use it or when to prefer alternatives like explain_contravention_code or search_guides, so the agent must infer usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_guidesSearch AppealGo's appeal guidesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free text, e.g. 'ParkingEye grace period' or 'yellow box' | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds behavioral value by specifying the return format (slugs to pass to get_guide) and the scope of content covered. It does not contradict annotations and provides useful context beyond the structured hints.
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 description is a single, information-dense sentence that front-loads the core purpose and includes a concrete list of topics and the return value. It is efficient, though slightly long due to the enumerated examples, but each element adds value and there is no 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?
The description is comprehensive in scope and mentions the return type, but it lacks any detail about the category parameter and does not mention possible result limitations (e.g., pagination, ordering). Given there is no output schema, the description should clarify the expected return structure beyond 'slugs'. The coverage of topics is thorough, but the parameter ambiguity leaves an agent uncertain about how to use category effectively.
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 schema covers the query parameter with an example but the category parameter is only an enum without description, and the tool description does not explain either parameter. With schema description coverage at 50%, the description should compensate for the category parameter's meaning, but it only implicitly references categories (notice-types, operators, councils, codes) without clarifying how they map. This is a notable gap.
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 clearly states the tool searches plain-English guides on appealing UK parking tickets, listing specific topics (council PCNs, private parking charges, bus lane, etc.) and explicitly notes it returns slugs for get_guide. This distinguishes it from sibling tools like search_contravention_codes and get_guide, giving a specific verb+resource+scope.
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 description clearly indicates the tool is for finding guides and that results are slugs to pass to get_guide, implying a follow-up workflow. It implicitly separates it from search_contravention_codes by focusing on guides rather than codes. However, it does not explicitly state when not to use this tool or mention alternatives, but the context is clear enough.
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.
10 tool updates
- First observed
calculate_deadlines - First observed
check_notice - First observed
explain_contravention_code - First observed
file_appeal - First observed
get_guide - First observed
get_notice - First observed
list_my_notices - First observed
lookup_appeal_status - First observed
search_contravention_codes - First observed
search_guides
Related MCP Connectors
Free, no key: UK parking ticket appeal guides, PCN contravention codes and deadline calculator.
61UK tolls & charges: DVLA vehicle checks (ULEZ/CAZ/MOT/tax), prices, penalties, pay-by deadlines.
UK statutory letters citing real legislation, for councils, NHS, housing, SEND, employers and more.
Verified answers with named sources: UK parking appeals, NYC dismissal rates, UK MTD tax facts.
Related MCP Servers
- FlicenseAqualityDmaintenanceAutomates parking ticket detection, evidence gathering, and dispute preparation across multiple US cities.8-
- AlicenseNot gradedqualityDmaintenanceEnables UK haulage compliance checks including operator licence verification, tachograph auditing, drivers' hours calculations, and DVSA roadside inspection support.54 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables UK haulage compliance managers to audit tachographs, drivers' hours, and DVSA OCRS scores, preventing red status and generating public inquiry briefs.39 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to help users claim refunds for UK travel (train Delay Repay, flight compensation, TfL overcharges) and parking fines through Untap's detection and deeplink tools.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.