Product Info Extractor MCP Server
by elon-jang
README.md
# Product Info Extractor MCP Server
> π°π· νκ΅μ΄ | πΊπΈ **[English](README.en.md)**
μ΄μ»€λ¨Έμ€ μΉμ¬μ΄νΈμμ μν μ 보(κ°κ²©, μ¬κ³ , μ΄λ―Έμ§, μμλ³ μ¬μ΄μ¦ λ±)λ₯Ό μλμΌλ‘ μΆμΆνλ MCP μλ²μ
λλ€.
> **β οΈ μ€μ:** DataDome κ°μ κ³ κΈ λ΄ μ°¨λ¨ μμ€ν
μ μλ μ κ·Όμ μ°¨λ¨ν μ μμ΅λλ€. μ±κ³΅λ₯ μ λμ μ¬μ΄νΈμ λ€νΈμν¬ νκ²½μ λ°λΌ λ€λ¦
λλ€.
## π λΉ λ₯Έ μμ (30μ΄)
### Dockerλ‘ μ€ν (κΆμ₯)
```bash
# μ μ₯μ ν΄λ‘
git clone https://github.com/elon-jang/product-info-extractor-mcp.git
cd product-info-extractor-mcp
# μλ² μμ
docker compose up -d
# ν
μ€νΈ
npm install
node test-mcp-http.js "https://www.ugg.com/women-slippers/cozy-slipper/1117659.html"
```
### λ‘컬 κ°λ° λͺ¨λ
```bash
npm install
npx playwright install chromium
npm run start:http
```
---
## π μ£Όμ κΈ°λ₯
- **β‘ μ΄κ³ μ:** 8-10μ΄ μλ΅ (DataDome μ°ν λ‘μ§ μ κ±°λ‘ 6λ°° μ±λ₯ ν₯μ)
- **π κ³ μ±λ₯:** λΈλΌμ°μ μΈμ€ν΄μ€ μ¬μ¬μ©μΌλ‘ νμ μμ² μ¦μ μ²λ¦¬
- **π₯· μ€ν
μ€ λͺ¨λ:** `playwright-extra` + `puppeteer-extra-plugin-stealth`λ‘ κΈ°λ³Έ λ΄ νμ§ μ°ν
- **π MCP νλ‘ν μ½:** Claude Desktopκ³Ό λ°λ‘ μ°λ κ°λ₯
- **π¦ λ©ν° νλ«νΌ:** AMD64 + ARM64 (Apple Silicon & ν΄λΌμ°λ VM) μ§μ
---
## π³ Docker λ°°ν¬ κ°μ΄λ
### 1. Docker μ€μΉ
```bash
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y docker.io docker-compose-plugin
# RHEL/CentOS/Rocky Linux
sudo dnf install -y yum-utils
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl start docker && sudo systemctl enable docker
```
### 2. μλ² μ€ν
```bash
# Docker Composeλ‘ μ€ν (κΆμ₯)
docker compose up -d
# λλ docker runμΌλ‘ μ€ν
docker run -d -p 8080:3000 \
-e PORT=3000 -e HOST=0.0.0.0 \
--name product-info-extractor \
joomanba/product-info-extractor-mcp:latest
```
### 3. μν νμΈ
```bash
# 컨ν
μ΄λ λ‘κ·Έ νμΈ
docker logs -f product-info-extractor
# Health check
curl http://localhost:8080/health
```
---
## π§ͺ ν
μ€νΈ
### Node.js ν
μ€νΈ ν΄λΌμ΄μΈνΈ
```bash
npm install
node test-mcp-http.js "https://www.ugg.com/women-slippers/cozy-slipper/1117659.html"
```
### Shell μ€ν¬λ¦½νΈ (κ°λ¨ν μ°κ²° ν
μ€νΈ)
```bash
./test-server.sh http://localhost:8080
```
---
## π§ Claude Desktop μ°λ
`claude_desktop_config.json`μ μΆκ°:
```json
{
"mcpServers": {
"product-info-extractor": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8080/sse"]
}
}
}
```
---
## β οΈ μ ν μ¬ν
### λ΄ μ°¨λ¨ μμ€ν
λ€μ μμ€ν
λ€μ μλ μ κ·Όμ μ°¨λ¨ν μ μμ΅λλ€:
- **DataDome** (UGG.com μ¬μ©): μ±κ³΅λ₯ μ΄ νκ²½μ λ°λΌ λ³λ
- **Cloudflare Advanced**: μΆκ° μ°ν κΈ°λ² νμ
- **PerimeterX**: μ°ν λ§€μ° μ΄λ €μ
### κΆμ₯ μ¬ν
β
νλ‘λμ
μ μΆ©λΆν ν
μ€νΈ
β
κ°λ₯νλ©΄ 곡μ API μ¬μ©
β
μ¬μλ λ‘μ§ λ° μλ¬ μ²λ¦¬ ꡬν
β
μ±κ³΅λ₯ λͺ¨λν°λ§
---
## π κ³ κΈ κ°μ΄λ
### Podman νκ²½ (RHEL/CentOS)
```bash
# Podman μ€μΉ
sudo dnf install -y podman
# μ€ν
podman run -d -p 8080:3000 \
-e PORT=3000 -e HOST=0.0.0.0 \
--name product-info-extractor \
docker.io/joomanba/product-info-extractor-mcp:latest
```
### μλ μ€μΉ (Docker μμ΄)
```bash
# Node.js v18+ μ€μΉ
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo dnf install -y nodejs
# Playwright μμ‘΄μ±
sudo npx playwright install-deps
# νλ‘μ νΈ μ€μ
npm install
npx playwright install chromium
# μλ² μμ
npm run start:http
```
### μ΄λ―Έμ§ λΉλ (κ°λ°μμ©)
```bash
docker buildx build --platform linux/amd64,linux/arm64 \
-t joomanba/product-info-extractor-mcp:latest --push .
```
---
## π λΌμ΄μ μ€
MIT License
TDQS
A4.1/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of ambiguity or overlap. The tool's purpose is clearly defined and distinct.
Naming Consistency5/5
The single tool name 'extract_product_info' follows a clear verb_noun convention. Though there is only one tool, the naming is consistent with standard practices.
Tool Count3/5
The server has only one tool, which falls into the borderline range. While the tool is broad and covers the stated purpose well, the count feels thin for a typical MCP server.
Completeness5/5
The tool description covers all major aspects of product information extraction: images, stock, variants, price, dimensions, and specifications. No obvious gaps exist for the stated domain.
Maintenance
ActivityInactive
ResponsivenessNo issues