Skip to main content
Glama
maevelynz

zipline-supply-chain

by maevelynz

Supply Chain Decision Intelligence MCP

ローカルで動作し、決定的(deterministic)な MCP 研究プロジェクトであり、高信頼性ハードウェアのサプライチェーンアナリティクスを対象としています。LLM が自然言語でサプライチェーンの質問を尋ねる一方で、定量的な答えはモデルではなく SQL/Python ツールが担う、という仕組みを実証しています。

このプロジェクトが解決することを示す問題: サプライチェーンと製造立ち上げ(ramp)に関する判断(どのサプライヤーを認定するか、補充が到着する前に部品が品切れになるか、最安優先調達とデュアルソーシングのどちらが割増料金(プレミアム)に見合うか)には、サプライヤー・在庫・発注・品質のデータを結合し、一貫性のある監査可能な計算を実行することが必要です。それは LLM の見当推測ではありません。このプロジェクトは、そのパターンを合成データセット上でエンドツーエンドに示します。LLM は、どの統制対象(governed)計算を実行するかを選び、その結果を説明するだけです。

合成データのみ。 このリポジトリには、実際の Zipline のサプライヤー、生産、需要、顧客、運用データは含まれていません。これは、公開されているサプライチェーンの問題パターン(サプライヤーパフォーマンス、量産立ち上げ予測、MRP 枯渇リスク、調達元の集中度、ランデッドコスト、機材容量のスクリーニング、医療物資の補充、複数年にわたるサプライヤー容量)から想を得た方法論のデモです。

この設計の理由

flowchart LR
  Q["Natural-language research question"] --> L["LLM chooses a tool"]
  L --> M["MCP typed interface"]
  subgraph D["Deterministic analytics boundary"]
    M --> A["Governed SQL / Python"]
    A --> C["Checked-in synthetic CSVs"]
    A --> R["Structured result + trust block"]
  end
  R --> L2["LLM interprets the result"]

モデルは、どの管理統制(governed)計算を呼び出すかを選択し、その結果を説明します。モデルが MAPE、OTD、在庫カバー週数、ランデッドコスト、または容量の計算を記憶から再現することはありません。

この図の完全なラベル付き版(確率的 LLM レイヤーと決定的な統制レイヤーを明示的に区別したもの)、完全な MCP ツールマップ(全部で 13 個のツール → それぞれが読み取るデータセット)、および段階を追った意思決定フローの例については、docs/ARCHITECTURE.md を参照してください。エンティティ関係図については docs/DATA_MODEL.md を参照してください。

Related MCP server: Fabric MCP Agent

ツール一覧

ツール

判断できる問い

list_research_questions

この統制されたデータセットで答えられる問いは何か?

supplier_scorecard

OTD と品質で低性能(アンダーパフォーム)しているサプライヤーはどれか?

forecast_accuracy

立ち上げ予測は不正確か、偏っているか、それとも改善しているか?

parts_at_risk

リードタイム内にラインを停止させうる部品はどれか?

dual_source_risk

単一調達元(シングルソース)のエクスポージャーはどこに集中しているか?

compare_landed_costs

記載価格の Reference。その優位性は、関税・運送費・輸送中金利コストの後でも残るか?

dock_capacity

待ち行列の壁(queueing wall)を回避するには何機の航空機が必要か?

stockout_reduction

補充期間の短縮は、合成データに基づく欠品エクスポージャーをどう変えるか?

capacity_ramp

最安優先調達と 60/40 耐性(レジリエンス)の比較とは何で、容量の限界点はどこか?

projected_shortage_risk

オープン PO と期待歩留まりを反映した結果、今後 8 週間以内に在庫がゼロを下回る部品はどれか?

quality_gate_risk

どの APQP/PPAP ゲートが立ち上げを妨げるか?

quality_rush_signal

遅延・緊急供給(late/reused)では欠陥 PPM が悪化するか?

quality_trend

正確な「過去直近7日」の日付範囲で品質は悪化しているか?

さらに、research://catalog という MCP リソースに加え、supply_chain_investigation および supply_chain_question_generator のプロンプトがあります。

ローカルファースト:これまでの MCP セットアップ失敗を回避した正確な方法

