Comparador de luz y gas (CNMC)

io.github.nuncaeslupus由 GitHub 帳號 nuncaeslupus 發布v0.2.5更新於 Oct 27, 2026

Ofertas de luz y gas en España del comparador oficial de la CNMC, ordenadas por precio.

已驗證STDIO僅桌面位置與生活金融

概覽

AI 產生的概覽

依價格比較西班牙 CNMC 官方比價器中的電力與瓦斯報價,可依郵遞區號、用量與功率或帳單 QR 碼查詢。

可以做什麼
  • 依郵遞區號、用量與功率比較電力、瓦斯或兩者,回傳依價格排序的報價及多年期分析
  • 讀取帳單 QR 碼中的資料,可直接傳入 QR 字串,或讀取磁碟上的 PDF、圖片檔
  • 回報涵蓋範圍,列出未出現在官方比價器中的大型供應商
  • 以 JSON 或文字表格輸出結果,金額可為年度或帳單期間口徑
適用情境
適合西班牙的使用者想了解哪些經 CNMC 驗證的電力或瓦斯報價對自家住宅或企業最便宜,或想把現有帳單與可選報價做比較時使用。
執行需求
以 stdio 在本機執行,透過 uvx 從 PyPI 套件 comparador-luz-gas 啟動(也可使用隨附的 Dockerfile)。從 PDF 或圖片讀取 QR 碼需安裝 facturas 附加元件及系統函式庫 libzbar0 與 poppler-utils。比價需要連線至 CNMC API 的網路;未宣告需要帳號、API 金鑰或環境變數。
安裝前請注意
每次比價都會把郵遞區號、用量與功率傳送到 CNMC 公開 API。帳單檔案與 QR 資料含真實地址、CUPS 與用量資訊,請勿放在共用或納入版本控管的資料夾。結果並非完整市場清單,不含稅費明細,也不計入帳單中的附加服務或設備租賃。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Comparador de luz y gas (CNMC),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

comparador-luz-gas

[PyPI] [CI] [License: MIT] [comparador-luz-gas MCP server – quality and maintenance score on Glama]

[Built with claude-arsenal]

[comparador-luz-gas: los 83 parámetros del formulario de la CNMC se quedan en tres datos, código postal, consumo y potencia, o el QR de la factura, y salen las ofertas ordenadas de más barata a más cara, con el aviso de qué comercializadoras grandes faltan]

El comparador oficial de tarifas de luz y gas de la CNMC, como librería, CLI y servidor MCP.

El comparador de la CNMC es la única comparativa oficial de ofertas de energía en España, pero solo se usa a través de un formulario web; su API pública pide 83 parámetros por consulta. Este proyecto la reduce a tres datos (código postal, consumo, potencia) o al QR de la factura, y devuelve las ofertas en JSON ordenadas por precio, con un análisis a varios años y el aviso de qué comercializadoras grandes no están en el comparador.

Inicio rápido

bash
uvx comparador-luz-gas --cp 28013 --consumo 2600 --texto --top 5

O instalado: pip install comparador-luz-gas. Para leer el QR de un PDF o una imagen, pip install "comparador-luz-gas[facturas]" y sudo apt install libzbar0 poppler-utils.

Ejemplo

Salida real (consulta del 2026-10-20; los precios cambian con el mercado):

text
$ comparador-luz-gas --cp 28013 --consumo 2600 --texto --top 5  1er año    2º año  comercializadora                       oferta----------------------------------------------------------------------------------------------------   653.02      0.00  Comercializadora de referencia         PVPC Histórico 19/10/2025 - 19/10/2026   655.15    655.15  ENERGIA NUFRI SL                       ENERGIA NUFRI - CON HORARIOS   657.85    721.45  niba                                   niba Zen   661.53    661.53  ENERGIA NUFRI SL                       ENERGIA NUFRI - UNIVERSAL CON HORARIOS   662.80    713.51  CIDE HCENERGÍA S.A.U                   Plan Estrella Dúo
70 ofertas de 28 comercializadoras.No están en el comparador: ENDESA, IBERDROLA, TOTALENERGIES, HOLALUZ, EDP, GALP.[...]
A 3 años, lo más barato es ENERGIA NUFRI SL «ENERGIA NUFRI - CON HORARIOS»: 1965.45 €(655.15 €/año en régimen). ¿Prefieres pagar lo mismo a cualquier hora o puedes concentrarel consumo en las horas baratas? Con tu reparto actual gana la discriminación horaria por41.79 €: [...]- La mejor a 3 años es solo para nuevos clientes: [...]- El PVPC sale 2.13 € más barato al año que la mejor fija (653.02 € frente a 655.15 €),  pero es variable: [...]- 13 de 70 ofertas tienen permanencia (penalización de 16.87 a 37.42 €).

