omeletJK/inventory-mcp-server
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) ์๋ฒ๋ก ๊ตฌํ๋ ์ง๋ฅํ ์ฌ๊ณ ๊ด๋ฆฌ ์ต์ ํ ๋๊ตฌ
๐ฏ ๊ฐ์
์ด 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 ๋ฌธ์: http://localhost:8000/docs
- ํฌ์ค์ฒดํฌ: http://localhost:8000/health
- ์์ ํ์ธ: http://localhost:8000/example
๐ ์ฌ์ฉ๋ฒ
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 # ์ด ํ์ผ
๐งฎ ์๊ณ ๋ฆฌ์ฆ ์์ธ
์ต์ ํ ๋ก์ง
- ์์ ์ฌ๊ณ ๊ณ์ฐ: ํ๊ท ์์ ร 3์ผ
- ๋ฏธ๋ ์ฌ๊ณ ์์ธก: ํ์ฌ ์ฌ๊ณ - ๋ฆฌ๋ํ์ ๊ธฐ๊ฐ ์์
- ์ฃผ๋ฌธ ํธ๋ฆฌ๊ฑฐ: ์์ ์ฌ๊ณ < ์์ ์ฌ๊ณ
- ์ฃผ๋ฌธ๋ ๊ณ์ฐ: ์์ ์ฌ๊ณ + ํฅํ ์์ - ํ์ฌ ์ฌ๊ณ
์ ์ฝ ์กฐ๊ฑด
- ์ต๋ ์ฃผ๋ฌธ๋: ํ๊ท ์์์ 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์ผ
- ๊ฒฐ๊ณผ: ํผํฌ ๋๋น ์ ์ ์ ์ฃผ๋ฌธ
๐ค ๊ธฐ์ฌํ๊ธฐ
- Fork ์ด ์ ์ฅ์
- Feature ๋ธ๋์น ์์ฑ (
git checkout -b feature/AmazingFeature
) - ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐ (
git commit -m 'Add some AmazingFeature'
) - ๋ธ๋์น์ Push (
git push origin feature/AmazingFeature
) - Pull Request ์คํ
๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ผ์ ์ฐธ์กฐํ์ธ์.
๐ ๊ด๋ จ ๋งํฌ
๐ ์ง์
์ง๋ฌธ์ด๋ ์ด์๊ฐ ์๋ค๋ฉด:
- GitHub Issues์ ๋ฑ๋ก
- ์์ธํ ์ฌ์ฉ๋ฒ์ ์ฐธ์กฐ
โญ ์ด ํ๋ก์ ํธ๊ฐ ๋์์ด ๋์๋ค๋ฉด ์คํ๋ฅผ ๋๋ฌ์ฃผ์ธ์!