# AppealGo

> Check and appeal UK parking tickets (PCNs): grounds, deadlines, draft letters and filing.

- name: com.appealgo/appealgo
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.appealgo%2Fappealgo
- tools: https://api.protogrid.dev/v1/servers/com.appealgo%2Fappealgo/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "appealgo": {
      "type": "http",
      "url": "https://appealgo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${APPEALGO_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${APPEALGO_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-31d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 10 of 10 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,529 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 2 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 1,529 tokens to load them all
- tool set hash: ee263660667f8142e10eca0d8d11e00f
- tools last changed: 2026-10-01T05:21:54.323Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.appealgo/appealgo.svg)](https://protogrid.dev/servers/com.appealgo/appealgo)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-01 `file_appeal` changed (description)
  - before: 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.
  - after: 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 (£7.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.
- 2026-10-01 `check_notice` changed (description)
  - before: 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.
  - after: 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 £7.99 or is covered by a plan, up to its appeal allowance. Provide image_url OR image_base64. Takes 20–90 seconds. Never invent notice details: report exactly what this tool returns.

Full history: https://api.protogrid.dev/v1/servers/com.appealgo%2Fappealgo/changes

## Remotes

- https://appealgo.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `calculate_deadlines`: 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.
- `check_notice`: 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 £7.99 or is covered by a plan, up to its appeal allowance. Provide image_url OR image_base64. Takes 20–90 seconds. Never invent notice details: report exactly what this tool returns.
- `explain_contravention_code`: 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.
- `file_appeal`: 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 (£7.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.
- `get_guide`: Returns a full AppealGo guide as Markdown, with its sources.
- `get_notice`: Full detail for a notice id returned by check_notice or list_my_notices.
- `list_my_notices`: Every notice this AppealGo account has scanned, with status and links.
- `lookup_appeal_status`: Public status for a customer reference such as PCN-4471A2B9.
- `search_contravention_codes`: Find the code for a description, e.g. 'disabled bay' or 'bus lane'.
- `search_guides`: 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.
