inventory-mcp-server

omeletJK/inventory-mcp-server

3.1

If you are the rightful owner of inventory-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This MCP server is an intelligent inventory management optimization tool that uses forecasted demand data to provide optimal daily order plans.

🏭 재고 관리 최적화 MCP 서버

Model Context Protocol (MCP) 서버로 구현된 지능형 재고 관리 최적화 도구

License: MIT Python 3.8+ FastAPI

🎯 개요

이 MCP 서버는 예측된 수요 데이터를 기반으로 재고 관리를 최적화합니다. 현재 재고 수준과 예측된 일별 수요를 입력받아 최적의 일별 주문 계획을 제공합니다.

🌟 주요 특징

  • 안전 재고 기반 최적화: 품절 방지를 위한 지능형 계산
  • 리드타임 고려: 주문-도착 지연시간 반영
  • 수요 예측 기반: 미래 수요를 고려한 선제적 주문
  • 제약 조건 적용: 현실적인 주문량 제한
  • Claude Desktop 연동: 자연어로 쉬운 조작

🚀 빠른 시작

1. 설치

# Python 가상환경 생성 (권장)
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 의존성 설치
pip install -r requirements.txt

2. 서버 실행

# 개발 모드로 실행
python api.py

# 또는 uvicorn으로 직접 실행
uvicorn api:app --host 0.0.0.0 --port 8000 --reload

3. 브라우저에서 확인

📊 사용법

API 호출 예시

curl -X POST "http://localhost:8000/optimize" \
     -H "Content-Type: application/json" \
     -d '{
       "inventory_level": 100,
       "forecasted_demand": [12, 10, 15, 18, 9, 11, 13, 14, 10, 12],
       "lead_time": 2
     }'

응답 예시

{
  "order_plan": [0, 10, 18, 0, 0, 5, 8, 0, 0, 7],
  "total_orders": 48,
  "max_daily_order": 18,
  "avg_daily_order": 4.8
}

🤖 Claude Desktop에서 사용하기

MCP 설정

Claude Desktop의 설정 파일에 다음을 추가:

{
  "mcpServers": {
    "inventory-optimization": {
      "command": "python",
      "args": ["/path/to/inventory-mcp-server/api.py"],
      "env": {}
    }
  }
}

자연어 프롬프트 예시

현재 재고가 100개이고, 향후 10일간 수요가 [12, 10, 15, 18, 9, 11, 13, 14, 10, 12]일 때 
최적의 주문 계획을 세워주세요. 주문 후 도착까지는 2일이 걸립니다.

🐳 Docker로 실행

# 이미지 빌드
docker build -t inventory-optimizer .

# 컨테이너 실행
docker run -p 8000:8000 inventory-optimizer

📁 프로젝트 구조

inventory-mcp-server/
├── main.py                 # 핵심 최적화 알고리즘
├── api.py                  # FastAPI 웹서버
├── mcp_config.json        # MCP 서버 설정
├── task_description.md    # 상세 사용법 가이드
├── sample_inputs/         # 예제 입력 파일들
│   ├── input1.json       # 기본 시나리오
│   ├── input2.json       # 높은 변동성
│   └── input3.json       # 계절성 패턴
├── requirements.txt       # Python 의존성
├── Dockerfile            # Docker 설정
├── start.sh              # 실행 스크립트
└── README.md            # 이 파일

🧮 알고리즘 상세

최적화 로직

  1. 안전 재고 계산: 평균 수요 × 3일
  2. 미래 재고 예측: 현재 재고 - 리드타임 기간 수요
  3. 주문 트리거: 예상 재고 < 안전 재고
  4. 주문량 계산: 안전재고 + 향후 수요 - 현재 재고

제약 조건

  • 최대 주문량: 평균 수요의 7일치
  • 최소 주문량: 0 (음수 방지)
  • 예측 기간: 최대 365일

🔧 고급 설정

파라미터 조정

알고리즘의 안전 재고 배수나 최대 주문량 제한을 조정하려면 main.py의 다음 부분을 수정:

# 안전 재고 수준 (평균 수요의 3일치)
safety_stock = math.ceil(avg_demand * 3)  # 3을 다른 값으로 변경

# 최대 주문량 제한 (평균 수요의 7일치)
max_order = math.ceil(avg_demand * 7)     # 7을 다른 값으로 변경

📈 예제 시나리오

시나리오 1: 안정적 수요

  • 현재 재고: 100개
  • 일별 수요: 10-18개 (안정적)
  • 리드타임: 2일
  • 결과: 효율적인 주문 계획

시나리오 2: 변동성 높은 수요

  • 현재 재고: 50개
  • 일별 수요: 5-45개 (높은 변동)
  • 리드타임: 3일
  • 결과: 안전 재고 강화된 계획

시나리오 3: 계절성 패턴

  • 현재 재고: 200개
  • 수요 패턴: 점진적 증가 후 감소
  • 리드타임: 1일
  • 결과: 피크 대비 선제적 주문

🤝 기여하기

  1. Fork 이 저장소
  2. Feature 브랜치 생성 (git checkout -b feature/AmazingFeature)
  3. 변경사항 커밋 (git commit -m 'Add some AmazingFeature')
  4. 브랜치에 Push (git push origin feature/AmazingFeature)
  5. Pull Request 오픈

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 파일을 참조하세요.

🔗 관련 링크

📞 지원

질문이나 이슈가 있다면:

  • GitHub Issues에 등록
  • 자세한 사용법은 참조

이 프로젝트가 도움이 되었다면 스타를 눌러주세요!