srp-tariff
SRP-Tarif-API
Exakte Tarife für Privathaushalte und detaillierte Stromrechnungen für Salt River Project (Metropolregion Phoenix, Arizona), berechnet aus den eingereichten Tarifbüchern von SRP und nicht geschätzt. Jede Antwort nennt das Dokument und die Seite, aus der sie stammt.
Live: https://utility-api-jn9g.onrender.com · Dokumentation: /docs
GET https://utility-api-jn9g.onrender.com/v1/tariff/rate?tariff_id=srp:E-26&at=2026-07-15T15:00:00{
"season": "summer_peak",
"period": "on_peak",
"rate_per_kwh": 0.2566,
"components": [ ... ten unbundled line items ... ],
"source": {
"document_url": "https://www.srpnet.com/.../2025-Ratebook-with-Temporary-FPPAM.pdf",
"page_refs": ["48-53"],
"verified_by": "Courtney",
"confidence": "verified"
},
"caveats": [ ... ]
}Warum es das gibt
Die Tarife von SRP für Privathaushalte sind öffentlich, aber wirklich schwer zu berechnen. Die Preise ändern sich je nach Stunde, Wochentag, Saison und beobachtetem Feiertag, über ein Dutzend Tarifpläne hinweg, deren Definitionen nicht übereinstimmen:
Saisons werden über den Abrechnungszeitraum definiert. Spitzenzeiten werden über das Kalenderdatum definiert. Bei E-26 bedeutet Sommer die Abrechnungszeiträume Mai, Juni, September und Oktober, aber das Spitzenlastfenster von 14–20 Uhr läuft vom 1. Mai bis 31. Oktober nach Kalenderdatum. Ein Abrechnungszeitraum, der den 31. Oktober überspannt, erhält die Preise einer Saison und zwei verschiedene Stundenklassifizierungen. Wenn man das zu einem einzigen „Saison“-Feld zusammenfasst, werden stillschweigend alle Übergangsmonate falsch abgerechnet.
Tarife werden in Mountain Standard Time eingereicht, und Arizona stellt nicht auf Sommerzeit um. Jede generische Time-of-Use-Bibliothek, die auf Sommerzeit umstellt, liegt ein halbes Jahr lang um eine Stunde daneben.
Tarife sind ungebündelte Komponentenstapel, keine einzelnen Zahlen. Der Brennstoff- und Strombezugskosten-Aufschlag sitzt im Stapel und bewegt sich nach eigenem Zeitplan, also muss er trennbar bleiben.
Feiertage setzen einige Zeiträume außer Kraft, andere nicht. Bei E-26 ist die Spitzenzeit an Weihnachten ausgesetzt, während die Super-Nebenspitzenzeit weiterhin gilt.
Dieser Dienst modelliert all das aus den Einreichungen und zeigt seine Arbeit.
Related MCP server: ratebook-mcp
Abdeckung
Rufen Sie GET / oder GET /v1/tariff/plans auf, um die aktuelle Antwort zu erhalten. Stand der aktuellen Datenladung:
Plan | Marketing-Name | Abrechnungszeiträume | Abrechenbar |
| Time-Of-Use | 2025-11 → 2026-04, 2026-05 → 2026-10 | ja |
| EZ-3 (15–18 Uhr) | 2026-05 → 2026-10 | ja |
| Conserve 6–9 p.m. and Save | 2025-11 → | nein |
Nur Privathaushalte. Anfragen außerhalb eines abgedeckten Abrechnungszeitraums geben 422 zurück, zusammen mit den abgedeckten Zeiträumen.
Was es ablehnt und warum
Das ist der Teil, den man lesen sollte, bevor man sich darauf verlässt.
Nicht modellierte Tarifpläne. E-28 zahlt eine Gutschrift pro exportierter kWh, die das aktuelle Datenmodell nicht abbilden kann. Statt eine Rechnung zurückzugeben, die für jeden Kunden mit Dach-Solaranlage falsch wäre, lehnt der Dienst E-28 rundheraus ab und sagt das auch. Das zu beheben ist eine Schemaänderung, die unten verfolgt wird.
Nicht abgedeckte Zeiträume. Jede Datei deckt ein bestimmtes Abrechnungszeitraum-Fenster ab. Fragt man einen Zeitraum ab, für den keine Einreichung vorliegt, erhält man eine 422 mit der Auflistung dessen, was abgedeckt ist — niemals einen extrapolierten Tarif.
Nicht abbildbare Bestimmungen. Jeder Tarif trägt eine unmodeled_provisions-Liste, die in den Antworten als caveats auftaucht: die 300.000-Dollar-Obergrenze für die jährliche Energieeffizienz, das Ermessen von SRP, den Brennstoffaufschlag zwischen den Einreichungen anzupassen, und die Weitergabe von Steuern und Abgaben. Das sind reale Bedingungen, die sich ändern können, und sie werden ausgewiesen statt versteckt.
Steuern. Nicht enthalten. Staats-, Bezirks- und Gemeindesteuern hängen von der Lieferadresse ab.
MCP-Server
Derselbe Rechner ist auch als MCP-Server verfügbar, sodass Assistenten ihn direkt aufrufen können. Drei Werkzeuge: list_srp_plans, get_srp_rate, calculate_srp_bill. Kostenlos und lokal — keine Zahlung, kein Netzwerkaufruf.
{
"mcpServers": {
"srp-tariff": {
"command": "C:\\path\\to\\utility-api\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\utility-api\\mcp_server.py"]
}
}
}Windows-Hinweise, auf die harte Tour gelernt:
Installieren Sie Abhängigkeiten explizit mit dem Interpreter der venv:
& ".\.venv\Scripts\python.exe" -m pip install -r requirements.txt. Ein einfachespip installkönnte einen anderen Python verwenden, und der Server schlägt dann mitModuleNotFoundErrorfehl.Wenn Claude Desktop aus dem Microsoft Store stammt, liest es eine sandboxed Konfigurationsdatei unter
%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\, nicht%APPDATA%\Claude\. Verwenden Sie Einstellungen → Entwickler → Konfiguration bearbeiten, um die Datei zu finden, die die App tatsächlich liest.Der Entwicklermodus muss aktiviert sein, damit lokale Server erscheinen.
Maschinenzahlungen (x402)
Die HTTP-Endpunkte sind außerdem pro Aufruf zahlbar über
x402 — ein Agent empfängt eine 402, zahlt in USDC und versucht es erneut, ohne Konto oder API-Schlüssel. Derzeit auf Base Sepolia (Testnetz); das aktive Netzwerk wird unter GET / gemeldet.
/ und /v1/tariff/plans sind von Natur aus kostenlos: Ein Aufrufer muss in der Lage sein zu erfahren, was abgedeckt ist, bevor er entscheidet, wofür er zahlt.
Lokal ausführen
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -m pytest tests\ -v
python -m uvicorn server:app --reloadDie Zahlung wird nur aktiviert, wenn CDP_API_KEY_ID und X402_PAY_TO beide in .env gesetzt sind. Lassen Sie sie ungesetzt, um ohne Bezahlung zu laufen.
Datenmodell
Eine JSON-Datei pro Einreichung, nicht pro Tarifplan:
data/tariffs/srp/<slug>@<from-billing-cycle>.json. Ein Tariffall oder eine vorübergehende Anpassung fügt eine Datei hinzu; sie bearbeitet niemals eine bestehende. Das Register schlüsselt nach tariff_id auf eine Liste von Versionen auf und wählt anhand des angefragten Abrechnungszeitraums aus, sodass historische Zeiträume beantwortbar bleiben.
Dateien werden gegen schemas/tariff-schema.v1.1.json validiert. Die Testsuite prüft, dass jeder Komponentenstapel in der Summe dem ausgewiesenen Gesamtbetrag entspricht, dass alle zwölf Monate genau einer Saison zugeordnet sind, dass jede Saison-/Zeitraum-Kombination, die der Kalender erzeugen kann, einen Preis hat, und dass eine Datei, die confidence: verified beansprucht, auch benennt, wer sie verifiziert hat und auf welchen Seiten.
Bekannte Lücken
Ab November 2026 ist nichts modelliert. SRP veröffentlicht mehrere Tarifbuch-Varianten (Basis, temporär-FPPAM und TCA-Überarbeitungen), und welche für den November-Zyklus gilt, muss vor der Aufnahme gegen die Quelle bestätigt werden.
Exportgutschriften (E-28, E-13, E-14, E-16) benötigen einen Gutschrift-Preistyp — Schema v1.2.
Pro-rata-Abrechnung für teilweise Abrechnungszeiträume (Einzug, Auszug, Tarifwechsel) ist nicht abgebildet.
Strukturierte Berechtigung. Ein Kunde mit Dach-Solaranlage von 2019 kann nicht auf E-26 sein, aber die Berechtigung ist derzeit Prosa, sodass nichts einen Aufrufer davon abhält, ihn damit zu bepreisen.
Rundungskonvention ist pro Einzelposten, dann summiert. Ob SRP zuerst summiert und dann rundet, ist gegen eine echte Time-of-Use-Rechnung nicht verifiziert.
Genauigkeit und Haftungsausschluss
Tarife werden aus den eingereichten Tarifbüchern von SRP übertragen, und jede Datei hält fest, wer sie gegen welche Seiten verifiziert hat. Komponentenstapel werden maschinell darauf geprüft, dass sie in der Summe den ausgewiesenen Gesamtbeträgen entsprechen. Trotzdem ist dies eine inoffizielle Neuimplementierung: Sie ist weder mit SRP verbunden noch von SRP unterstützt, und sie sollte nicht die alleinige Grundlage für eine finanzielle Entscheidung sein. Verifizieren Sie anhand Ihrer eigenen Rechnung und der veröffentlichten Tarife von SRP.
Einreichungen ändern sich. Prüfen Sie retrieved_at in jeder Antwort und bestätigen Sie, dass der betreffende Zeitraum abgedeckt ist.
Erstellt von Killion Apps.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables LLMs to query Azure service pricing via the public Azure Retail Prices API, with tools for searching prices, estimating costs, comparing regions, and listing services.5MIT
- AlicenseNot gradedqualityAmaintenanceProvides electricity tariff queries and rate calculations for US utilities, enabling cost estimation and optimal charging schedules.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access and analyze Spanish electricity consumption data via the Datadis API, providing tools for supply management, consumption analysis, anomaly detection, and executive reporting.MIT
- FlicenseNot gradedqualityBmaintenanceProvides real-time electricity prices, cheapest hours, and contract comparison for 40+ countries, enabling AI agents to make energy-aware decisions.2
Related MCP Connectors
Real-time electricity prices for AI agents. 40+ countries, 100+ zones. No auth required.
Free solar & home energy tools: estimates, incentives by ZIP, scores, installer routing.
60+ units, live FX, timezones, and date arithmetic for AI agents.
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/courtkillion/utility-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server