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 官方比价器中的电力和燃气报价,可依据邮编、用量与功率或账单二维码查询。

可以做什么
  • 按邮编、用量和功率比较电力、燃气或两者,返回按价格排序的报价及多年期分析
  • 读取账单二维码中的数据,可直接传入二维码字符串,或读取磁盘上的 PDF、图片文件
  • 报告覆盖范围,列出未出现在官方比价器中的大型供电商
  • 以 JSON 或文本表格输出结果,金额可为年度或账单周期口径
适用场景
适合在西班牙的用户想了解哪些经 CNMC 核验的电力或燃气报价对自家住宅或企业最便宜,或想把现有账单与可选报价作对比时使用。
运行要求
以 stdio 在本地运行,通过 uvx 从 PyPI 包 comparador-luz-gas 启动(也可用随附的 Dockerfile)。从 PDF 或图片读取二维码需安装 facturas 附加组件及系统库 libzbar0 和 poppler-utils。比价需要访问 CNMC API 的网络连接;未声明需要账号、API 密钥或环境变量。
安装前请注意
每次比价都会把邮编、用量和功率发送到 CNMC 公共 API。账单文件和二维码数据含真实地址、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 分