Kia Access MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KIA_PASSWORD | Yes | Your Kia account password | |
| KIA_USERNAME | Yes | Your Kia account email address | |
| KIA_WRITE_MODE | No | Controls which command tools are registered: 'none', 'comfort' (default), or 'all' | comfort |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kia_session_status | Whether this server is configured and logged in to Kia: are credentials present, has the one-time MFA bootstrap been completed on this device, and which vehicle commands are registered (KIA_WRITE_MODE). Makes NO network call and returns no secret — the account email is masked, the device id is truncated, and neither the session id nor the remember-me token is ever included. Start here when a Kia tool reports it is not configured. |
| kia_start_login | Step 1 of the ONE-TIME Kia MFA bootstrap (prof/authUser): send the configured credentials and get back the |
| kia_send_otp | Step 2 of the Kia MFA bootstrap (cmm/sendOTP): deliver a one-time passcode to the account by SMS or email. Takes the |
| kia_verify_otp | Step 3 of the Kia MFA bootstrap (cmm/verifyOTP): exchange the passcode for a session. The resulting remember-me token is stored locally and is NOT returned — from here on every Kia tool refreshes its own session silently and MFA is never needed again on this device. Takes the |
| kia_export_refresh_token | Return the stored Kia remember-me token (rmtoken) IN PLAINTEXT. This is a CREDENTIAL: it bypasses MFA entirely and, with the account password, grants full control of the vehicle — including unlocking it. It exists for one purpose: moving a locally-bootstrapped session into the hosted connector, which stores it in the user's encrypted credentials. Do NOT call it to "check the session" (use kia_session_status), and never display or log the value except where the user explicitly asked for it. Without confirm:true the token is not even read. |
| kia_forget_session | Discard the locally stored Kia session (the remember-me token), so the next Kia call needs the one-time MFA bootstrap again. This is the recovery path when the stored token no longer works — Kia revoked it, the password changed, or the account moved to another device — and the only alternative is deleting the session file by hand. It makes NO network call: Kia is not told anything, only this machine forgets. Without confirm:true nothing is deleted and you get a preview instead. |
| kia_list_vehicles | List the vehicles enrolled on this Kia Owners account (ownr/gvl). Returns each vehicleKey — the id every other Kia tool takes — plus nickname, model year/name/trim, mileage, fuel type and telematics unit. VINs are masked to their last 6 characters. |
| kia_vehicle_status | Read the vehicle's CACHED status (cmm/gvi): door lock, ignition, and the remote-climate block. Fast, but it reports whatever the telematics unit last uploaded — use kia_refresh_status first when freshness matters. Requested with airTempRange/seatHeatCoolOption = "1" so the nested |
| kia_refresh_status | Ask the car for a fresh reading (rems/rvs, requestType 0). This WAKES THE TELEMATICS UNIT, so it is much slower than kia_vehicle_status and draws a little power — prefer the cached read unless staleness matters. Kia only acknowledges the request; it does not return the new data and gives no completion signal, so read kia_vehicle_status afterwards to see the refreshed values. |
| kia_vehicle_location | The vehicle's last known location, from the |
| kia_start_climate | Start remote climate control / preconditioning (Kia |
| kia_stop_climate | Stop remote climate control (Kia |
| kia_charge_targets | Read the EV charge targets ( |
| kia_start_charge | Ask the vehicle to start charging ( |
| kia_stop_charge | Ask the vehicle to stop charging ( |
| kia_set_charge_limits | Set the target state of charge per plug type ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/kiaaccess-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server