このプロジェクトは、これまでのローカル MCP 構築で実績のあるランタイムパターンを意図的に使っています。

  • 起動中データベースファイルを作成しない

  • .venv を同梱しない

  • .mcp.json を同梱しない

  • すべてのデータパスは server.py から __file__ を使って導出しています

  • DuckDB は、チェックイン済みの CSV に対して、新しいインメモリビューを生成します

  • uv run --with ... により、開発・stdio 起動は編集可能インストール(editable-install)のメタデータに依存しません

1. 事前チェック(Preflight)

cd <where-you-cloned-this-repo>
uv sync --extra dev
uv run python scripts/preflight.py

ここで PREFLIGHT PASSED が出力されることが必要です。

2. MCP Inspector で起動する

./scripts/run_mcp_dev.sh

uv が依存関係のインストールを求めた場合は承認します。MCP Inspector で 13 個のツール が表示されます。

推奨する最初の呼び出し:

  1. supplier_scorecardlimit=5 指定)

  2. forecast_accuracy

  3. parts_at_risklimit=10 指定)

  4. bull_source_risk

  5. compare_landed_costs

  6. dock_capacity

  7. stockout_reduction

  8. apacity_ramp

  9. projected_ick hazard が予測、した在庫不足

  10. quality_gate_risk

  11. quality_rush_signal

  12. quality_trend

3. Claude なしでアナリティクスをスモークテストする

uv run python scripts/smoke_test.py

エグゼクティブ向け Web アプリ

同じ governed(統制された)ツール上に構築された、ローカルで静的 な「Production Ramp Intelligence」Web アプリです。立ち上げ準備度、重要部品のリスク、調達元の集中度、容量/認定のディシジョンビューを提供し、各ビューは背後にある MCP ツールの呼び出しまで追跡できます。

uv run python scripts/generate_executive_dataset.py
uv run python scripts/serve_executive_site.py

その後、http://127.0.0.1:8765/ を開きます。docs/EXECUTIVE_APP.md を参照してください。

テストの実行

uv sync --extra dev
uv run pytest -q

これにより、データ整合性チェック、ツール動作の断言(アサーション)、ランタイム契約チェック、および JSON 安全性・パッケージング・プリフライト回帰スイートが実行されます。各テストファイルが実際に何を証明するかは、docs/CODE_WALKTHROUGH.md(「テスト:各ファイルが実際に証明すること」)を参照してください。

4. Inspector が機能してからのみ Claude Code に登録する

./scripts/register_claude.sh
claude

Claude Code 内で /mcp を実行します。zipline-supply-chain が接続され、13 個のツールが表示されます。

その後、以下のようなプロンプトを使うことをお勧めします:

サプライチェーンアナリストとして行動してください。まず list_research_questions に始めてください。量的な根拠を得るには、mcp://zipline-supply-chain のツールだけを使ってください。プロイジェクトのランプアップフェーズに対して、どのサプライヤー/部品のリスクが最も重要かを教えてください。その根拠が何を示しているのか、どこが解釈なのか、何が合成データでは確立できないのかを説明してください。生のCSVを直接調べたり、自分で指標を再度計算したりしないでください。

実践的なリサーチ質問の例

このデータセットは、絡み合うサプライチェーンを二つに分離しています。

製造(Manufacturing): サプライヤーのパフォーマンス、予測の偏り、MRP 欠品、単一ソース(Single-source)濃度、岸地原価(landed cost)、複数年のキャパシティ。

運用ロジスティクス: ピーク時の到着地用機材容量(dock-fleet capacity)と、供給不足のリスク削減。

その分離は、ツールとプロンプトの概念に組み込まれています。

DEMO_QUESTIONS.md」と「PROMPTS.md」 を参照してください。

ドキュメントマップ

完全なファイルツリー: docs/REPOSITORY_GUIDE.md

ドキュメント

説明

docs/ARCHITECTURE.md

システム・MCP アーキテクチャ、ツールマップ、エンティティの関係、具体例としての情報フローを、GitHub でレンダリング可能な Mermaid 図として記載。

docs/CODE_WALKTHROUGH

実装の説明。各ツールの入力・ロジック・出力、SQL/DuckDB のパターン、JSON 安全性、エラーハンドリング、設計上のトレードオフを "server.py" と対照し。

