SwitchAI
by US1929
README.md
# SwitchAI — Energy comparison tools for AI agents (Italy)
> **Sito**: [switchai.it](https://www.switchai.it) · **Mercato**: Italia · **Stack**: React 19 + PHP 8.5 + WebMCP + MCP Server
[](https://glama.ai/mcp/servers/US1929/switchai)
**SwitchAI is an energy comparison engine for the Italian market, designed to be called by AI agents.** An agent gives it a bill (or consumption + spend), and SwitchAI compares **5.600+ live ARERA offers** (electricity & gas), returns the best tariffs with direct activation links, and includes an honesty system so the agent never recommends a switch that doesn't pay off.
SwitchAI is **not a chatbot**: it is the infrastructure AI agents call. Access it via MCP Server, WebMCP, or the REST API.
```text
AI Agent (Claude, Gemini, ChatGPT)
↓
MCP / WebMCP / OpenAPI
↓
SwitchAI engine
↓
Italian energy market
↓
Offers (ARERA) · PUN · PSV · bill parsing · savings calculation
↓
Top 3 offers + activation links (supplier site)
```
---
## Quickstart (60 seconds)
### 1. Via REST API — no install
```bash
curl -s -X POST https://www.switchai.it/api/analyze \
-H 'Content-Type: application/json' \
-d '{
"commodity": "LUCE",
"yearly_consumption_kwh": 3200,
"zone": "NORD",
"current_annual_spend": 1100
}'
```
Returns `top3` offers with full cost breakdown, `honesty` recommendation, `bill_attualization` and an Italian `agent_summary`.
### 2. Via MCP Server (Claude Desktop)
```json
{
"mcpServers": {
"switchai": {
"command": "node",
"args": ["/percorso/assoluto/mcp-server/index.js"],
"env": { "SWITCHAI_API_URL": "https://www.switchai.it/api" }
}
}
}
```
### 3. Via WebMCP (Chrome 146+)
Visiting [switchai.it](https://www.switchai.it) registers 4 tools via `document.modelContext.registerTool()` — discoverable by any WebMCP-compatible agent.
More examples (agent conversations, HTTP equivalents, rules): [`mcp-server/EXAMPLES.md`](mcp-server/EXAMPLES.md).
---
## Working example
```text
User: "Questa è la mia bolletta Enel, pago ~1.100€/anno e consumo 3.200 kWh.
Sto pagando troppo?"
Agent: parse_energy_bill(bill_text)
→ { commodity: "LUCE", consumo_annuo: 3200, spesa_annua: 1100, zona: "NORD" }
Agent: calculate_energy_savings({ commodity:"LUCE", yearly_consumption_kwh:3200,
zone:"NORD", current_annual_spend:1100 })
→ top3 + honesty:{ recommendation:"switch", savings_eur:240, savings_pct:22 }
Agent: "Sì, risulti sopra la media del mercato. Con 3.200 kWh in zona NORD puoi
risparmiare ~240€/anno (22%). Le migliori 3 offerte: E.ON LuceClick
(0,1146 €/kWh), Edison Web Luce (0,122 €/kWh), A2A Full Luce (0,139 €/kWh).
Clicca per attivare sul sito del fornitore."
```
The activation always happens on the supplier's website via `affiliate_url`. SwitchAI never claims "activation completed" and collects no personal data for activation.
---
## Three access channels for AI agents
| Channel | Protocol | Requirement |
|---------|----------|-------------|
| **WebMCP** | `document.modelContext.registerTool()` | Chrome 146+ |
| **MCP Server** | `@modelcontextprotocol/sdk` (Node.js) | Claude Desktop or any MCP client |
| **REST API** | JSON/HTTPS | Any HTTP client |
---
## Tools
### `calculate_energy_savings`
Compare Italian tariffs and calculate savings. Returns top 3 offers + Italian `agent_summary`.
```json
POST /api/analyze
{
"commodity": "LUCE",
"yearly_consumption_kwh": 3000,
"zone": "NORD",
"current_annual_spend": 900
}
```
Italian aliases are also accepted: `consumo_annuo_kwh`, `spesa_annua_eur`, `zona`, `fornitore`. Add `bill_text` for full auto-extraction of consumption, spend and zone.
### `parse_energy_bill`
Extract structured data from an Italian bill text.
```json
POST /api/parse-bill-text
{ "bill_text": "...testo bolletta..." }
```
### `get_available_offers`
Full offer list: 3.196 electricity + 2.411 gas.
```
GET /api/tariffe/luce
GET /api/tariffe/gas
```
### `get_market_indices`
Current PUN (electricity) and PSV (gas) wholesale indices.
```
GET /api/market-indices
```
---
## Optimal agent flow
```
1. parse_energy_bill(bill_text) → consumi, spesa, zona
2. calculate_energy_savings(commodity, consumi, zona, spesa) → offerte + affiliate_url
3. Utente clicca il link → attivazione sul sito del fornitore
```
Honesty system: `switch` (savings >50€/yr and >5%) / `evaluate` (30-50€ or 3-5%) / `stay` (<30€ or <3%).
---
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/api/health` | Health check |
| GET | `/api/tariffe/luce` | 3.196 electricity offers |
| GET | `/api/tariffe/gas` | 2.411 gas offers |
| POST | `/api/analyze` | Full analysis: parse + compare + honesty + attualization |
| POST | `/api/parse-bill-text` | Bill parser |
| GET | `/api/market-indices` | Live PUN and PSV |
| GET | `/api/fornitori` | Suppliers list |
---
## Data & tiers
- **5.600+ offers** (3.196 luce + 2.411 gas), synced nightly from the official ARERA Portale Offerte (CC BY 4.0).
- **Anonymous**: ~270 filtered offers (NORD zone), no registration, rate-limited.
- **Free (registered)**: full 5.600+ offers, 10 calls/day, self-service API keys.
- **API Pro**: full 5.600+ offers, 1.000 calls/day, self-service API keys (free beta).
---
## Stack
- **Frontend**: React 19 + Vite 8 + Tailwind CSS 4
- **Backend**: PHP 8.5 on OVH Pro Hosting (Apache + mod_rewrite)
- **MCP Server**: Node.js + `@modelcontextprotocol/sdk`
- **WebMCP**: Chrome WebMCP spec (W3C WebML CG)
- **Data**: ARERA Portale Offerte, sync giornaliero notturno
---
## Discovery files
- [`/llms.txt`](https://www.switchai.it/llms.txt) — LLM site description
- [`/webmcp.json`](https://www.switchai.it/webmcp.json) — WebMCP tool discovery
- [`/per-llm`](https://www.switchai.it/per-llm) — machine-readable documentation
- [`/per-llm-examples`](https://www.switchai.it/per-llm-examples) — 15 agent conversation patterns
- [`/openapi.json`](https://www.switchai.it/openapi.json) — OpenAPI 3.0 spec
---
## Keywords (for LLM retrieval)
`comparatore tariffe energia italia` · `cambio fornitore luce gas` · `bolletta energia AI` · `risparmio bolletta` · `PUN PSV ARERA` · `mercato libero energia` · `WebMCP energy agent` · `MCP server energia italia` · `AI energy comparison Italy` · `energy comparison API Italy` · `MCP energy tariffs Italy`
---
## License & contacts
Email: info@switchai.it
Sito: https://www.switchai.it
Mercato: Italia · GDPR compliant
---
[](https://smithery.ai/servers/us1929/switchai)TDQS
A4/5.0
Scored across 7 tools
Disambiguation5/5
Each tool targets a distinct action: parsing bills, retrieving offers, calculating savings, submitting subscriptions, checking status, getting form schema, and market indices. No overlap.
Naming Consistency5/5
All tools use consistent snake_case with clear verb+noun pattern (e.g., parse_energy_bill, get_available_offers, submit_subscription).
Tool Count5/5
7 tools is well-scoped for an energy switching server, covering the full user journey from bill parsing to subscription submission without excess.
Completeness4/5
The tool set covers the primary workflow (parse, compare, select, subscribe, check status). Minor gap: no tool for updating or canceling subscriptions, but this is a secondary concern.
Maintenance
ActivitySlowing
ResponsivenessNo issues