zipline-supply-chain
Supply Chain Decision Intelligence MCP
Локальный, детерминированный исследовательский проекта MCP для аналитики цепочек поставок в областях с высокими требованиями к надёжности. Он демонстрирует, как LLM может задавать вопросы по цепочке поставок на естественном языке, в то время как права количественного ответа принадлежит SQL/Python-инструментам, а не модели.
Демонстрируемая здесь проблема: решения по цепочке поставок и наращиванию производства (какого поставщика допустить к продукции, кончится ли деталь раньше, чем придёт пополнение; оправдана ли более дорогая стратегия «сначала самый дешёвый» или двухуровневое снабжение) требуют объединения данных о поставщиках, запасах, закупочных заказах и качестве и выполнения это непротиворечивых, проверяемых расчётов — а не «лучшего предположения» LLM. Данный проект показывает эту схему полностью на синтетическом наборе данных: LLM лишь выбирает, какой управляемый расчёт выполнить, и комментирует результат.
Только синтетические данные. Этот репозиторий не содержит реальных данных Zipline о поставщиках, производстве, спросе, клиентах или об операционных показателях. Это демонстрация методологии, вдохновлённая типовыми задачами цепочки поставок: результативность поставщика, прогнозирование рампы, дефицит MRP, концентрация источников снабжения, стоимость доставки (landed cost), проверка вместимости парка, медицинское возобновление запасов и многолетняя мощность поставщиков.
Почему такая архитектура
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"]Модель выбирает, какой управляемый расчёт вызвать, и объясняет результат. Модель не воссоздаёт по памяти расчёты MAPE, OTD, «недель покрытия», landed cost или мощностей.
См. docs/ARCHITECTURE.md — полностью размеченную версию этой диаграммы (с явным разделением вероятностного LLM-слоя и детерминированного управляющего слоя), полную карту инструментов MCP (все 13 инструментов -> какие данные читает каждый) и разобранный пример принятия решения. См. docs/DATA_MODEL.md — диаграмму связей сущностей.
Related MCP server: Fabric MCP Agent
Управляемые инструменты
Инструмент | Вопрос, который решает инструмент |
| Что может ответить этот управляемый набор данных? |
| Какие поставщики отстают по OTD и качеству? |
| Неточный ли прогноз раскатки пересмещённый, улучшается ли он? |
| Какие детали могут остановить линию в пределах срока выполнения заказа? |
| Где сосредоточен риск единственного источника снабжения? |
| Угоняет ли цена по прайсу через таможенные пошлины, фрахт и затраты на хранение в пути? |
| Сколько воздушных судов необходимо, чтобы уйти от «стены» очереди? |
| Как сокращение срока пополнения меняет синтетический риск дефицита? |
| Какова цена стратегии «сначала самый дешёвый» против распределения 60/40 и где стена мощности? |
| Какие детали перейдут в ноль в течение восьми недель с учётом открытых PO и ожидаемых потерь? |
| Какие шлюхи APQP/PPAP угрожают наращиванию производства? |
| Свидетельствуют ли поздние / срочные поставки о худшем качестве по PPM? |
| Ухудшается ли качество в одном настоящем скользящем семидневном окне? |
Также есть MCP-ресурс research://catalog и промпты supply_chain_investigation и supply_chain_question_generator.
Локально прежде всего: единственный путь, избавивший от прежних сбоев настройки MCP
Этот проект намеренно использует интерпретацию времени выполнения, которая хорошо показала себя в ранних локальных сборках MCP:
Файл базы данных не создаётся при старте
.venvне поставляется.mcp.jsonне поставляетсякаждый путь к данным определяется из
server.pyчерез__file__DuckDB создаёт новые представления в памяти по включённым в репозиторий CSV-файлам
вызов
uv run --with ...позволяет запустить dev/stdio без зависимости от метаданных editable-установки
1. Предловые проверки
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 инструментами.
Рекомендуемые первые вызовы:
supplier_scorecardсlimit=5forecast_accuracyparts_at_riskсlimit=10dual_source_riskcompare_landed_costsdock_capacitystockout_reductioncapacity_rampprojected_shortage_riskсhorizon_weeks=8quality_gate_riskquality_rush_signalquality_trend
3. Дымовая проверка аналитики без Claude
uv run python scripts/smoke_test.pyИсполнительское веб-приложение
Локальное статичное веб-приложение «Production Ramp Intelligence», построенное на тех же управляемых инструментах, — готовность к наращиванию производства, риски критичных деталей, концентрация источников и панель решений о мощностях и квалификации, при этом каждый экран сопоставим с соответствующим вызовом 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-безопасности / упаковки / preflight — см. docs/CODE_WALKTHROUGH.md («Tests: what each file actually proves»), чтобы понять, что именно проверяет каждый тестовый файл.
4. Регистрация в Claude Code — только после того, как работает Inspector
./scripts/register_claude.sh
claudeВнутри Claude Code выполните /mcp. Вы должны увидеть подключённый zipline-supply-chain с 13 инструментами.
Затем используйте, например, такой промпт:
Действуйте как аналитик цепочки поставок. Начните с
list_research_questions. Используйте для количественных аргументов только MCP-инструментыzipline-supply-chain. Объясните, какие риски по поставщику/части критичны для выхода производства на мощность, что об этом говорят данные, что является вашей версией, а чего синтетические данные установить не могут. Не открывайте исходные CSV-файлы и не пересчитывайте метрики самостоятельно.
Примеры исследовательских вопросов
В этом наборе данных разделены две взаимосвязанные цепочки поставок:
Производственная: работа поставщиков, систематическая ошибка прогноза, нехватка MRP, концентрация моногодистрибьютора, затраты на полную стоимость (landed cost) и многолетняя мощность поставщиков.
Операционная логистика: вместимость флота на доке в час скопления и сокращение дефицита медицинских запасов.
Это разделение встроено в инструменты и в предъявленную систему промптов.
См. DEMO_QUESTIONS.md и PROMPTS.md.
Карта документации
Полное дерево файлов: docs/REPOSITORY_GUIDE.md.
Документ | О чём документ |
Архитектура MCP и решений, карта инструментария, сущность-связи и наглядный пошаговый пример — всё как диаграммы Mermaid, отображаемые на GitHub. | |
Проход по реализации: входы/логика/выходы каждого инструмента, паттерны SQL/DuckDB, безопасность JSON, обработка ошибок и архитектурные компромиссы, перекрёстные ссылки на | |
Что объясняет каждый CSV, связи внешних ключей, диаграммы сущностей и связей, детерминированная генерация / сидки, а также два намеренных задокументированных поведения: (1) | |
Формулы и определения за каждым инструментом (веса скорингов, формула landed cost, MAPE/bias и т.д.). | |
Что этот проект сознательно не заявляет. | |
Упорядоченные шаги локальной настройки и устранение неполадок. | |
Why архитектура исполнения такая, какая есть (без создания БД при запуске, без постоянного подключения и т.д.). | |
Локальное веб-приложение для собственников процесса: архитектура, порядок запуска, и какой именно управляемый инструмент обеспечивает каждый график. |
Что данный проект не заявляет
Это не боевой ERP/MRP, не оптимизатор маршрутов, не система сертификации авиационной техники, не каузальное исследование эффектов и не реальные данные компании. Смысл — обуздание годания аналитических границ для поддержки решений с участием LLM.
Проверки целостности / воспрообразимости
Синтетическая реляционная модель гарантирует: факты поступлений и качества несут корректные ключи (part_id, supplier_id), этапы квалификации используют настоящие идентификаторы из мастер-данных поставщиков, каждый PO-заказ применяет корректную связку «деталь-поставщик», а в inventory ровно одна строка на каждую деталь. Текущую версию датасета см.: 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-файлах выводы инструментов детерминированы. Это воспроизводимые синтетические исследовательские данные, а не утверждение о том, что синтетические распределения статистически репрезентативны для Zipline.
Масштаб датасета
12-недельный demand.csv — это точный управляемый сценарий наращивания, лежащий в основе референсных якорей; annual_demand.csv добавляет 52 детерминированных недельных наблюдения для более длительного анализа скользящей ошибки и доступен через forecast_accuracy(series="annual_52w"), поэтому он не изменяет незаметно 12-недельный рабочий пример.
Синтетическая вселенная деталей охватывает 60 компонентов в 14 товарных группах — намеренно демонстрационного масштаба: достаточно наблюдений для значимых рейтингов по запасам и источникам поставок, но при этом достаточно мала, чтобы можно было разобрать и объяснить её вживую.
This server cannot be installed
Maintenance
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
- 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 gradedqualityNot gradedmaintenanceEnables 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.
- AlicenseNot gradedqualityCmaintenanceAn 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.10MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search, explore data lineage, understand business context, and generate SQL queries across an organization's data ecosystem.Apache 2.0
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.
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/maevelynz/supply-chain-decision-intelligence-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server