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
- Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
- Choose your integration method: MCP protocol or REST API.
Connect via MCP
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"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.
| Parameter | Type | Required | Description |
|---|---|---|---|
ev_id | string | required | EV 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search by make, model, or features. |
limit | integer | optional | (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.
| Parameter | Type | Required | Description |
|---|---|---|---|
make | string | required | Manufacturer (e.g. Tesla, BMW, Hyundai). |
limit | integer | optional | (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.
| Parameter | Type | Required | Description |
|---|---|---|---|
segment | string | required | Market segment (Economy, Mid-range, Premium, Luxury, Performance). |
limit | integer | optional | (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.
| Parameter | Type | Required | Description |
|---|---|---|---|
min_range_km | integer | optional | (default: 0) |
limit | integer | optional | (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'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (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
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.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.