# Chargt EV Charging

> Find EV charging stations, live availability and prices across the Netherlands via NDW data.

- name: com.chargt/chargt-mcp
- version: 1.0.1
- connection class: R2 (oauth_consent_once)
- trust: 76/100 flags: no-repository
- quality: 63/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.chargt%2Fchargt-mcp
- tools: https://api.protogrid.dev/v1/servers/com.chargt%2Fchargt-mcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "chargt-mcp": {
      "type": "http",
      "url": "https://mcp.chargt.eu/mcp"
    }
  }
}
```


## Trust

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

## Quality 63/100 (needs work)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 33 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- fail `auth.as_metadata`: authorization server metadata not reachable
- fail `auth.cimd`: no way for a new client to register (neither CIMD nor DCR)
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: chargt_get_details (idempotentHint); chargt_find_chargers (idempotentHint)
- pass `tools.token_cost`: about 1,129 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

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

- n/a `stability.changes`, `stability.rug_pull`: tool history not recorded yet

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

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

- tools: 2, about 1,129 tokens to load them all
- badge: [![protogrid quality](https://protogrid.dev/badge/com.chargt/chargt-mcp.svg)](https://protogrid.dev/servers/com.chargt/chargt-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.chargt.eu/mcp (streamable-http, auth oauth2, reachable true, uptime30d 0.95689654)

## Packages

_none_

## Tools (2)

- `chargt_find_chargers`: Find electric vehicle charging stations near a location in the Netherlands. This server is currently NL-only: the country parameter accepts only 'NL' (default). Returns stations sorted by distance (closest first), then by power output (fastest first), with prices from the Dutch National Road Traffic Data Portal (NDW). Includes operator name, station name, address, connector types, power, parking type, and postal code. Some chargers have time-of-use pricing (price varies by time of day) — these are shown as a price range. Some stations charge extra fees NOT included in the per-kWh price: a one-off start fee, an idle fee, or a time-based fee. Each hit flags this compactly via has_additional_costs plus up-to amounts (start_fee_eur / idle_fee_eur_per_hour / time_fee_eur_per_hour). When flagged, call get_details for the full breakdown. Prices update daily from the NDW. This tool does not return live availability; call get_details for a specific station's near-real-time NDW availability (real-time status for stations that report it). Prices are indicative and sourced from NDW — tell the user to verify at the charger before relying on them, and do NOT recommend a specific charge card or plan.
- `chargt_get_details`: Full station details for one Dutch EV charging station, including near-real-time NDW availability. This server is currently NL-only: the country parameter accepts only 'NL' (default). Returns: operator, all connectors with power levels and prices, and the full cost breakdown (price_slots) including the per-kWh (ENERGY) price, time-based (TIME) fees, idle (PARKING_TIME) fees, and one-off/start (FLAT) fees. Also returns parking type, postal code, and live availability status when the station reports to NDW. availability.status is one of available|partial|occupied|unknown matching the Chargt website: available="Beschikbaar"(nl)/"available"(en); partial="Gedeeltelijk bezet"/"partially occupied"; occupied="Alle plaatsen bezet"/"all occupied"; unknown="Onbekend"/"unknown". available_count/total_count give the count, e.g. "2 van de {total} laadpunten vrij"(nl) / "{available} of {total} chargers available"(en) — use the language param for the locale; never state a count as 0 when it is null/unknown. availability.availability_note (localized nl/en) explains the status semantics: when status is "unknown" it usually means the latest live NDW reading was older than 15 hours and was filtered out, or no live reading has come in yet — report this as "unknown / retry in a few minutes", NOT as "no data" or a coverage gap (the charging point exists). When status is available|partial|occupied, the note confirms a current live NDW reading as of the timestamp shown. This is the only Chargt tool that returns the complete tariff breakdown and real-time availability. Call this after find_chargers flags a station with extra fees (start/idle/time) to see its exact costs. Prices are indicative and sourced from NDW — tell the user to verify at the charger before relying on them, and do NOT recommend a specific charge card or plan.