docs/DATA_MODEL.md

各 CSV が何を表すのか、外部キー関係、エンティティリレーショナル図、決定論的な生成とシード、さらに2つ意図された既知の特性について説明。 (1) capacity_ramp は、現在認定されたサプライヤー容量と候補・仮想の第2ソースとを区別する。 (2) 'inventory.csv' の現在の実行率と 'capacity_plan.csv' の将来のランプ目標は、数値的に整合させることを意図しない独立した計画ベースである。

docs/RESEARCH_METHODS.md

各分析ツールの背後にある計算式(スコアカードの重み、総調達コスト方式、MAPE/偏りなど)を説明する。

docs/LIMITATIONS.md

このプロジェクトが意図的に主張しないことを説明する。

docs/RUNTIME_DESIGN_LESSONS

実行時の設計がなぜこのように作られているのか(起動時の DB 構築なし、永続的な接続なしなど)。

[docs/EXECUTIVE_APP](docs/EXECUTIVE_APP.md)

ローカルのエグゼクティブ向け Web アプリのアーキテクチャ、実行方法、各グラフがどの toolbox 呼び出しに対応するか。

このプロジェクトが主張しないこと

これはすでに主張される彼発表の ERP/MPM でも、ルーティングオプショナイザーでも、航空の品質システムでも、因果推計研究でも、実際の財務データでもありません。重要なのは、LLM が支援する意思決定のための、管理統制(governed)された分析の境界です。

整合性/再現性チェック

But this is awkward. Let's refine.

"その2番目のチェック" Do not use "まず" because "The first" vs "The second" in same sentence. Let's use "1番目のチェックは... 2番目のチェックは..." easy.

Need include "composite relationship" -> "複合関連" etc.

Let's create precise Japanese:


合成リレーショナルモデルは、受領および品質のファクトが有効な (part_id, supplier_id) キーを持つこと、資格ゲートが有効なサプライヤーマスターIDを持つこと、すべてのPOが有効な部品とサプライヤーのマッピングを使用すること、在庫が部品ごとに1行だけであることを保証します。現在のデータセットバージョンは、data/MANIFEST.json/DATASET_VERSION を参照してください。

MCP を実行前に実行してください(意図的に scripts/preflight.py でもカバー):

uv run python scripts/audit_data_relationships.py
uv run python scripts/generate_synthetic_facts.py --check

最初のチェックは、外部キー、複合関係、一意性、および重要な参照アクション(このデータセットが再現するように設計された固定値)を検査します。次のチェックは、固定シードとマスターフィクスチャから確率的/拡張されたファクトテーブルを再生成し、チェックインされた出力とバイト比較します。

サーバーには実行時のランダム性はありません。チェックイン済みCSVが与えられれば、ツールの出力は決定論的です。再現可能な合成研究データであり、合成分布がジップラインを統計的に代表しているという主張ではありません。

データセット規模

12週間の demand.csv は、参照アンカーを伴支援する正確な管理済みランプケースです。annual_demand.csv は、より堅固なローリングエラー分析のために基本的に 52 週間の週次観測を追加し、forecast_accuracy(series="annual_52w") で利用できます。したがって、12週間の実例を暗黙に変更することはありません。

合成部品の世界は、6つのカテゴリーファミリーにわたる60個の部品で構成されており、意図的にデモ規模です。つまり、在庫と調達のランキングに十分な観測を提供しつつ、実行後に検証・説明できる十分なサイズです。


Need check "Zipline" should be "Zipline" unchanged. The term "ジップライン" is not allowed (should be kept verbatim). So "Zipline" in Latin.

Need "MCP を実行前に実行してください" repetitive. Better "MCP のコンテキスト" but keep meaning "MCP を実行する前に実行してこのステップする( scripts/preflight.py でも実施)". Let's phrase "MCP の前に流して( scripts/preflight.py でもカバされます):" Actually "MCP" in input may mean "Model Context Protocol" server. We can use "MCP の起動前に実施してください( scripts/preflight.py でもカバーされています):" This is clear.

Need "composite relationships": "複合リレーションシップ" or "組み合わせリレーション". Use "複合リレーション".

