ams-mcp
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., "@ams-mcp how much power are we using 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.
ams-mcp
Reads a home electricity meter by voice. It is a small MCP server that asks the meter's HAN-port reader, an AmsToMqttBridge device on the home network, what it has seen, and answers in a sentence to read aloud. It is made as a plugin for claude-voice, and works with any MCP client over stdio.
It only reads. It sends nothing but GET, to seven JSON pages the reader shows without a login, and never a page that saves a setting, reboots or upgrades (ADR-AM-001).
The five tools
Tool | Says |
| the power drawn or sent now, each phase's volts and amps, and the power factor |
| kWh in and out, and what it cost, this hour, today and this month |
| the price now, the next hours, and the cheapest hours left today |
| the capacity step, the month's top three hours, and how far this hour is from the next step |
| today by hour, or this month by day, in short |
Every answer has say, in kW, kWh and kr, success, and read_at, the time
of the reading. A reading older than about 30 seconds, or one the reader has
not had from the meter lately, starts "Not confirmed".
Related MCP server: tibber-mcp-server
Try it without the meter
--simulate answers from pages recorded off a real reader, and says so:
$ ams-mcp ask now --simulate
Simulated: Drawing 1.05 kW from the grid now. The phases carry 2.9, 0.9 and 1.5 A. This meter sends no power factor.
$ ams-mcp ask energy --simulate
Simulated: Today 33.2 kWh, 30.85 kr. This hour 0.32 kWh. This month 605 kWh, 548 kr.Point it at the reader
The address goes in a file of your own, never in this repository:
# ~/.config/ams-mcp/config.toml
[reader]
address = "192.0.2.10" # the reader's address on your network
timezone = "Europe/Oslo" # optional; the computer's own by defaultWithout it, the server says where the file should be and stops:
$ ams-mcp serve --settings-file /nowhere/config.toml
ams-mcp: No settings file at /nowhere/config.toml; write [reader] address = "..." there, or use --simulate.ams-mcp serve then serves the tools over stdio. For claude-voice:
[plugins.ams]
command = "uv"
args = ["run", "ams-mcp", "serve"]
cwd = "~/ams-mcp"
tools = ["ams_now", "ams_energy", "ams_price", "ams_capacity", "ams_history"]
timeout = 30What each of the reader's short keys means, read from the firmware's source, is in docs/pages.md.
The gates
Every one of these runs in continuous integration, and all of them run here:
$ uv run ruff check .
All checks passed!uv run ruff format --check . # layout
uv run mypy src # types
uv run pytest -q # behaviour
python scripts/mutate.py # that each rule's own test can failCONTRIBUTING.md says what each one is for, and
decisions/ records the choices that shaped them,
including how a change is made here.
Licence
GPL-3.0-or-later. See LICENSE.
Available Tools
5 toolsams_capacityBRead-only
Capacity step this month. The grid's capacity step, the month's top three hours, and how much this hour could use before the step goes up.
Inputs: no named parameters. Returns: object
ams_energyARead-only
Energy used so far. kWh in and out, and what it cost, this hour, today and this month.
Inputs: no named parameters. Returns: object
ams_historyARead-only
A day or month in short. Period 'day' (the default): today so far and its busiest hour. 'month': this month so far, its busiest day, and last month.
Inputs: period. Returns: object
ams_nowARead-only
Power used right now. kW drawn from or sent to the grid, each phase's volts and amps, and the power factor when the meter sends one.
Inputs: no named parameters. Returns: object
ams_priceARead-only
Electricity price by hour. The price now in kr per kWh, the next hours, and the cheapest hours left today.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a distinct facet of metering data: instantaneous power (ams_now), accumulated energy/cost (ams_energy), spot price (ams_price), capacity step (ams_capacity), and period summaries (ams_history). The only real overlap is between ams_energy and ams_history, which both cover today's/month's totals, but the descriptions differentiate them (kWh+cost figures vs. peak-hour/busiest-day summaries).
All five tools follow one clean pattern: the `ams_` server prefix plus a single domain noun (now, energy, price, capacity, history). There is no mixing of verbs, casing, or styles.
Five focused read-only tools is a well-scoped surface for a smart-meter data server; each tool maps to a distinct question a user would ask (current draw, consumption, price, capacity, history). Nothing feels padded or missing at the count level.
The surface covers the core read-only lifecycle: live power, energy/cost over hour/day/month, hourly prices with forward look, capacity, and day/month rollups. Minor gaps remain—no arbitrary date-range or deeper historical queries (only 'day'/'month' with last month), and no way to act on capacity or price data.
Maintenance
Related MCP Connectors
Home energy for AI assistants: live Power flow, Energy history, solar forecast, and device control.
Read-only electricity, gas, and weather data with structured provenance and units.
Real-time electricity price signals for AI agents. Spot prices, cheapest hours, and contract recommendations. 31 countries across Europe and Oceania. No authentication required.
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables access to Fronius solar inverter data via the MCP protocol, allowing real-time monitoring of energy production, consumption, and battery storage through natural language.1415 npm4MIT
- AlicenseAqualityBmaintenanceEnables querying Tibber electricity prices, forecasts, consumption data, cheapest hours, and live Pulse measurements through natural language.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables conversational home power management by providing real-time solar, battery, and grid status, plus forecasts to answer questions like whether you can run an appliance. It supports Victron and Growatt inverters, remembers household appliances and grid events, and renders an interactive dashboard card in MCP-compatible clients.6 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables Alexa+ to answer spoken questions about a home's energy use and act on them through seven voice-first tools, covering live device status, usage and cost reports, waste detection, savings recommendations, automation listing, device control, and confirmed energy-plan application.MIT