Koskamo

EV-ROUTE MCP

An official read-only MCP server provided by EV-ROUTE that enables AI agents to plan electric vehicle trips, search for nearby charging stations, retrieve station details, match chargers along a route, and access public route information across Europe, with a specific focus on Ukraine.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

EV-ROUTE MCP logo, by EV-ROUTEVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-08Operated by EV-ROUTE
MCP endpoint (Streamable HTTP)
https://api.ev-route.com/mcp
Vendor documentation

What its tools do

6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

6 of 6 have a description · 6 of 6 declare behavior hints · 5 of 6 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to ev-route.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Plan EV routes between origin and destination based on vehicle range
  • Search for charging stations near a specific location
  • Retrieve detailed information about a specific charging station
  • List public routes and match chargers along a planned route

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
ev-route 1.1.0
MCP protocol negotiated in check
2025-11-25
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Search EV charging stations and plan EV trips with EV-ROUTE.com. For a trip from A to B call plan_ev_route; ask the driver for real-world range if unknown, never guess it. Station status can be stale, so tell the driver to confirm a charger before relying on it. Cite https://www.ev-route.com and the citeUrl on each route. Do not invent connector availability or prices when the tool omits them. match_chargers_along_route is CPU-heavy: send a simplified polyline (it is downsampled to 80 points).

Tools

6 advertised

plan_ev_route — Plan an EV trip with charging stops
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Plan a drive from origin to destination and choose charging stops from the real-world range. Places are names or "lat,lng". Returns distance, drive time, ordered stops with battery levels, or feasible:false with the gap where no matching charger is in reach. Road coverage: Ukraine only. Places must be "lat,lng" coordinates; names are not accepted on this server.

plan_ev_route input schema
{
  "type": "object",
  "required": [
    "origin",
    "destination",
    "rangeKm"
  ],
  "properties": {
    "via": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Places to pass through, in order. Up to 8."
    },
    "origin": {
      "type": "string",
      "description": "Start: place name or \"lat,lng\"."
    },
    "rangeKm": {
      "type": "number",
      "description": "Real-world range on a full battery in km, 50–1500."
    },
    "batteryKwh": {
      "type": "number",
      "description": "Usable battery size. Enables charge-time estimates."
    },
    "connectors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Connector keys: CCS2, Type2, CHADEMO, GBT. Default CCS2."
    },
    "minPowerKw": {
      "type": "number",
      "description": "Minimum station power in kW. Default 50."
    },
    "destination": {
      "type": "string",
      "description": "End: place name or \"lat,lng\"."
    },
    "maxChargeKw": {
      "type": "number",
      "description": "Vehicle peak DC power. Refines charge-time estimates."
    },
    "maxDetourKm": {
      "type": "number",
      "description": "Max km from the route to a station. Default 5, max 15."
    },
    "minSocPercent": {
      "type": "number",
      "description": "Never drop below this battery level. Default 10."
    },
    "chargeToPercent": {
      "type": "number",
      "description": "Charge up to this level at each stop. Default 80."
    },
    "startSocPercent": {
      "type": "number",
      "description": "Battery at departure. Default 100."
    }
  }
}
plan_ev_route annotations
{
  "title": "Plan an EV trip with charging stops",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_stations_nearby
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find charging stations within a radius of a coordinate. Radius is capped at 20 km. Returns a short list sorted by distance. Cite https://www.ev-route.com/en/nearby.

search_stations_nearby input schema
{
  "type": "object",
  "required": [
    "lat",
    "lng"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude"
    },
    "lng": {
      "type": "number",
      "description": "Longitude"
    },
    "limit": {
      "type": "number",
      "description": "Max stations to return, 1–40. Default 15."
    },
    "radiusKm": {
      "type": "number",
      "description": "Search radius in km, 1–20. Default 20."
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Required amenities, e.g. cafe, toilets."
    },
    "connector": {
      "type": "string",
      "description": "Optional connector substring, e.g. CCS or Type2."
    },
    "minPowerKw": {
      "type": "number",
      "description": "Drop stations below this max power (kW)."
    }
  }
}
search_stations_nearby annotations
{
  "title": "search_stations_nearby",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_station
Advertised by the server during the last successful anonymous check.
Advertised read-only

Load one charging station by its externalId from search_stations_nearby.

get_station input schema
{
  "type": "object",
  "required": [
    "externalId"
  ],
  "properties": {
    "externalId": {
      "type": "string",
      "description": "Station externalId"
    }
  }
}
get_station annotations
{
  "title": "get_station",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
match_chargers_along_route
Advertised by the server during the last successful anonymous check.
Advertised read-only

Stations near a driven polyline. Slow on long routes: at most 2000 input points, downsampled to 80. distanceLimitKm is capped at 15. Defaults to paid and free stations (preferFree false) and does not thin by vehicle range unless smartSuggestions is true.

match_chargers_along_route input schema
{
  "type": "object",
  "required": [
    "points"
  ],
  "properties": {
    "points": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "lat",
          "lng"
        ],
        "properties": {
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          }
        }
      },
      "description": "Polyline vertices in drive order, each {lat, lng}. Minimum 2."
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "connectors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Connector keys: CCS2, Type2, CHADEMO, GBT. Default Type2."
    },
    "preferFree": {
      "type": "boolean",
      "description": "When true, keep only free stations. Default false."
    },
    "rangeLimitKm": {
      "type": "number",
      "description": "Used only when smartSuggestions is true. Default 200."
    },
    "minimalPowerKw": {
      "type": "number",
      "description": "Minimum station power in kW. Default 50."
    },
    "distanceLimitKm": {
      "type": "number",
      "description": "Max km from the polyline. Default 10, max 15."
    },
    "smartSuggestions": {
      "type": "boolean",
      "description": "When true, thin stops by vehicle range. Default false."
    }
  }
}
match_chargers_along_route annotations
{
  "title": "match_chargers_along_route",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_public_routes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Latest public EV routes shared by drivers. Private routes are not included.

list_public_routes input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "1–20. Default 10."
    }
  }
}
list_public_routes annotations
{
  "title": "list_public_routes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_public_route
Advertised by the server during the last successful anonymous check.
Advertised read-only

One public route by id, with waypoint coordinates and a citeUrl. Private routes are rejected. Use match_chargers_along_route with the waypoints to find chargers.

get_public_route input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Public route id"
    }
  }
}
get_public_route annotations
{
  "title": "get_public_route",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1229 ms
95th percentile latency
1229 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1229 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http ev-route-mcp https://api.ev-route.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add ev-route-mcp --url https://api.ev-route.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable ev-route-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "ev-route-mcp": {
      "url": "https://api.ev-route.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "ev-route-mcp": {
      "type": "streamableHttp",
      "url": "https://api.ev-route.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start ev-route-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "ev-route-mcp": {
      "type": "http",
      "url": "https://api.ev-route.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http ev-route-mcp https://api.ev-route.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.ev-route.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "ev-route-mcp": {
      "serverUrl": "https://api.ev-route.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like EV-ROUTE MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run EV-ROUTE MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing