Skip to main content
Glama

Battery ERP — Gestión de materiales, celdas, packs y cadena de suministro con precios en tiempo real

precios de materias primas y analíticas de Fabric Lakehouse.

Cubre toda la cadena de valor de la batería: litio, cobalto, níquel, manganeso, grafito

a través de las químicas de celdas (NMC-811, NCA, LFP, LMO) hasta los packs de batería con costes de BOM,

evaluación de proveedores, gestión de inventario y escenarios de coste hipotéticos.

Python PyPI License Tests Fabric

mcp-name: io.github.icohangar-battery/battery-erp


Qué es esto

Battery ERP gestiona la cadena de valor completa de la batería, desde la obtención de materias primas, pasando por la fabricación de celdas hasta el ensamblaje de packs. Cada coste se puede remontar a un material, proveedor y punto de precio concretos.

Capa

Rol

Knowledge Models

RawMaterial, CellChemistry, BatteryCell, BatteryPack, BOMItem, Supplier, InventoryRecord, PurchaseOrder, ManufacturingBatch

Bienes raíces

Acumulación de costes BOM, gestión de estados de inventario, puntuación de proveedores (calificación compuesta A-D), seguimiento de rendimiento de fabricación, análisis de tendencias de precios, escenarios de coste hipotéticos

Motor de precios

Tabla de precios de materiales por defecto (más de 20 materiales), integración con AlphaVantage para precios en vivo de materias primas, superposición macro de FRED

Analíticas

Informe de salud de inventario, análisis de inventario, informes de cadena de suministro, informes de rendimiento de fabricación, cuadros de comparección de costes por química

Fabric Lakehouse

11 tablas Delta para almacenamiento persistente y analítica SQL


Related MCP server: Factory Insight MCP Server

Inicio rápido

# From PyPI — https://pypi.org/project/battery-erp/
python3 -m pip install 'battery-erp[mcp]'   # MCP tools
python3 -m pip install 'battery-erp[api]'   # REST adapter

# From source
git clone https://github.com/icohangar-ops/battery-erp.git
cd battery-erp
python3 -m pip install -e '.[dev]'
PYTHONPATH=src python3 -m pytest tests/ -v

# Domain modules
python3 -c "
from battery_erp.pricing import calculate_cell_cost_summary, get_material_price_table
prices = get_material_price_table()
for chem in ['NMC-811', 'NMC-622', 'NCA', 'LFP', 'LMO']:
    r = calculate_cell_cost_summary(chem, 50.0, prices)
    print(f'{chem}: \${r[\"cost_per_kwh\"]:.1f}/kWh (BOM: \${r[\"bom_cost_usd\"]:.2f})')
"

Arquitectura

                    ┌──────────────────────────────────────┐
                    │  Raw Materials (20+ tracked)          │
                    │  Lithium · Cobalt · Nickel · Mn · Gr  │
                    └──────────────┬───────────────────────┘
                                   │ BOM
                    ┌──────────────▼───────────────────────┐
                    │  Cell Chemistries                     │
                    │  NMC-811 · NMC-622 · NCA · LFP · LMO  │
                    └──────────────┬───────────────────────┘
                                   │ cells + components
                    ┌──────────────▼───────────────────────┐
                    │  Battery Packs                        │
                    │  EV · ESS · Consumer · Industrial     │
                    └──────────────────────────────────────┘

Side modules:
  ┌─────────────────┐  ┌──────────────────┐  ┌──────────────────┐
  │ Supplier Scoring │  │ Inventory Mgmt   │  │ Cost Scenarios    │
  │ Composite 0-100  │  │ Reorder logic    │  │ What-if analysis  │
  │ A/B/C/D grades   │  │ Status tracking  │  │ Price shock model │
  └─────────────────┘  └──────────────────┘  └──────────────────┘

Módulos principales

battery_erp.core.models

Todas las dataclasses del dominio:

  • RawMaterial — catálogo de materiales con precios, códigos HS y peligros

  • CellChemistry — NMC-111/622/811, NCA, LFP, LMO con densidad energética y vida útil

  • BatteryCell — especificaciones de celda (capacidad, voltaje, formato, peso)

  • BatteryPack — ensamblaje de pack (celdas + BMS + térmica)

  • BOMItem — línea de la lista de materiales (BOM) con factor de desperdicio

  • Supplier — catálogo de proveedores con calificación de calidad, plazo de entrega, certificaciones

  • InventoryRecord — posiciones de almacén con lógica de reposición

  • PurchaseOrder — seguimiento del ciclo de vida de las órdenes de compra (PO)

  • Materiallist — seguimiento de los lotes de producción

  • PriceHistory — serie temporal de precios de materias primeras