Let's check "and important reference anchors": maybe "重要な参照アンカー" (fixed values). Good.

"second regenerates the stochastic/enriched fact tables from fixed seeds and master fixtures and byte-compares them with the checked-in outputs." "fact tables" plural. Good.

"no runtime randomness" means no "ランダム性" at runtime. Better "実行時のランダム性を一切含まない". Bold "実行時ランダム性は含まれません".

Maybe "runtime randomness" as a term: "実行時ランダム性". Use no bold around Japanese? Need same bold markers. In the input the phrase "no runtime randomness" is bold. So output "実行時にランダム性はありません" maybe.

But "no" is bold only on "no runtime" in English. Actually "no runtime randomness" means all three words are bold. In Japanese, "実行時にランダム性はありません" is a bit off. Could use "実行時ランダム性はありません". Good.

Need "Given the checked-in CSVs" maybe "チェックイン済みCSVがあれば".

Need "last part universe" "parts" not "pieces".

Final final

Let's produce final output with proper translation.

Need list details:

  1. Keep "GXP8" as the blank line

  2. "## データセット規模"

  3. Keep em dash character.

  4. "series="annual_52w"" must be in inline code as forecast_accuracy(series="annual_52w"). In the output, preserve exactly.

  5. "forecast_accuracy(series="annual_52w")" translation: "再帰的誤差分析用に longer" -> "より長期間の rolling forecast error analysis". Translate "longer rolling-error analysis" = "積み上げ誤差分析" perhaps "ローリング誤差分析". Use "長期的なローリング誤差分析".

Let's craft the final answer now in a polished, natural Japanese style.


合成リレーショナルモデルが保証するのは、受領・品質ファクトが有効な (part_id, supplier_id) キーを持つこと、資格ゲートが有効なマスターマンサーIDを使うこと、すべてのPOが有効な部品–サプライヤーマッピングを使うこと、在庫が部品ごとに1行だけであることです。現在のデータセットバージョンは data/MANIFEST.json/DATASET_VERSION で確認できます。

MCP の前に送前点検を実行します( scripts/preflight.py でもカバー):

uv run python scripts/audit_data_relationships.py
uv run python scripts/generate_synthetic_facts.py --check

最初のチェックは、外部キー、複合関係、一意性、重要な参照アンカー(このデータセットが再現されることを意図した固定値)を検査します。2つのチェックでは、ストキャスティクス/拡張されたファクトテーブルを固定シードとマスターフィクスチャから再生成し、チェックイン済みの出力とバイト比較します。

サーバーには実行時のランダム性はありません。チェックイン済みCSVがあれば、ツールの出力は決定論的です。再現可能な合成研究データであり、合成分布がZiplineの統計的な代表であるという主張ではありません。

データセット規模

12週間の demand.csv は、参照アンカーの背にある正確に制御されたランプケースです。annual_demand.csv は、より長期間のローリング誤差分析のため52個の確定な週次観測を追加し、forecast_accuracy(series="annual_52w") で利用できます。そのため、12週間の作業例を暗黙に変更しません。

合成部品サンプルは、6つのコモディティファミリーにまたがる60部品で構成されます。意図的にデモンストレーション規模であり、在庫・調達のランキング分析に要する観測を十分含みつつ、ライブで調べて説明できる有力な規模に収まります。


Wait "サーバー自身" should be "サーバー自体". Also "送前" typo. Let's fix.

Also "composite" = "複合".

Need final polishing:

Let's write the final exact text:

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    Not graded
    maintenance
    Enables natural language querying of Microsoft Fabric Data Warehouses with intelligent SQL generation, metadata exploration, and business-friendly result summarization. Features two-layer architecture with MCP-compliant server and agentic AI reasoning for production-ready enterprise data access.
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for supply chain intelligence that enables conversational querying of eight operational KPIs and anomaly detection data through Claude. It allows users to analyze performance metrics like OTIF and inventory turnover while providing LLM-generated root-cause explanations.
    10
    MIT

View all related MCP servers

Related MCP Connectors

  • The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.

  • Real-time supply chain risk intelligence — 24 tools, proprietary indices, predictive signals

  • Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.

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/maevelynz/supply-chain-decision-intelligence-mcp'

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