unofficialzaptecMCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@unofficialzaptecMCPIs my car charging right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
unofficialzaptecMCP
Unofficial community project. This is not a Zaptec product. It is not affiliated with, endorsed by, sponsored by or supported by Zaptec AS. Please do not contact Zaptec support about this software; open an issue here instead.
An unofficial MCP (Model Context Protocol) server that connects a Zaptec EV charger (Zaptec Go, Go 2, Pro) to AI assistants like Claude. Ask for the charging status, energy and cost of the last month, pause or resume a session, or lower the available current, all through natural conversation.
This project is not affiliated with, endorsed by, or sponsored by Zaptec AS. "Zaptec" is a trademark of Zaptec AS; it is used here only to describe what the server connects to.
Disclaimer: The server talks to the public Zaptec cloud API (
api.zaptec.com) with your own Zaptec account. Only documented endpoints are used, but Zaptec may change the API at any time. Three tools change the state of your installation. Use at your own risk.
Features
Tool | Changes state | What it does |
| no | Operating mode, charging power, session energy, per-phase current and voltage, cable rating, diagnostics, available current |
| no | Address, timezone, max current, available current and mode, load balancing, authentication, features, circuits and chargers |
| no | Completed sessions for |
| yes | Pause the running session (Zaptec command 506). Refused with an explanation unless the charger is actually charging |
| yes | Resume a paused session (command 507). Refused with an explanation unless the session is paused |
| yes | Set the installation's available current in amps or reset it to the maximum. Guarded: at most one change per 15 minutes unless forced |
Not included on purpose: restarting the charger, firmware upgrades,
deauthorizing sessions, the undocumented authorizecharge call, local
settings and OCPP.
Related MCP server: OCHP MCP Server
Prerequisites
A Zaptec account with owner rights on the charger (the same login as the Zaptec app).
Python 3.10 – 3.14.
Claude Desktop or any other MCP-compatible client.
Installation
git clone https://github.com/holger1411/unofficialzaptecMCP.git
cd unofficialzaptecMCP
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Configuration
cp .env.example .env
# edit .env and set ZAPTEC_USERNAME and ZAPTEC_PASSWORDVariable | Default | Description |
| required | Zaptec account email |
| required | Zaptec account password |
| unset | Electricity price; when set, |
|
| Currency label for the cost fields |
| unset | Only needed when the account can see more than one charger |
|
| Seconds between two available-current changes; |
|
| Disable for debugging |
|
| DEBUG / INFO / WARNING / ERROR |
The charger PIN printed on the device is not needed. It is only used by the Zaptec app for activation and local Bluetooth setup.
Claude Desktop
Add to your claude_desktop_config.json (see
claude_desktop_config_snippet.json for a template):
{
"mcpServers": {
"unofficial-zaptec-mcp": {
"command": "/absolute/path/to/unofficialzaptecMCP/.venv/bin/python",
"args": ["-m", "zaptec_mcp_server"],
"env": {
"ZAPTEC_USERNAME": "your-email@example.com",
"ZAPTEC_PASSWORD": "your-password",
"ZAPTEC_PRICE_PER_KWH": "0.30"
}
}
}
}Restart Claude Desktop afterwards. Example prompts: "Is my car charging?", "How much did charging cost in September?", "Pause charging", "Limit the wallbox to 10 amps until I say otherwise".
Behaviour and limits
Authentication: OAuth2 password grant against
api.zaptec.com. The token is cached until shortly before it expires and refreshed once on aZaptec allows one token request per second per IP, so the server never logs in per request.
Rate limits: Zaptec allows 10 requests per second per user. Every request carries a descriptive
User-Agentas required by Zaptec's fair-use policy. Transient errors (timeouts, 5xx, 429) are retried three times with backoff, honouringRetry-After.Caching: status 15 s, installation 5 min, history 5 min. Control tools are never cached and invalidate the status cache. Failures are never cached.
Guards: pause and resume check the live charger state first and refuse with a plain-language reason when the command would be rejected.
zaptec_set_available_currentvalidates against the installation maximum and enforces the 15-minute spacing Zaptec recommends (per server process).History uses
/api/sessions/archived, converted to the installation's timezone. Cost isenergy_kwh × ZAPTEC_PRICE_PER_KWH, nothing more.Logging goes to stderr through a redactor that scrubs credentials, bearer tokens, UUIDs and device serials.
Security
See SECURITY.md. Never commit .env. Report security
issues via GitHub Private Vulnerability Reporting, not as public issues.
Development
pip install -e '.[dev]'
pytest # unit tests, offline
ruff check .
mypy
pytest -m integration # live read-only tests, needs .env
python scripts/probe.py # prints the live status; --dump DIR writes raw responsesFixtures under tests/fixtures/ are sanitized live responses. Capture new
ones with scripts/probe.py --dump and run them through
scripts/sanitize_fixture.py before committing; see
CONTRIBUTING.md.
Credits
Zaptec for the public API and its documentation at docs.zaptec.com. The OpenAPI spec is available at api.zaptec.com/swagger/v1/swagger.json; it is not redistributed in this repository.
custom-components/zaptec and pyzaptec (MIT), whose observation and command handling served as reference.
holger1411/unofficialMCP4Vaillant and holger1411/polestar-mcp, the pattern references for the client, cache and test layout.
License
MIT. The license covers this project's code only. "Zaptec" and related names and logos are trademarks of Zaptec AS; they are used here only to describe compatibility. The software is provided "as is", without warranty of any kind. You use it at your own risk, including any effect on your charger, installation or electricity bill.
Available Tools
6 toolszaptec_get_charge_historyGet charging historyARead-only
Completed charging sessions in a time range (installation-local time) with start, end, duration and energy in kWh, plus a summary. Cost fields appear only when ZAPTEC_PRICE_PER_KWH is configured. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ISO date (YYYY-MM-DD, inclusive), required for custom | |
| charger_id | No | Optional charger id. Defaults to ZAPTEC_DEFAULT_CHARGER_ID or the only charger. | |
| start_date | No | ISO date (YYYY-MM-DD), required for custom | |
| time_range | No | month |
Output Schema
| Name | Required | Description |
|---|---|---|
| end | Yes | |
| start | Yes | |
| summary | Yes | |
| sessions | Yes | |
| timezone | Yes | |
| truncated | Yes | |
| time_range | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the readOnlyHint/openWorldHint annotations: only COMPLETED sessions are returned, timestamps are in installation-local time, and cost fields are conditional on ZAPTEC_PRICE_PER_KWH being configured. That conditional-output disclosure is exactly the kind of behavior an agent cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the resource and scope come first, the conditional cost caveat and read-only note follow. No wasted sentences, though 'Read-only.' slightly duplicates the annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return structure needn't be restated, and the description still flags conditional cost fields. Combined with annotations, an agent has enough to call this correctly; only explicit alternative-routing guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds semantics the schema lacks – notably that time_range is interpreted in installation-local time. This is a meaningful clarification over the enum/default already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Completed charging sessions in a time range') and enumerates what each session contains (start, end, duration, kWh, summary). It is clearly distinguishable from zaptec_get_status and the pause/resume siblings, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the time-range framing rather than stated: the agent can infer this is the tool for historical/completed sessions. There is no explicit when-not guidance and no comparison against siblings such as zaptec_get_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zaptec_get_installationGet installation detailsBRead-only
Installation details: address, timezone, main fuse / max current, available current and mode, load balancing, authentication, enabled features, circuits and chargers. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| installation_id | No | Optional installation id. Defaults to the installation of the default charger. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| address | No | |
| circuits | Yes | |
| timezone | No | |
| network_type | No | |
| max_current_a | Yes | |
| features_enabled | No | |
| features_available | No | |
| use_load_balancing | No | |
| available_current_a | Yes | |
| available_current_mode | No | |
| authentication_required | No | |
| available_current_phases_a | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's trailing "Read-only." merely restates that, earning no credit. It does give useful content context by enumerating the configuration categories returned (load balancing, authentication, enabled features), which helps set expectations beyond the flat annotation, but it discloses nothing about error behavior, freshness, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence lists the payload and is followed by a three-word safety note; there is no filler. The comma-heavy field list is slightly dense but appropriate for a details tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value structure need not be explained, and the input is documented in the schema. Combined with annotations covering the read-only profile, the definition is nearly complete; only the missing when-to-use guidance leaves a small hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter's default behavior (falls back to the default charger's installation) is fully documented in the schema. The description adds no meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (installation) and enumerates the exact attributes returned (address, timezone, fuse/current, load balancing, authentication, circuits, chargers), so an agent knows precisely what it fetches. It is clearly distinct from the verb-oriented siblings (pause, resume, set current), though it never explicitly names an alternative. Clear purpose, no sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus zaptec_get_status or zaptec_get_charge_history, and no mention of prerequisites or the default-installation fallback in prose. Usage is only implied by the field list. This is the description's largest gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zaptec_get_statusGet charger statusARead-only
Current snapshot of the Zaptec charger: operating mode (disconnected / connected_requesting / connected_charging / connected_finished), charging power, session energy, per-phase current and voltage, cable, diagnostics, and the installation's available current. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| charger_id | No | Optional charger id. Defaults to ZAPTEC_DEFAULT_CHARGER_ID or the only charger. |
Output Schema
| Name | Required | Description |
|---|---|---|
| charger | Yes | |
| charging | Yes | |
| diagnostics | Yes | |
| observed_at | No | |
| installation | Yes | |
| operating_mode | Yes | |
| authorization_required | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's closing 'Read-only.' merely restates structured data. It adds no behavioral detail such as polling/rate limits, freshness guarantees, or whether unavailable chargers return errors, so with annotations carrying the safety profile this is a minimum-viable 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence opening with 'Current snapshot of the Zaptec charger' followed by a field list and a two-word safety tag. Efficient and scannable, though the field enumeration partially duplicates what the output schema already provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the annotations cover the read-only/open-world profile. The description still tells the agent the shape of the snapshot and the tool's defaulting behavior is in the schema, leaving nothing essential missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and charger_id is fully documented (defaults to ZAPTEC_DEFAULT_CHARGER_ID or the only charger). The description adds no additional meaning about the parameter or about behavior when multiple chargers exist, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (a Zaptec charger) and enumerates exactly what the snapshot contains: operating mode, charging power, session energy, per-phase current/voltage, cable, diagnostics, and available current. The word 'Current snapshot' cleanly separates it from zaptec_get_charge_history, so an agent can pick it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Current snapshot' suggests this is the live-state tool versus the history and installation tools, but the description never says when to use it, when not to, or names an alternative. No prerequisites or defaulting behavior are discussed beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zaptec_pause_chargingPause chargingAIdempotent
CHANGES STATE: pause the running charging session (Zaptec command 506). Only valid while the charger is in connected_charging; otherwise returns an explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| charger_id | No | Optional charger id. Defaults to ZAPTEC_DEFAULT_CHARGER_ID or the only charger. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| note | Yes | |
| charger | Yes | |
| command | Yes | |
| previous_state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The lead 'CHANGES STATE' plus the state precondition adds real behavioral context beyond the annotations, which already cover idempotency and non-destructiveness. It also discloses the error behavior (returns an explanation), though it does not detail auth requirements or what the paused state persists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight clauses, front-loaded with the state-changing nature and the validity condition. Zero filler; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter state-change tool with an existing output schema, the description supplies the three things an agent needs: that it mutates state, the precondition, and the error outcome. Return-value detail is rightly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single charger_id parameter is fully documented there, including its default resolution. The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('pause') and resource ('the running charging session'), and even cites the underlying Zaptec command 506. The action is unambiguously distinct from siblings like zaptec_resume_charging, zaptec_get_status, or zaptec_set_available_current without needing their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the precondition for use ('only valid while the charger is in connected_charging') and the failure path ('otherwise returns an explanation'). It does not explicitly name an alternative tool or a when-not-to-use in terms of siblings, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zaptec_resume_chargingResume chargingAIdempotent
CHANGES STATE: resume a session that was paused via the app or this server (Zaptec command 507). Only valid when the charger is connected_finished with final_stop_active; otherwise returns an explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| charger_id | No | Optional charger id. Defaults to ZAPTEC_DEFAULT_CHARGER_ID or the only charger. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| note | Yes | |
| charger | Yes | |
| command | Yes | |
| previous_state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it flags the state mutation up front ('CHANGES STATE'), names the exact protocol command in the app or this server (507), specifies the required charger state, and discloses that invalid calls return an explanation rather than erroring opaquely. Combined with idempotentHint=true and destructiveHint=false, an agent has a full behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the most important fact (state-changing operation) is front-loaded before the precondition. Every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the description covers the mutation nature, the command semantics, the required state, and failure behavior. Nothing needed to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the single charger_id parameter (including its default resolution logic) is already fully documented in the schema. The description adds no syntax or format detail beyond it, so this sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resume) and resource (a paused charging session), plus the underlying Zaptec command 507. The pairing with 'paused via the app or this server' clearly distinguishes it from the sibling zaptec_pause_charging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition (charger must be connected_finished with final_stop_active) and states the fallback behavior when it isn't met. It implies the alternative (pause_charging) but never names it or spells out when to prefer resume over other state-changing siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zaptec_set_available_currentSet available currentADestructiveIdempotent
CHANGES STATE: set the installation's available charging current in amps (all phases), or null to reset to the installation maximum. Zaptec recommends at most one change per 15 minutes; the server refuses faster changes unless force=true.
| Name | Required | Description | Default |
|---|---|---|---|
| amps | Yes | Amps between 0 and the installation max current, or null to reset. | |
| force | No | ||
| installation_id | No | Optional installation id. Defaults to the installation of the default charger. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| note | Yes | |
| installation | Yes | |
| max_current_a | Yes | |
| new_available_current_a | Yes | |
| previous_available_current_a | Yes | |
| requested_available_current_a | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, destructive, idempotent and open-world, and 'CHANGES STATE' is consistent with them. The description adds genuinely useful behavior beyond annotations: the rate-limit rule and the server-side refusal that force=true overrides, plus the null-reset semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the mutation warning, then the constraint. No filler; every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with an output schema (so return values need no explanation) and annotations covering safety, the description supplies the remaining essentials: state-changing nature, reset behavior, and rate-limit/force interaction. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 67% of parameters, and the one gap is force (boolean, no schema description). The description supplies exactly that missing meaning — force bypasses the server's rate-limit refusal — and reinforces the amps range/reset behavior. It adds value beyond the schema without fully re-documenting it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('set the installation's available charging current in amps (all phases)') and clarifies the null case as a reset to installation max. This is clearly distinguishable from siblings like pause_charging/resume_charging and get_status, which do different things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides real usage context: the 15-minute recommendation and that the server refuses faster changes unless force=true, plus what null does. It does not explicitly route the agent between this tool and pause_charging/resume_charging, so no exclusions or named alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
zaptec_get_charge_history - First observed
zaptec_get_installation - First observed
zaptec_get_status - First observed
zaptec_pause_charging - First observed
zaptec_resume_charging - First observed
zaptec_set_available_current
TDQS
Scored across 6 tools
get_status and get_installation both expose available current and installation mode, creating minor overlap. However, each tool otherwise targets a distinct aspect (real-time charging state, installation configuration, historical sessions), and pause/resume are clearly opposite actions with explicit validity conditions.
All tools use the zaptec_ prefix followed by a consistent verb_noun pattern in snake_case (get_status, get_installation, get_charge_history, pause_charging, resume_charging, set_available_current). No deviations or mixed conventions.
6 tools cover the core read and control operations for an EV charger, and each tool earns its place with a distinct purpose. The count is well within the ideal 3-15 range for this scope.
Core monitoring (status, installation, history) and control (pause/resume, set available current) are covered. However, there is no explicit start/stop charging command and no way to set installation-wide mode or phase configuration, representing minor gaps that agents can likely work around.
Maintenance
Related MCP Connectors
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
Unofficial integration! ## ✨ Key Features ### 💰 Financial Intelligence - **Smart Charging Cost An…
Home energy for AI assistants: live Power flow, Energy history, solar forecast, and device control.
- AskMyEVOAuthcom.askmyev
Tesla data for your AI: battery, range, charging, tires, alerts, history. Controls off by default.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables interaction with Homey smart home devices through natural language, allowing users to control devices, manage zones, and trigger automation flows.64-
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to interact with EV charging infrastructure through OCHP (Open Clearing House Protocol) services.Apache 2.0
- AlicenseAqualityAmaintenanceEnables querying Tibber electricity prices, forecasts, consumption data, cheapest hours, and live Pulse measurements through natural language.7MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to control a Homey Pro smart home hub, create automation flows from natural language, and query device and energy history.3613 npmMIT