battery_erp.core.rules

Reglas de negocio deterministas:

  • rollup_bom_cost() — coste total BOM con desglombre de materiales y coste de desperdicio

  • calculate_cell_bom() — genera un BOM representivo para cualquier química

  • calculate_pack_bom() — BOM a nivel de pack (celdas + carcasa + BMS + refrigeración)

  • update_inventory_status() — recalcula in_stock/low/out_of_stock

  • check_reorder_suggestions() — genera sugerencias de pedido de compra

  • calculate_batch_metrics() — agrega el rendimiento de fabricación

  • analyze_price_history() — análisis de tendencia de precios con volatilidad

  • estimate_cell_cost_impact() — modelización de escenarios de coste hipotéticos

  • calculate_pack_metrics() — densidad de energía y eficiencia del pack

battery_erp.supply_chain

Gestión de la cadena de suministro:

  • score_supplier() — puntuación compuesta (calidad 35%, OTD 35%, plazo de entrega 20%, certificaciones 10%)

  • rank_suppliers() — clasificar por puntuación, filtrar por material

  • create_purchase_order() — creación de la órden de compra a partir de datos del proveedor

  • analyze_po_pipeline() — análisis del pipeline de pedidos (detección de retrasos, seguimiento de plazos)

  • suggest_dual_sourcing() — recomendación de estrategia de doble abastecimiento

battery_erp.pricing

Precios de materias primeras:

  • get_material_price_table() — precios por defecto para más de 20 materiales de batería

  • calculate_cell_cost_summary() — estimación rápida de coste por química

  • update_prices_from_alpha_vantage() — obtención de precios de materias primeras en vivo

  • update_prices_from_fred() — indicadores macroeconómicos

battery_erp.analytics

Informes y paneles:

  • generate_inventory_report() — panel de salud de inventario completo

  • generate_supply_chain_report() — informe de proveedores y sistema de pedidos

  • generate_manufacturing_report() — métricas de rendimiento de fabricación

  • generate_pricing_report() — comparación de costes por química y tendencias de precios


Comparación de coste de las química (precios por defecto, celda de 50Ah)

Química

Coste BOM

$/kWh

Cátodo %

Característica principal

LFP

El menor

~$50-60

~35%

Sin Co/Ni, ultraseguro, más de 4000 ciclos

LMO

Bajo

~$55-70

~40%

Bajo coste, herramientas eléctricas

NMC-111

Medio

~$70-80

~50%

Los cilindro, heredada

NMC-622

Medio

~$75-85

~48%

Buen equilibrio energía-coste

NMC-811

Más alto

~$80-90

~52%

Alta energía, dominante en plantillas

NCA

El más alto

~$90-95

~55%

Buque insignia de Tesla, 270 Wh/kg


Integración con Microsoft Fabric

Fabric Notebooks

Notebook

Propósito

fabric_setup_lakehouse.py

Crear las 11 tablas Delta con datos de ejemplo

fabric_cost_dashboard.py

Panel de control de costes completo (comparación de celdas, costes de pack, inventario, proveedores, tendencias de precios, escenarios)

Esquema de Tabla Delta

Tabla

Columnas clave

raw_materials

material_id, nombre, categoría, unit_price_usd, price_source, hs_code (en el esquema original: material\_id, name, category, unit\_price\_usd, price\_source, hs\_code)

cell_chemistries

chemistry_id, name, cathode, energy_density_wh_per_kg, cycle_life (en el original: chemistry\_id, name, cathode\_type, energy\_density\_wh\_per\_kg, cycle\_life)

battery_cells

cell_id, sku, chemistry, form_factor, nominal_capacity_ah, energy_wh, weight_kg (original: cell\_id, sku, chemistry, form\_factor, nominal\_capacity\_wh, energy\_wh, weight\_kg)

battery_packs

pack_id, sku, cell_sku, total_cells, nominal_capacity_kwh, weight (original: pack\_id, sku, cell\_sku, total\_cells, nominal\_capacity\_kwh, pack\_weight\_kg)

