Mmcp.market

Tern EV-Charging Analytics

by useternai·io.github.useternai/usetern·v0.1.0

EV-charging site analytics: utilization, demand, peak saturation and corridor benchmarks.

C64/100grade C
What users say
No reviews yet
Be the first
Safety scan
C64/100

full report

Adoption
New

Little public usage data yet

Reviews

Write one

Nobody has reviewed Tern EV-Charging Analytics yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Tools (26)

write = sends, deletes, buys or posts
  • aggregate_charging_utilizationFree

    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 without pulling any station's daily rows.

  • aggregate_evse_utilizationFree

    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.

  • area_benchmarkFree

    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 typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • avg_session_minutesFree

    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 display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • busy_evse_hoursFree

    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 decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • corridor_benchmarkFree

    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 insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • corridor_comparisonFree

    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 own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • daily_spikeFree

    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 display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • day_vs_similarFree

    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 the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • demand_share_multipleFree

    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 or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • estate_coverageFree

    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 observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • estate_monthly_seriesFree

    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 (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • hourly_spikeFree

    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 deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • list_evsesFree

    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.

  • monthly_sessions_per_stall_dayFree

    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 result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • nearby_charging_stationsFree

    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.

  • peak_hour_co_saturationFree

    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 its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • poi_contextFree

    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 deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading. places carries the rows this claim reads, because they are transcribed by the caller rather than fetched.

  • rank_gapFree

    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 (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • road_contextFree

    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 display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • search_charging_stationsFree

    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.

  • sessions_per_stall_dayFree

    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 the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • site_profileFree

    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 result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • site_rankingFree

    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 observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • total_charging_minutesFree

    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), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

  • total_sessionsFree

    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 the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.

Public scan report

scanner v0.1.3 · 2026-09-19 · same rubric, same numbers if you re-run it

1 low
  • Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 998ms20/20
  • Tool poisoning26 tool descriptions checked15/15
  • Auth qualityAPI key sent as a header8/15
  • Maintenanceno repository listed3/15
  • Maintainer identityno repository or website to verify2/10

Findings (1)

  • lowNo source repository listedmaint.no-repo
Overall 64/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

claude mcp add --transport http usetern https://tern-mcp-537572042041.europe-west4.run.app/mcp
Add to Cursor

Alternatives to Tern EV-Charging Analytics

Same job from other publishers, ranked by rating then adoption.

See all →
  • Azure MCP Server
    All Azure MCP tools to create a seamless connection between AI agents and Azure services.
    C
  • Semiotic
    Verified React chart generation: select, validate, repair, render, and inspect charts through MCP.
    B
  • World Monitor
    Live markets, conflicts, country risk, chokepoints, energy, and China decision signals. 75 tools.
    A
  • Netdata
    Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
    A
  • Microsoft 365 MCP Server
    Interact with Microsoft 365 and Office services through the Microsoft Graph API.
    B

More from useternai