battery-erp
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.
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 peligrosCellChemistry— NMC-111/622/811, NCA, LFP, LMO con densidad energética y vida útilBatteryCell— 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 desperdicioSupplier— catálogo de proveedores con calificación de calidad, plazo de entrega, certificacionesInventoryRecord— posiciones de almacén con lógica de reposiciónPurchaseOrder— seguimiento del ciclo de vida de las órdenes de compra (PO)Materiallist— seguimiento de los lotes de producciónPriceHistory— 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 desperdiciocalculate_cell_bom()— genera un BOM representivo para cualquier químicacalculate_pack_bom()— BOM a nivel de pack (celdas + carcasa + BMS + refrigeración)update_inventory_status()— recalcula in_stock/low/out_of_stockcheck_reorder_suggestions()— genera sugerencias de pedido de compracalculate_batch_metrics()— agrega el rendimiento de fabricaciónanalyze_price_history()— análisis de tendencia de precios con volatilidadestimate_cell_cost_impact()— modelización de escenarios de coste hipotéticoscalculate_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 materialcreate_purchase_order()— creación de la órden de compra a partir de datos del proveedoranalyze_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íacalculate_cell_cost_summary()— estimación rápida de coste por químicaupdate_prices_from_alpha_vantage()— obtención de precios de materias primeras en vivoupdate_prices_from_fred()— indicadores macroeconómicos
battery_erp.analytics
Informes y paneles:
generate_inventory_report()— panel de salud de inventario completogenerate_supply_chain_report()— informe de proveedores y sistema de pedidosgenerate_manufacturing_report()— métricas de rendimiento de fabricacióngenerate_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 |
| Crear las 11 tablas Delta con datos de ejemplo |
| 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Inicio rápido de Fabric
Ejecute
fabric_setup_lakehouse.pypara crear las 11 tablas Delta.Ejecute
fabric_cost_dashboard.pypara el panel de control de análisis completo.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 confirmationNo 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 + pytestTerminal 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:8088curl -s http://127.0.0.1:8088/health
curl -s http://127.0.0.1:8088/inventory/lookup/lithiumTerminal 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.mcpEse 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 |
|
|
MCP | herramientas anteriores (mcp SDK 2.x | 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 scaffoldCasos 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 |
| Transiciones de estados de decisión |
| Umbrales calibrados de dominio |
| Plantillas estándar de desafíos |
| 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.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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
- FlicenseNot gradedqualityDmaintenanceProvides 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
- FlicenseAqualityAmaintenanceCross-OEM industrial machine intelligence. Normalizes telemetry across 16 manufacturer families (Fanuc, Siemens, Haas, DMG Mori, Mazak), enables plain-English operational automation, and produces tamper-evident work records. 14 MCP tools.14
- FlicenseNot gradedqualityBmaintenanceAn AI-powered EV Digital Twin platform for battery health monitoring, predictive maintenance, fleet analytics, and intelligent decision support using MCP tools for SOH prediction and RUL estimation.3
Related MCP Connectors
Real-time supply chain risk intelligence — 24 tools, proprietary indices, predictive signals
Cross-OEM industrial machine intelligence: identity, normalization, automation, attestation.
Manage products, EU Digital Product Passports, operator parties, and GS1 EPCIS supply-chain events.
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/icohangar-ops/battery-erp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server