bill_of_materials

bom_id, parent_sku, material_name, quantity, unit_cost, waste_factor (original: bom\_id, parent\_sku, material\_name, quantity\_per\_unit, unit\_cost\_usd, waste\_factor\_pct)

suppliers

supplier_id, name, country, materials_supplied, quality_rating, lead_time_days (original: supplier\_id, name, country, materials\_supplied, quality\_rating, lead\_time\_days)

inventory

record_id, sku, material_name, quantity_on_hand, reserved, reorder_point (original: record\_id, sku, material\_name, quantity\_on\_hand, quantity\_reserved, reorder\_point)

purchase_orders

po_id, po_number, supplier_name, quantity, total_usd, status, cta (original: po\_id, po\_number, supplier\_name, quantity, total\_usd, status, expected\_delivery)

price_history

material_name, price_usd, date, source (original: material\_name, price\_usd, as\_of, source)

manufacturing_batches

batch_id, product_sku, chemistry, quantity_produced, quantity_pass, yield_pct (original: batch\_id, product\_sku, chemistry, quantity\_produced, quantity\_pass, yield\_pct)

cost_scenarios

scenario_id, scenario_name, material_name, current_price, scenario_price, pct_change (original: scenario\_id, scenario\_name, material\_name, current\_price\_usd, scenario\_price\_usd, pct\_change)

Inicio rápido de Fabric

  1. Ejecute fabric_setup_lakehouse.py para crear las 11 tablas Delta.

  2. Ejecute fabric_cost_dashboard.py para el panel de control de análisis completo.

  3. El panel incluye: comparación de costes por química, costes a nivel de pack, salud de inventario, compra a proveedores, tendencias de precios, rendimiento de fabricación y escenarios de coste.


Adaptadores de inventario (REST + MCP)

Battery ERP es una biblioteca de dominio, no un ERP alojado. Para flujos de texto/SMS y de agentes, un InventoryService compartido se expone tanto bajo una API REST ligera como bajo un servidor MCP. Todos los detalles: docs/INTEGRATION.md.

SMS / ClickSend          Cursor / Claude (stdio MCP)
        │                         │
        ▼                         ▼
  REST API (port 8088)      battery_erp.mcp
        └──────────┬──────────────┘
                   ▼
           InventoryService
                   ▼
        InMemoryInventoryStore (demo)
                   ▼
          Human bin confirmation

No utilice MCP desde un navegador. Mantenga REST y MCP en terminales separadas.

Instalación (macOS / zsh)

Usa python3. Pon el extra con pip entre comillas para que zsh no haga globbing:

cd ~/Desktop/icohangar-repos/battery-erp
python3 -m pip install -e '.[dev]'   # api + mcp + pytest

Terminal A — REST (backend de información / texto)

cd ~/Desktop/icohangar-repos/battery-erp
export BATTERY_ERP_CONFIRM_TOKEN=dev-secret
export BATTERY_ERP_AUDIT_LOG=/tmp/battery-erp-audit.jsonl
PYTHONPATH=src python3 -m battery_erp.api
# Uvicorn → http://127.0.0.1:8088
curl -s http://127.0.0.1:8088/health
curl -s http://127.0.0.1:8088/inventory/lookup/lithium

Terminal B — MCP (solo agentes / Cursor)

Deja la Terminal A funcionando. En una terminal nueva:

cd ~/Desktop/icohangar-repos/battery-erp
export BATTERY_ERP_CONFIRM_TOKEN=dev-secret
PYTHONPATH=src python3 -m battery_erp.mcp

Ese proceso permanece silencioso en stdio — normal para MCP. No lo pegues en la terminal de la API.

Config MCP de Cursor

Añade en ~/.cursor/mcp.json (rutas absolutas; usa python3 no python):

{
  "mcpServers": {
    "battery-erp": {
      "command": "python3",
      "args": ["-m", "battery_erp.mcp"],
      "env": {
        "PYTHONPATH": "/Users/YOU/Desktop/icohangar-repos/battery-erp/src",
        "BATTERY_ERP_CONFIRM_TOKEN": "replace-me",
        "BATTERY_ERP_AUDIT_LOG": "/tmp/battery-erp-audit.jsonl"
      }
    }
  }
}

Después, recarga los servidores MCP en Cursor. Herramientas expuestas: lookup_inventory, get_inventory_status, get_inventory_record, list_inventory, create_bin_check_request, record_bin_confirmation.

