Skip to main content
Glama
elon-jang

Product Info Extractor MCP Server

by elon-jang

Product Info Extractor MCP Server

πŸ‡°πŸ‡· ν•œκ΅­μ–΄ | πŸ‡ΊπŸ‡Έ English

이컀머슀 μ›Ήμ‚¬μ΄νŠΈμ—μ„œ μƒν’ˆ 정보(가격, 재고, 이미지, 색상별 μ‚¬μ΄μ¦ˆ λ“±)λ₯Ό μžλ™μœΌλ‘œ μΆ”μΆœν•˜λŠ” MCP μ„œλ²„μž…λ‹ˆλ‹€.

⚠️ μ€‘μš”: DataDome 같은 κ³ κΈ‰ 봇 차단 μ‹œμŠ€ν…œμ€ μžλ™ 접근을 차단할 수 μžˆμŠ΅λ‹ˆλ‹€. 성곡λ₯ μ€ λŒ€μƒ μ‚¬μ΄νŠΈμ™€ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ— 따라 λ‹€λ¦…λ‹ˆλ‹€.

πŸš€ λΉ λ₯Έ μ‹œμž‘ (30초)

Docker둜 μ‹€ν–‰ (ꢌμž₯)

# μ €μž₯μ†Œ 클둠
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"

둜컬 개발 λͺ¨λ“œ

npm install
npx playwright install chromium
npm run start:http

Related MCP server: Stealth Browser MCP Server

πŸ“‹ μ£Όμš” κΈ°λŠ₯

  • ⚑ μ΄ˆκ³ μ†: 8-10초 응닡 (DataDome 우회 둜직 제거둜 6λ°° μ„±λŠ₯ ν–₯상)

  • πŸš€ κ³ μ„±λŠ₯: λΈŒλΌμš°μ € μΈμŠ€ν„΄μŠ€ μž¬μ‚¬μš©μœΌλ‘œ 후속 μš”μ²­ μ¦‰μ‹œ 처리

  • πŸ₯· μŠ€ν…”μŠ€ λͺ¨λ“œ: playwright-extra + puppeteer-extra-plugin-stealth둜 κΈ°λ³Έ 봇 탐지 우회

  • πŸ”Œ MCP ν”„λ‘œν† μ½œ: Claude Desktopκ³Ό λ°”λ‘œ 연동 κ°€λŠ₯

  • πŸ“¦ λ©€ν‹° ν”Œλž«νΌ: AMD64 + ARM64 (Apple Silicon & ν΄λΌμš°λ“œ VM) 지원


🐳 Docker 배포 κ°€μ΄λ“œ

1. Docker μ„€μΉ˜

# 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. μ„œλ²„ μ‹€ν–‰

# 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. μƒνƒœ 확인

# μ»¨ν…Œμ΄λ„ˆ 둜그 확인
docker logs -f product-info-extractor

# Health check
curl http://localhost:8080/health

πŸ§ͺ ν…ŒμŠ€νŠΈ

Node.js ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈ

npm install
node test-mcp-http.js "https://www.ugg.com/women-slippers/cozy-slipper/1117659.html"

Shell 슀크립트 (κ°„λ‹¨ν•œ μ—°κ²° ν…ŒμŠ€νŠΈ)

./test-server.sh http://localhost:8080

πŸ”§ Claude Desktop 연동

claude_desktop_config.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)

# 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 없이)

# 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

이미지 λΉŒλ“œ (개발자용)

docker buildx build --platform linux/amd64,linux/arm64 \
  -t joomanba/product-info-extractor-mcp:latest --push .

πŸ“„ λΌμ΄μ„ μŠ€

MIT License

Available Tools

1 tool
extract_product_infoA

Extract comprehensive product information from e-commerce URLs including images, stock availability, product variants (color-by-size inventory), price, dimensions, and specifications

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesProduct URL to extract information from
compactNoEnable compact mode for token optimization (87% reduction). Defaults to true.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does convey that the tool reads product pages and returns extracted fields, which is useful. However, it does not mention output format, possible failures, limitations (e.g., non-e-commerce pages), or network behavior, leaving notable gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence efficiently states the tool's purpose and data coverage. It is front-loaded with the core action and then enumerates product aspects. Slight improvement could be a structured list, but no unnecessary words are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two parameters with full schema coverage and no output schema, so the description needs to clarify the return content. The list of extracted fields provides a solid picture of what the agent will receive, but it stops short of describing return format or edge cases. Still, it is reasonably complete for the tool's apparent simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description adds no parameter-specific semantics beyond what the schema provides; it only lists output fields, not input parameter details. This matches the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (extract), the resource (product information from e-commerce URLs), and the scope (comprehensive data including images, stock, variants, price, dimensions, specs). No sibling tools exist, so no distinguishing is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is clear: call this tool with e-commerce product page URLs to obtain product data. There are no explicit exclusions or alternatives, but the scope is well defined by the 'e-commerce URLs' phrase, which provides sufficient usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedextract_product_info

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides stealth web browsing using dual browser engines (Chromium and Firefox) with automatic bot-detection bypass, enabling AI agents to browse, interact, and extract content from websites without being blocked.
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides real browser automation with stealth capabilities for screenshots, page fetching, web search, and data extraction using system browsers.
    5 npm
    MIT