Sin --texto imprime JSON con las claves modo, importes, consulta, cobertura, ofertas, alternativa_por_separado y analisis. Cada oferta:

json
{"comercializadora": "Comercializadora de referencia", "oferta": "PVPC Histórico 19/10/2025 - 19/10/2026", "importe_primer_anio": 653.02, "importe_segundo_anio": 0.0, "permanencia": false, "servicios_adicionales": false, "verde": false, "validez": "Válida para consumidores con derecho a PVPC", "precio_unico": false, "id_oferta": 180, "penalizacion_estimada": 0, "solo_nuevos_clientes": false}

Desde Python:

python
from comparador_luz_gas import Consulta, comparar, desde_fichero, interpretar
r = comparar(Consulta(codigo_postal="28013", consumo_anual_luz=2600, potencia=3.45))r.ofertas[0]  # la más barata el primer añor.to_dict()  # lo mismo que imprime el CLIinterpretar(r, anios=3)["resumen"]  # valoración a 3 años
r = comparar(desde_fichero("factura.pdf").consulta())  # todo desde el QR de la factura

Uso con agentes de IA

Servidor MCP

comparador-luz-gas mcp sirve el comparador por stdio, sin dependencias extra. Está en el registro oficial de MCP como io.github.nuncaeslupus/comparador-luz-gas.

json
{  "mcpServers": {    "comparador-luz-gas": { "command": "uvx", "args": ["comparador-luz-gas", "mcp"] }  }}

Para leer facturas del disco: "args": ["--from", "comparador-luz-gas[facturas]", "comparador-luz-gas", "mcp"]. También hay Dockerfile (docker run -i --rm comparador-luz-gas).

herramientaqué hace
comparar_ofertasofertas + análisis a largo plazo, como el JSON del CLI. Basta qr, o cp + consumo (luz); para gas, suministro: "gas" con cp + consumo_gas; para ambas, suministro: "ambas" con cp, consumo y consumo_gas; max_ofertas (20 por defecto) recorta la lista
leer_factura_qrlos datos del QR de una factura, sin consultar la CNMC
leer_factura_archivolee el QR de un PDF o imagen del disco (necesita el extra facturas)

Los errores vuelven como {"ok": false, "error": "ArgumentoInvalido", "message": "..."}.

Desde el CLI

Un agente sin MCP puede llamar al CLI: por defecto escribe JSON en stdout. modo e importes dicen si los importes son anuales o de un periodo de factura, para que no se confunda un mes con un año. Un argumento inválido sale con código 2 y el mensaje en stderr.

Cómo funciona

  • Una petición a la API oficial de la CNMC (3-8 s, límite 90 s). No hay precios propios ni caché: solo cuentas sobre lo que responde la CNMC.
  • Lee el QR de la factura. Desde la Resolución de la CNMC de 24/06/2021 (BOE-A-2022-16989) toda factura de luz lleva un QR con código postal, potencias, consumo anual por franja, periodo e importe. El formato lo fija la CNMC, así que vale para cualquier comercializadora. desde_qr() no tiene dependencias: una app que ya escaneó el QR le pasa la cadena.
  • Dos modos. Por defecto, coste estimado de 12 meses. Con --mensual (f.consulta(mensual=True)), el coste del periodo concreto de la factura, comparable con el importe impreso.
  • Análisis a largo plazo (interpretar(), clave analisis): coste a N años (primer_anio + (N-1) × siguientes), porque el primer puesto suele ganarlo un descuento de bienvenida que se cobra una vez. Separa precio único frente a discriminación horaria, señala las ofertas solo para nuevos clientes, la permanencia y su penalización, y el PVPC frente a la mejor fija.
  • Cobertura. Cada respuesta lista las comercializadoras presentes y las grandes que faltan (cobertura.grandes_ausentes).
  • Anualizar. anualizar(facturas) extrapola el consumo de varias facturas recientes en vez de usar los 12 meses rodantes del QR.

