GnistAI GnistAI
Log in

Getting Started with Electric Vehicle Data

Electric vehicle database — range, battery, charging speed, performance for current EV models.

All Tutorials   |   Overview   |   Playground   |   MCP   |   REST API   |   Home
Automotive

Data source: Curated dataset (EPA, manufacturer specs)

Overview

Electric Vehicle Data wraps Curated dataset (EPA, manufacturer specs), handling authentication, pagination, and rate limits for you. This tutorial covers all 8 tools with working code examples you can copy and run.

Prerequisites

  1. Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
  2. Choose your integration method: MCP protocol or REST API.

Connect via MCP

Add to your MCP client config (Claude Desktop, Cursor, etc.):

MCP Config
{
  "mcpServers": {
    "gnist-ev-data": {
      "url": "https://context.gnist.ai/mcp/ev-data/",
      "headers": {
        "Gnist-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Tools (8)

get_ev

Get detailed specifications for an electric vehicle. Returns range, battery capacity, charging specs, performance, and pricing.

ParameterTypeRequiredDescription
ev_idstringrequiredEV ID slug (e.g. tesla-model3-2024, bmw-i4-2024).
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_ev", "arguments": {"ev_id": "tesla-model3-2024"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'ev_id': 'tesla-model3-2024'}, 'name': 'get_ev'}},
)
print(resp.json())

search_evs

Search the electric vehicle database.

ParameterTypeRequiredDescription
querystringrequiredSearch by make, model, or features.
limitintegeroptional (default: 20)
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_evs", "arguments": {"query": "renewable energy"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'query': 'renewable energy'}, 'name': 'search_evs'}},
)
print(resp.json())

list_evs_by_make

List electric vehicles by manufacturer.

ParameterTypeRequiredDescription
makestringrequiredManufacturer (e.g. Tesla, BMW, Hyundai).
limitintegeroptional (default: 50)
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "list_evs_by_make", "arguments": {"make": "Tesla"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'make': 'Tesla'}, 'name': 'list_evs_by_make'}},
)
print(resp.json())

list_evs_by_segment

List electric vehicles by market segment.

ParameterTypeRequiredDescription
segmentstringrequiredMarket segment (Economy, Mid-range, Premium, Luxury, Performance).
limitintegeroptional (default: 50)
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "list_evs_by_segment", "arguments": {"segment": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'segment': 'example'}, 'name': 'list_evs_by_segment'}},
)
print(resp.json())

list_evs_by_range

List EVs by range, sorted from highest to lowest.

ParameterTypeRequiredDescription
min_range_kmintegeroptional (default: 0)
limitintegeroptional (default: 20)
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "list_evs_by_range", "arguments": {"min_range_km": 0}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'min_range_km': 0}, 'name': 'list_evs_by_range'}},
)
print(resp.json())

get_ev_makes

List all EV manufacturers in the database.

curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_ev_makes", "arguments": {}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {}, 'name': 'get_ev_makes'}},
)
print(resp.json())

get_ev_segments

List all market segments in the database.

curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_ev_segments", "arguments": {}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {}, 'name': 'get_ev_segments'}},
)
print(resp.json())

report_feedback

Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: general)
curl -X POST "https://context.gnist.ai/mcp/ev-data/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/ev-data/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())

Common Patterns

Search then retrieve
Use search_evs to find items, then get_ev to get full details. This two-step pattern is common for exploring data before drilling down.
Pagination
Several tools support limit, offset, or page parameters. Start with small limits during development, then increase for production queries.

FAQ

What data does Electric Vehicle Data provide?

Electric vehicle database — range, battery, charging speed, performance for current EV models. It exposes 8 tools: get_ev, search_evs, list_evs_by_make, list_evs_by_segment, list_evs_by_range, get_ev_makes, get_ev_segments, report_feedback.

What do I need to get started?

A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.

What format does the Electric Vehicle Data API return?

JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.

Next Steps

Related Tutorials