battery-erp について
Battery ERPは、電池材料、セル、パック、サプライチェーン在庫を管理するドメインライブラリです。MCPインターフェースは在庫の検索と状態確認、棚番チェック、監査記録付きの確認を中心に、BOM、価格、分析機能も備えています。
主な機能
- 01電池在庫の検索と状態確認
- 02棚番チェックの依頼と確認
- 03BOMと電池パックのコスト計算
- 04サプライヤー評価と発注管理
- 05商品価格とコストシナリオ分析
- 06在庫・製造レポート
活用シーン
- 01SKUの在庫と再発注状況の確認
- 02監査記録を伴う倉庫棚番確認の記録
- 03化学組成やパックのコスト比較
- 04サプライヤーと発注の進捗確認
MCP 対応
MCPサーバーは在庫検索、状態確認、レコード取得、一覧表示、棚番チェックと確認のツールを公開し、RESTアダプターとInventoryServiceを共有します。在庫を変更する棚番確認には確認トークンが必要で、JSONL監査ログへの記録も可能です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx battery-erpBATTERY_ERP_CONFIRM_TOKENシークレットShared secret required for record_bin_confirmation (mutating).BATTERY_ERP_AUDIT_LOGOptional path for append-only JSONL audit events.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Battery ERP — リアルタイムの商品価格と Fabric Lakehouse 分析を備えた、材料、セル、パック、サプライチェーン管理。
リチウム、コバルト、ニッケル、マンガン、グラファイトから、セル化学組成(NMC-811、NCA、LFP、LMO)、さらに BOM コスト計算、サプライヤー評価、在庫管理、コストの仮定シナリオに対応したバッテリーパックまで、バッテリーのバリューチェーン全体をカバーします。
mcp-name: io.github.icohangar-ops/battery-erp
これは何ですか
Battery ERP は、原材料の調達からセル製造、パック組み立てまで、バッテリーのバリューチェーン全体を管理します。すべてのコストは、特定の材料、サプライヤー、価格に紐づけて追跡できます。
| レイヤー | 役割 |
|---|---|
| データモデル | RawMaterial、CellChemistry、BatteryCell、BatteryPack、BOMItem、Supplier、InventoryRecord、PurchaseOrder、ManufacturingBatch |
| ビジネスルール | BOM コストの集計、在庫状況の管理、サプライヤー評価(複合 A〜D 評価)、製造歩留まりの追跡、価格トレンド分析、コストの仮定シナリオ |
| 価格エンジン | 材料のデフォルト価格テーブル(20 種類以上の材料)、AlphaVantage との連携による商品価格のリアルタイム取得、FRED のマクロ経済指標の反映 |
| 分析 | 在庫健全性レポート、サプライチェーンレポート、製造歩留まりレポート、化学組成別のコスト比較ダッシュボード |
| Fabric Lakehouse | 永続ストレージと SQL 分析に対応する 11 個の Delta テーブル |
クイックスタート
# 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})')
"
アーキテクチャ
┌──────────────────────────────────────┐
│ 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 │
└─────────────────┘ └──────────────────┘ └──────────────────┘
コアモジュール
battery_erp.core.models
すべてのドメインデータクラス:
RawMaterial— 価格、HS コード、危険性情報を含む材料カタログCellChemistry— エネルギー密度とサイクル寿命を含む NMC-111/622/811、NCA、LFP、LMOBatteryCell— セル仕様(容量、電圧、形状、重量)BatteryPack— パックの組み立て(セル + BMS + 熱管理)BOMItem— 廃棄率を含む部品表の明細項目Supplier— 品質評価、リードタイム、認証を含むサプライヤーカタログInventoryRecord— 発注点管理ロジックを備えた倉庫在庫PurchaseOrder— 発注書のライフサイクル追跡ManufacturingBatch— 生産バッチの歩留まり追跡PriceHistory— 商品価格の時系列データ
battery_erp.core.rules
決定論的なビジネスルール:
rollup_bom_cost()— 材料別の内訳と廃棄コストを含む BOM コストの合計calculate_cell_bom()— 任意の化学組成に対応する代表的な BOM を生成calculate_pack_bom()— パックレベルの BOM(セル + 筐体 + BMS + 冷却)update_inventory_status()— in_stock/low/out_of_stock を再計算check_reorder_suggestions()— 発注提案を生成calculate_batch_metrics()— 製造歩留まりを集計analyze_price_history()— 変動率を含む価格トレンド分析estimate_cell_cost_impact()— コストの仮定シナリオをモデル化calculate_pack_metrics()— パックのエネルギー密度と効率
battery_erp.supply_chain
サプライチェーン管理:
score_supplier()— 複合スコア(品質 35%、納期遵守率 35%、リードタイム 20%、認証 10%)rank_suppliers()— スコア順に並べ替え、材料で絞り込みcreate_purchase_order()— サプライヤーデータから発注書を作成analyze_po_pipeline()— 発注書パイプラインの分析(期限超過の検出、リードタイムの追跡)suggest_dual_sourcing()— デュアルソーシング戦略を提案
battery_erp.pricing
商品価格:
get_material_price_table()— 20 種類以上のバッテリー材料のデフォルト価格calculate_cell_cost_summary()— 化学組成ごとの簡易コスト見積もりupdate_prices_from_alpha_vantage()— 商品価格をリアルタイムで取得update_prices_from_fred()— マクロ経済指標を取得
battery_erp.analytics
レポート:
generate_inventory_report()— 在庫の健全性を網羅したダッシュボードgenerate_supply_chain_report()— サプライヤーと発注書の進捗レポートgenerate_manufacturing_report()— 歩留まり指標generate_pricing_report()— 化学組成ごとのコスト比較と価格動向
化学組成ごとのコスト比較(デフォルト価格、50Ah セル)
| 化学組成 | BOM コスト | $/kWh | 正極の割合 | 主な特長 |
|---|---|---|---|---|
| LFP | 最低 | ~$50-55 | ~35% | Co/Ni 不使用、非常に安全、4000 サイクル以上 |
| LMO | 低 | ~$55-60 | ~40% | 低コスト、電動工具向け |
| NMC-111 | 中 | ~$70-80 | ~50% | バランス型、旧世代 |
| NMC-622 | 中 | ~$75-85 | ~48% | エネルギーとコストのバランスが良好 |
| NMC-811 | 高め | ~$80-90 | ~52% | 高エネルギー、EV で主流 |
| NCA | 最高 | ~$85-95 | ~55% | Tesla の主力、270 Wh/kg |
Microsoft Fabric 統合
Fabric ノートブック
| ノートブック | 用途 |
|---|---|
fabric_setup_lakehouse.py | シードデータを含む 11 個すべての Delta テーブルを作成 |
fabric_cost_dashboard.py | コスト分析ダッシュボード全体(化学組成の比較、パックのコスト計算、在庫、サプライヤー、価格動向、シナリオ) |
Delta テーブルのスキーマ
| テーブル | 主な列 |
|---|---|
raw_materials | material_id, name, category, unit_price_usd, price_source, hs_code |
cell_chemistries | 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 |
battery_packs | pack_id, sku, cell_sku, total_cells, nominal_capacity_kwh, pack_weight_kg |
bill_of_materials | 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 |
inventory | record_id, sku, material_name, quantity_on_hand, quantity_reserved, reorder_point |
purchase_orders | po_id, po_number, supplier_name, quantity, total_usd, status, expected_delivery |
price_history | material_name, price_usd, as_of, source |
manufacturing_batches | batch_id, product_sku, chemistry, quantity_produced, quantity_pass, yield_pct |
cost_scenarios | scenario_id, scenario_name, material_name, current_price_usd, scenario_price_usd, pct_change |
Fabric クイックスタート
fabric_setup_lakehouse.pyを実行して、11 個すべての Delta テーブルを作成しますfabric_cost_dashboard.pyを実行して、分析ダッシュボード全体を表示します- ダッシュボードには、化学組成ごとのコスト比較、パック単位のコスト計算、在庫の健全性、サプライヤースコアカード、価格動向、製造歩留まり、コストシナリオが含まれます
在庫アダプター(REST + MCP)
Battery ERP はホスト型 ERP ではなく、ドメインライブラリです。SMS/テキスト回線および
エージェントのワークフローでは、共有の InventoryService を薄い REST API と
MCP サーバーの両方で利用します。詳細は docs/INTEGRATION.md をご覧ください。
SMS / ClickSend Cursor / Claude (stdio MCP)
│ │
▼ ▼
REST API (port 8088) battery_erp.mcp
└──────────┬──────────────┘
▼
InventoryService
▼
InMemoryInventoryStore (demo)
▼
Human bin confirmation
ブラウザーから MCP を呼び出さないでください。REST と MCP は別々のターミナルで実行してください。
インストール(macOS / zsh)
python3 を使用します。zsh がワイルドカード展開しないよう、pip の extras は引用符で囲んでください。
cd ~/Desktop/icohangar-repos/battery-erp
python3 -m pip install -e '.[dev]' # api + mcp + pytest
ターミナル A — REST(テキスト回線バックエンド)
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
ターミナル B — MCP(エージェント/Cursor 専用)
ターミナル A は実行したままにします。新しいターミナルで次を実行します。
cd ~/Desktop/icohangar-repos/battery-erp
export BATTERY_ERP_CONFIRM_TOKEN=dev-secret
PYTHONPATH=src python3 -m battery_erp.mcp
このプロセスは stdio 上で何も出力しません。MCP ホストでは正常な動作です。これを API のターミナルに貼り付けないでください。
Cursor MCP 設定
~/.cursor/mcp.json に追加します(絶対パスを使用し、python ではなく python3 を使用してください)。
{
"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"
}
}
}
}
その後、Cursor で MCP サーバーを再読み込みします。公開されるツール:lookup_inventory、
get_inventory_status、get_inventory_record、list_inventory、
create_bin_check_request、record_bin_confirmation。
| サーフェス | エントリー | 共有レイヤー |
|---|---|---|
| REST | GET /inventory/lookup/{part}、ビン確認/ビン確定 | battery_erp.services.InventoryService |
| MCP | 上記のツール(mcp SDK 2.x MCPServer) | 同じ |
ビン確定の変更操作には BATTERY_ERP_CONFIRM_TOKEN が必要です。任意で、
JSONL 監査ログを BATTERY_ERP_AUDIT_LOG に書き込みます。
ディレクトリ/レジストリへのパッケージ化については、PUBLISH.md(glama.json、
Dockerfile、server.json)を参照してください。
| ディレクトリ | リンク |
|---|---|
| PyPI | https://pypi.org/project/battery-erp/ |
| MCP Registry | io.github.icohangar-ops/battery-erp |
| Glama | https://glama.ai/mcp/servers/@icohangar-ops/battery-erp |
テスト
PYTHONPATH=src python3 -m pytest tests/ -v
# Domain tests + inventory service / REST / MCP scaffold
ユースケース
- セルメーカー — 化学組成をまたいだ BOM コスト追跡、歩留まりの最適化
- パックインテグレーター — パックレベルのコスト見積もり、サプライヤーの選定
- 調達 — サプライヤーのスコアリング、複数調達、発注パイプラインの管理
- 財務 — 商品価格リスク、what-if シナリオ、在庫評価
- 経営幹部 — $/kWh の推移、サプライチェーンのレジリエンス、コスト削減の機会を示すダッシュボード
ライセンス
MIT。LICENSE を参照してください。
CHP ガバナンス
このリポジトリは、マルチエージェント AI システム向けの Cubiczan の意思決定ガバナンスレイヤーであるコンセンサス強化プロトコル(CHP)によって強化されています。
プロトコルレイヤー
- R0 ゲート:すべての意思決定は、Solvable、Scoped、Valid、Worth_it のチェックに合格する必要があります
- 基盤の開示:最も弱い前提を1~3件、無効化条件を1~2件、主要な脆弱性を1件
- 敵対的レイヤー:Phase 0 と Round 3 でデビルズアドボケートを必須とします
- 状態マシン:EXPLORING → PROVISIONAL → PROVISIONAL_LOCK → LOCKED
- 第三者による検証:ロック前に独立した CONFIRM/REJECT を実施します
ドメイン設定
- カテゴリ:鉱業/サプライチェーン
- 基盤しきい値:75
- CFO 精度ガード:無効
コンプライアンス関連ファイル
| ファイル | 目的 |
|---|---|
.chp/STATE_MACHINE.md | 意思決定の状態遷移 |
.chp/R0_CONFIG.yaml | ドメインに合わせて調整されたしきい値 |
.chp/ADVERSARIAL_PROMPTS.md | 標準化された異議申し立て用テンプレート |
.chp/CHP_COMPLIANCE.md | コンプライアンスの追跡と監査証跡 |
CHP バージョン
cognitive-mesh-orchestrator 0.1.0 | プロトコルドキュメント
デモ
ハンドヘルド — Parts Bin Text Line
稼働中のリードページからのモバイルキャプチャ (parts-bin-text-line--icohangar.replit.app)。 SMS → テキストライン → Battery ERP の在庫確認 → 人によるビン確定。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。