Connect Tern EV-Charging Analytics and your agent gets 26 tools, among them aggregate_charging_utilization, aggregate_evse_utilization, area_benchmark. It answers at https://tern-mcp-537572042041.europe-west4.run.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 4 of 4 times since 17 September 2026; the last check, on 24 October 2026, succeeded.
EV-charging site analytics: utilization, demand, peak saturation and corridor benchmarks.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
aggregate_charging_utilization | Station-level utilization aggregated over a GeoJSON area and a date window of at most 92 days, optionally filtered to a capacity band (default 150 kW = HPC; pass 100 for fast charging). The reply is one row per station, so it reads an area Inputs: country_iso3, geometry, date_from, date_to, min_capacity_kw, max_capacity_kw |
aggregate_evse_utilization | EVSE-level utilization aggregated over a GeoJSON area and a date window of at most 92 days, optionally filtered to a capacity band. The per-connector counterpart of aggregate_charging_utilization. Inputs: country_iso3, geometry, date_from, date_to, min_capacity_kw, max_capacity_kw |
area_benchmark | How hard is each EVSE at this site working compared with the area around it? Reads the area_benchmark claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typ Inputs: params |
avg_session_minutes | How long does a session at this site actually last? Reads the avg_session_minutes claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the d Inputs: params |
busy_evse_hours | How many EVSE-hours at this station carried charging on the drilled day, and how many of its EVSEs were charging at once in the busiest hour? Reads the busy_evse_hours claim for one site and returns only its result: the status the claim dec Inputs: params |
corridor_benchmark | How does this site's demand per EVSE-day compare with the corridor drawn around it? Reads the corridor_benchmark claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficien Inputs: params |
corridor_comparison | How does this site compare with the named stations around it — distance, EVSE count, max kW, and sessions per EVSE-day each? Reads the corridor_comparison claim for one site and returns only its result: the status the claim decided from its Inputs: params |
daily_spike | Which days ran far above this site's normal, and by how much? Reads the daily_spike claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the Inputs: params |
day_vs_similar | Was one particular day unusual for the day of week it fell on? Reads the day_vs_similar claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and Inputs: params |
demand_share_multiple | How much of the area's demand does this one site take, said as a multiple of the mean station? Reads the demand_share_multiple claim for one site and returns only its result: the status the claim decided from its own observations (computed Inputs: params |
estate_coverage | Which estate sites reported on every day of the window, which are partial or young, and how full is the window's final day? Reads the estate_coverage claim for one site and returns only its result: the status the claim decided from its own Inputs: params |
estate_monthly_series | Did demand per EVSE across the estate move month over month, and did each focus site move with it? Reads the estate_monthly_series claim for one site and returns only its result: the status the claim decided from its own observations (compu Inputs: params |
hourly_spike | When in the day does demand at this site peak? Reads the hourly_spike claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a del Inputs: params |
list_evses | List the individual EVSEs (connectors) of up to 20 stations, with their capacity in kW. Stall counts and capacity bands come from here rather than from a station record. Inputs: country_iso3, station_ids |
monthly_sessions_per_stall_day | Is demand per EVSE rising or falling month over month? Reads the monthly_sessions_per_stall_day claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed res Inputs: params |
nearby_charging_stations | List the charging stations within a radius of a point, nearest first. The radius is in kilometres and at most 10; the reply is the API payload inline. This is how a site's competitors are found before any claim is read. Inputs: country_iso3, lat, lng, radius_km, limit |
peak_hour_co_saturation | When the site reaches its busiest hour of the day, do the stations around it reach their own busiest hours at the same time? Reads the peak_hour_co_saturation claim for one site and returns only its result: the status the claim decided from Inputs: params |
poi_context | What kind of place is this site sitting in? Reads the poi_context claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliver Inputs: params, places |
rank_gap | Where does this site sit in its estate's ranking, and how far is it from the estate median and the estate leader? Reads the rank_gap claim for one site and returns only its result: the status the claim decided from its own observations (com Inputs: params |
road_context | What road does this site sit on, and what class is it? Reads the road_context claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the displ Inputs: params |
search_charging_stations | Find charging stations in one country by structured filter — id, title, address, operator. The reply is the API payload inline: station ids, titles, addresses and operators, which is what the claim tools take as site_id and station_id. Inputs: country_iso3, id, title, address, operator, limit |
sessions_per_stall_day | How hard is each EVSE at this site working per day? Reads the sessions_per_stall_day claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and th Inputs: params |
site_profile | What is this site — how many EVSEs, and how close is the nearest station? Reads the site_profile claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed re Inputs: params |
site_ranking | How do the estate's sites rank on sessions per EVSE-day over one window, and how far is the leader above the estate median? Reads the site_ranking claim for one site and returns only its result: the status the claim decided from its own obs Inputs: params |
total_charging_minutes | How many minutes of charging did this site actually deliver over the window? Reads the total_charging_minutes claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), Inputs: params |
total_sessions | How much charging demand did this site see over the window? Reads the total_sessions claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and th Inputs: params |
Every block below points at https://tern-mcp-537572042041.europe-west4.run.app/mcp. Pick your client and copy.
claude mcp add --transport http tern-ev-charging-analytics https://tern-mcp-537572042041.europe-west4.run.app/mcp
{
"mcpServers": {
"tern-ev-charging-analytics": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://tern-mcp-537572042041.europe-west4.run.app/mcp"]
}
}
}{
"mcpServers": {
"tern-ev-charging-analytics": {
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"servers": {
"tern-ev-charging-analytics": {
"type": "http",
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"context_servers": {
"tern-ev-charging-analytics": {
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"mcpServers": {
"tern-ev-charging-analytics": {
"serverUrl": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"mcpServers": {
"tern-ev-charging-analytics": {
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}name: Tern EV-Charging Analytics
version: 0.0.1
schema: v1
mcpServers:
- name: Tern EV-Charging Analytics
type: streamable-http
url: https://tern-mcp-537572042041.europe-west4.run.app/mcp{
"mcpServers": {
"tern-ev-charging-analytics": {
"httpUrl": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"mcpServers": {
"tern-ev-charging-analytics": {
"type": "http",
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}{
"mcpServers": {
"tern-ev-charging-analytics": {
"url": "https://tern-mcp-537572042041.europe-west4.run.app/mcp"
}
}
}goose://extension?url=https%3A%2F%2Ftern-mcp-537572042041.europe-west4.run.app%2Fmcp&type=streamable_http&id=tern-ev-charging-analytics&name=Tern%20EV-Charging%20Analytics
It answered our last check on 24 October 2026 in 129 ms. Over 4 checks since 17 September 2026 it answered 4. Status here comes from Neuronto's own probes, not from the publisher.
26, as returned by the server's own tools/list on 24 September 2026: aggregate_charging_utilization, aggregate_evse_utilization, area_benchmark, avg_session_minutes, busy_evse_hours, corridor_benchmark, corridor_comparison, daily_spike, and 18 more.
It answered our last check on 24 October 2026 in 129 ms. Over 4 checks since 17 September 2026 it answered 4.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://tern-mcp-537572042041.europe-west4.run.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.useternai. Endpoint host: tern-mcp-537572042041.europe-west4.run.app. ARD identifier: urn:air:io.github.useternai:mcp:usetern.
First indexed 17 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.