Odel
askacharge.com — EV charging network

askacharge.com — EV charging network

@javierojanMITUpdated 4 days ago

Operate a network of EV charge points over OCPP: status, sessions, tariffs, prices, remote commands

Server endpointStreamable HTTPAPI keyProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

askacharge.com MCP server

Let an AI agent operate a network of EV charge points.

askacharge.com is a CSMS — a Charging Station Management System — for electric vehicle charging: OCPP 1.6J and 2.0.1 to the hardware, tariffs and billing, QR and RFID driver payments, OCPI 2.2 roaming between operators, and fiscal invoicing. This repository documents its remote MCP server, which exposes that platform to any Model Context Protocol client.

Nothing to install. It is a hosted endpoint:

https://askacharge.com/askacharge/api/mcp

Transport is JSON-RPC 2.0 over HTTP POST (streamable-http). Protocol versions accepted: 2025-06-18, 2025-03-26, 2024-11-05. GET returns 405 on purpose — there is no SSE stream.


Why this exists

Charge point operators spend their day on questions an agent can answer directly: which chargers are offline right now, what did site X earn last month, is it cheap enough to charge at this hour, reboot the one that stopped responding. The REST API has always been able to do that. MCP is what makes it usable by an agent without anyone writing an integration first — the value is not the protocol, it is the description of when to use each tool and what happens if you get it wrong.

Authentication

One header, the brand's API key, created from the panel under API keys:

Authorization: Bearer ask_live_...

X-Api-Key: ask_live_... works too.

The key's scopes decide which tools you can see. A read-only key never gets shown askacharge_parar_carga. A key restricted to one location (commands:write@hotel-madrid) sees the command tools and receives a 403 when it aims them at a charger somewhere else. A key belongs to one brand and reaches only that brand's data.

The 21 tools

Read

ToolWhat it answers
askacharge_listar_cargadoresEvery charge point with OCPP status, location and last contact
askacharge_ver_cargadorOne charger in detail: connectors, power, access mode, status
askacharge_estado_en_vivoRight now: chargers connected, sessions running, power being drawn
askacharge_resumenPeriod KPIs — energy, revenue, net margin, sessions, customers
askacharge_listar_sesionesCharging session history with energy, revenue and cost
askacharge_listar_incidenciasOpen faults per charger
askacharge_listar_tarifasTariff groups: per kWh, per hour, per session, PVPC or free
askacharge_precio_pvpc_hoyToday's hour-by-hour Spanish PVPC electricity price
askacharge_listar_clientesFleet customers with their tariff and monthly consumption
askacharge_limites_de_potenciakW ceiling per location and load-balancing strategy
askacharge_traza_de_actividadWhat the brand's API keys did: writes and rejected attempts

OCPP commands — these act on physical hardware

ToolWhat it does
askacharge_arrancar_cargaRemote start (OCPP RemoteStartTransaction)
askacharge_parar_cargaRemote stop (OCPP RemoteStopTransaction) — cuts a live session
askacharge_reiniciar_cargadorReboot, soft or hard (OCPP Reset)
askacharge_cambiar_disponibilidadPut a charger in or out of service (OCPP ChangeAvailability)
askacharge_diagnosticosAsk the charger to upload its diagnostics file (OCPP GetDiagnostics)

Write

ToolWhat it does
askacharge_crear_cargadorRegister a charge point
askacharge_crear_tarifaCreate a tariff group (per_kwh, per_hour, per_session, pvpc_margin, free…)
askacharge_crear_clienteRegister a fleet customer
askacharge_crear_tag_rfidAuthorise an RFID tag on the brand

Escape hatch

ToolWhat it does
askacharge_llamar_apiCall any of the platform's 438 API operations, under the same permission checks

It does not reimplement the product

Every tool runs against askacharge.com's own REST API with the same key, so it passes through the same scopes, the same audit trail, the same rate limit and the same idempotency handling. If a tool could ever do something the API forbids, that is a bug in the server, not a feature. The envelope itself is not what gets logged — the concrete operation it triggered is.

Using it

Claude Code

claude mcp add --transport http askacharge https://askacharge.com/askacharge/api/mcp \
  --header "Authorization: Bearer ask_live_..."

Clients that take a JSON config

{
  "mcpServers": {
    "askacharge": {
      "type": "http",
      "url": "https://askacharge.com/askacharge/api/mcp",
      "headers": { "Authorization": "Bearer ask_live_..." }
    }
  }
}

Raw, to check it is alive

curl -s -X POST https://askacharge.com/askacharge/api/mcp \
  -H "Authorization: Bearer ask_live_..." \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Without a key you get a JSON-RPC error telling you so, which is also a fine way to confirm the endpoint is reachable.

Getting a key

Create an account at askacharge.com — 30-day trial, no card — then API keys in the panel. Pricing is a flat €20/month with unlimited chargers and no software commission per session; the whole list, including what does carry a percentage, is at askacharge.com/askacharge/en/pricing.html.

Honest limits

  • Tool names and descriptions are in Spanish. The platform's first market is Spain and the Basque Country. Models handle it without trouble, but you should know before you wire it in.
  • Scoping a key by location restricts what it can act on, not what it can read. A listing still returns the whole brand. This is documented behaviour, not an oversight.
  • There is no separate sandbox. To try things without consequences, create a brand in trial mode.
  • No SSE stream. Request/response only.

A fuller statement of what the platform is and is not — including current architectural limits — lives at askacharge.com/llms.txt.

Related


En español

Servidor MCP remoto de askacharge.com, la plataforma de gestión de cargadores de vehículo eléctrico (CSMS) con OCPP 1.6J/2.0.1, roaming OCPI 2.2, pago por QR y facturación fiscal (Verifactu y TicketBAI/Batuz).

Endpoint: https://askacharge.com/askacharge/api/mcp. No hay nada que instalar. Se autentica con la API key de la marca en Authorization: Bearer, y los scopes de esa key deciden qué herramientas se ven: una key de solo lectura nunca ve las de parar una carga, y una acotada por ubicación (commands:write@hotel-madrid) recibe un 403 si apunta a un cargador de otra sede.

Son 21 herramientas —cargadores, estado en vivo, sesiones, tarifas, PVPC, clientes, límites de potencia, comandos OCPP y altas— más askacharge_llamar_api, que abre las 438 operaciones de la API con el mismo control de permisos. Ninguna reimplementa lógica de negocio: todas se ejecutan contra la propia API REST, con los mismos scopes, la misma traza y el mismo límite de uso.

Cuenta y key: askacharge.com, 30 días de prueba sin tarjeta. Precios en askacharge.com/askacharge/precios.html.

License

MIT — see LICENSE.

Registry

Published in the official MCP Registry as com.askacharge/askacharge, authenticated against the askacharge.com domain.

curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=askacharge"