CLI

bash
comparador-luz-gas --cp 28013 --consumo 2600                      # JSONcomparador-luz-gas --cp 28013 --consumo 2600 --texto --top 5      # tablacomparador-luz-gas --cp 28013 --consumo 2600 --sin-permanenciacomparador-luz-gas --cp 28013 --consumo 2600 --consumo-gas 6000 --suministro ambascomparador-luz-gas --cp 28013 --consumo 2600 --franjas 600,700,1300 --anios 5comparador-luz-gas --factura factura.pdf --texto                  # compara con los datos del QRcomparador-luz-gas --factura factura.pdf --mensual --texto        # coste de ese periodocomparador-luz-gas --qr 'https://comparador.cnmc.gob.es/comparador/QRE?cp=...'comparador-luz-gas --factura factura.pdf --solo-datos             # solo lee el QR

Otras opciones: --potencia (kW, 3,45 por defecto), --empresa (suministro que no es vivienda). comparador-luz-gas --help las lista todas.

Campos de Consulta: codigo_postal (obligatorio), consumo_anual_luz, consumo_anual_gas, potencia (3.45), suministro ("luz", "gas", "ambas"), franjas ((punta, llano, valle); si falta, perfil 2.0TD), vivienda (True), permanencia y servicios_adicionales (2; 1 = solo ofertas sin ellos).

Limitaciones

  • No es un censo del mercado. La CNMC solo publica ofertas que las comercializadoras le remiten y valida. Comprobado el 2026-09-23 sobre 20 códigos postales: Endesa, TotalEnergies, Plenitude, Holaluz y EDP no tienen ofertas; Iberdrola, una de gas. Endesa e Iberdrola solo aparecen como Comercializadora de referencia (PVPC/TUR). El resultado es la mejor entre las verificadas por la CNMC.
  • Sin desglose de impuestos. Confirma con la comercializadora si el importe lleva IVA.
  • La factura incluye cosas que el comparador no cuenta: servicios adicionales, alquiler de equipos, bono social. El QR los desglosa (impSA, finBS); réstalos antes de comparar.
  • Las ofertas por tramos se valoran con tu reparto punta/llano/valle actual, con los tramos 2.0TD de la Circular 3/2020 (vigentes desde el 1/06/2021; Ceuta y Melilla usan otros). Si piensas mover consumo, repite con --franjas. Si vienes de una tarifa de discriminación horaria anterior, usa solo facturas posteriores a esa fecha.
  • Sin histórico. El catálogo no lleva fechas de alta ni caducidad, y la CNMC no publica el histórico, así que no se puede decir en qué mes conviene cambiar.
  • QR escaneado: 400 dpi aguanta JPEG, giro y desenfoque; 300 dpi va bien salvo desenfoque; 200 dpi solo si está limpio; 150 dpi no se lee.

Documentación

Desarrollo

bash
make sync && make lint && make testmake test-live       # consulta la API realmake test-facturas   # lee el QR de los PDFs de data/facturas/, si los hay

data/har/ y data/facturas/ están en .gitignore (llevan CUPS, dirección y consumos reales); los tests versionados usan un QR inventado.

Proyectos relacionados

  • claude-arsenal — flujo de Claude Code guiado por especificaciones y cola de tareas con puertas de aceptación.
  • drawspec — especificación declarativa de diagramas a SVG/PNG/texto limpio, escribible por LLMs; incluye servidor MCP.
  • doc-control — permite a agentes de IA editar documentos Word como cambios controlados.
  • literary-critic — análisis de manuscritos con LLM al modo de un editor profesional.
  • integral-job-search — búsqueda de empleo centrada en el candidato, dentro de Claude Code.

Licencia

MIT

來源:README.md,提交 7aada70

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

4
  1. v0.2.5最新Oct 20, 2026
  2. v0.2.4Oct 15, 2026
  3. v0.2.2Oct 15, 2026
  4. v0.2.1Oct 15, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分