ShopGraph
Structured product data from the open web — where platform APIs don't reach. Schema.org + AI extraction. Pay per call via Stripe MPP.
@laundromatic/shopgraph
Structured product data from the open web, where platform APIs don't reach. Schema.org + AI extraction. Pay per call via Stripe MPP.
Website: https://shopgraph.dev | MCP Endpoint: https://shopgraph.dev/mcp
What it does
Agents connect via Model Context Protocol and call enrichment tools to extract structured product data from URLs. Requests are payment-gated via Stripe: unauthenticated calls receive a 402 challenge, authenticated calls with a payment_method_id are processed and billed.
Architecture
Agent → MCP (streamable-http) → enrich_product / enrich_basic
→ Cache hit? Return immediately (free)
→ No payment_method_id? Return 402 + MPP challenge
→ Payment confirmed → schema.org extraction (fast, 0.95 confidence)
→ No structured data? → Gemini LLM fallback (0.7+ confidence)
→ Bot-blocked or JS-rendered? → Playwright browser fallback
→ Return ProductData + PaymentReceipt
Setup
npm install
Required environment variables in .env:
| Variable | Purpose |
|---|---|
STRIPE_TEST_SECRET_KEY | Stripe test mode secret key |
GOOGLE_API_KEY | Gemini API key for LLM fallback |
Note: Check .env for duplicate key definitions — dotenv uses the last occurrence.
Build & Run
npm run build # Compile TypeScript
npm start # Run MCP server (stdio)
npm run start:http # Run HTTP server (for Vercel/remote)
npm run dev # Run with tsx (no build needed)
Test
npm run test:run # Run all tests once
npm test # Run tests in watch mode
Tools
| Tool | Price | Description |
|---|---|---|
enrich_product | $0.02 | Full product data extraction |
enrich_basic | $0.01 | Basic attributes only (no images) |
Cached results are returned free of charge (24-hour TTL).
MCP Configuration
Add to your MCP client config:
{
"mcpServers": {
"shopgraph": {
"command": "node",
"args": ["/path/to/shopgraph/dist/index.js"]
}
}
}
관련 서버
Bright Data
스폰서Discover, extract, and interact with the web - one interface powering automated access across the public internet.
Render-fetch
Drop-in upgrade to Claude's WebFetch that auto-detects JS-rendered pages and fetches them with Playwright headless browser
YouTube Transcript Extractor
Extracts transcripts from public YouTube videos.
MCP URL2SNAP
A lightweight MCP server that captures screenshots of any URL and returns the image URL. Requires an AbstractAPI key.
JCrawl4AI
A Java-based MCP server for interacting with the Crawl4ai web scraping API.
Playwright MCP
Browser automation using Playwright, enabling LLMs to interact with web pages through structured accessibility snapshots.
Fetcher MCP
Fetch and extract web content using a Playwright headless browser, with support for intelligent extraction and flexible output.
Playwright Server
A server providing Playwright tools for browser automation and web scraping.
Playwright
Provides browser automation capabilities using Playwright. Interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
YouTube Transcript
A zero-setup server to extract transcripts from YouTube videos on any platform.
Puppeteer
A server for browser automation using Puppeteer, enabling web scraping, screenshots, and JavaScript execution.