Superficie

Entrada

Capa compartida

REST

GET /inventory/lookup/{part}, bin-check / bin-confirm

battery_erp.services.InventoryService

MCP

herramientas anteriores (mcp SDK 2.x MCPServer)

misma

La confirmación mutadora (bin confirmation) requiere BATTERY_ERP_CONFIRM_TOKEN y adicionalmente escriba auditoría JSONL en BATTERY_ERP_AUDIT_LOG.

Empaquetado de directorio / registro: vease PUBLISH.md (glama.json, Dockerfile, server.json). Después de mergear en main, reclame en Glama con @icohang-ops/battery-erp.


Pruebas

PYTHONPATH=src python3 -m pytest tests/ -v
# Domain tests + inventory service / REST / MCP scaffold

Casos de uso

  • Fabricantes de celdas — control de costes BOM entre químicas, optimización de rendimiento

  • Integradores de packs — estimación de costes a nivel de pack, selección de proveedores

  • Compreros — mojada de proveedores, doble fuente, gestión del pipeline de lo PO

  • Finanzas — riesgo de precios de materias primaste, escenarios hipotéticos, valoración de inventario

  • C–suite — dashboard con tendencias de $/kWh, resiliencia de la cadena de suministro y reducción de gastos


Licencia

MIT. Véase LICENSE.


Gobernanza CHP

Este repositorio está equilibrado con el Consensus Hardering Protocol (CHP), la capa de gobernanza de decisiones de Cubiczan para sistemas de IA multiagente.

Capas del protocolo

  • R0 Gate: todas las decisiones deben superar las comprobaciones de Solvable, Scoped, Valid, Worth_

  • Revelación de bases: 1-3 supuestos más débiles, 1-2 condiciones de invalidación, 1 vulnerabilidad clave

  • Capa adversarial: el abogado del diablo manual en Fase 0 y Ronda 3

  • Máquina de estados: EXPLORING → PROVISIONAL → PROVISIONAL_LOCK → LOCKED

  • Aceptación de terceros: CONFIRM / REJECT independiente antes del bloqueo

Configuración de dominio

  • Categoría: Minería / Cadena de Suministro

  • Fundamento límite: 75

  • Guarda de exactitud del CFO: deshabilitada

Artefactos para cumplir

Archivo

Propósito

.chp/STATE_MACHINE.md

Transiciones de estados de decisión

.chp/R0_CONFIG.yaml

Umbrales calibrados de dominio

.chp/ADVERSARIAL_PROMPTS.md

Plantillas estándar de desafíos

.chp/CHP_COMPLIANCE.md

Seguimiento y auditoría de cumplimiento

Versión CHP

cognitive-mesh-orchestrator 0.1.0 | Documentación del protocolo

Demo

# From PyPI — https://pypi.org/project/battery-erp/
python3 -m pip install 'battery-erp[mcp]'   # MCP tools
python3 -m pip install 'battery-erp[api]'   # REST adapter

# From source
git clone https://github.com/icohangar-ops/battery-erp.git
cd battery-erp
python3 -m pip install -e '.[dev]'
PYTHONPATH=src python3 -m pytest tests/ -v

# Domain modules
python3 -c "
from battery_erp.pricing import calculate_cell_cost_summary, get_material_price_table
prices = get_material_price_table()
for chem in ['NMC-811', 'NMC-622', 'NCA', 'LFP', 'LMO']:
    r = calculate_cell_cost_summary(chem, 50.0, prices)
    print(f'{chem}: \${r[\"cost_per_kwh\"]:.1f}/kWh (BOM: \${r[\"bom_cost_usd\"]:.2f})')
"

Móvil — Parts Bin Text Line

Captura móvil desde la página de leads en vivo (parts-bin-text-line--icohangar.replit.app). SMS → text-line → verificación de inventario en Battery ERP → confirmación humana del contenedor.

Demo Video

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A custom implementation for real-time supply chain optimization that enables parallel tool calling to provide intelligent inventory management recommendations and actionable insights in response to live supply chain events.
    6
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides manufacturing enterprise production capability analysis including capacity assessment, equipment details, manufacturing processes, and factory distribution. Enables users to search factories, evaluate suppliers, analyze production capabilities, and make informed procurement and investment decisions.
    1

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/icohangar-ops/battery-erp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server