(free, no key; works in Claude Desktop, Cursor, Cline, VS Code and any client that supports remote Streamable HTTP):
Overview
(free, no key; works in Claude Desktop, Cursor, Cline, VS Code and any client that supports remote Streamable HTTP): "What's the price and stock status of https://www.allbirds.com/products/mens-tree-runners?" Your agent calls: (real output from the free demo endpoint, trimmed): - Each result has a price_source field (json-ld, microdata, meta, or null), so your agent can tell a structured price apart from a guess. If a page renders its price with JavaScript, you get null rather than a wrong number. - Already scraped the page, or the site blocks bots? Pass the html (up to 2 MB) and skip the fetch. - variants, sellers and sale prices, up to 50 per page. - of the page with include=markdown, or the raw JSON-LD blocks with include=jsonld. - , so an agent can try it with one line of config. It doesn't get past anti-bot pages (Amazon, Best Buy, REI) and doesn't run JavaScript. For those, fetch the HTML yourself and pass it in. Not building an agent? : no key or sign-up, 10 pages a day.
README
Product Page Extractor: remote MCP server
For e-commerce and pricing teams: turn any product page URL (or HTML you already have) into clean JSON with price, stock, brand and identifiers.
1. Connect (free, no key; works in Claude Desktop, Cursor, Cline, VS Code and any client that supports remote Streamable HTTP):
{
"mcpServers": {
"product-extractor": {
"url": "https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp"
}
}
}
2. Ask: “What’s the price and stock status of https://www.allbirds.com/products/mens-tree-runners?” Your agent calls:
{"name":"extract_product","arguments":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}
3. Get (real output from the free demo endpoint, trimmed):
{"name":"Men's Tree Runner","brand":"Allbirds","price":100,"currency":"USD","in_stock":true,"price_source":"json-ld"}
What makes it different
- Shows where the price came from. Each result has a
price_sourcefield (json-ld,microdata,meta, ornull), so your agent can tell a structured price apart from a guess. If a page renders its price with JavaScript, you getnullrather than a wrong number. - Works on raw HTML, not just URLs. Already scraped the page, or the site blocks bots? Pass the
html(up to 2 MB) and skip the fetch. - Returns every offer, not just the first price: variants, sellers and sale prices, up to 50 per page.
- LLM-ready Markdown of the page with
include=markdown, or the raw JSON-LD blocks withinclude=jsonld. - MCP-native with a free, keyless demo endpoint, so an agent can try it with one line of config.
It doesn’t get past anti-bot pages (Amazon, Best Buy, REI) and doesn’t run JavaScript. For those, fetch the HTML yourself and pass it in.
No-code version
Not building an agent? Try it free in your browser: no key or sign-up, 10 pages a day. Swap the url= value for any product page and you get the JSON back.
Try it free
- No key, right now: point any MCP client at
https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp(10 tool calls per IP per day). - Free RapidAPI plan: 50 requests/month on the Basic plan, no card needed. Pro is $9.99 for 5,000.
This is a hosted (remote) MCP server using Streamable HTTP. There’s nothing to install or run locally. This repository holds only the documentation and the MCP Registry manifest; the server code is not open source.
| Endpoint | Auth | Limits |
|---|---|---|
https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp |
none | free, 10 tool calls per IP per UTC day, no batch |
https://product-page-extractor.p.rapidapi.com/mcp |
X-RapidAPI-Key + X-RapidAPI-Host headers |
paid per request via RapidAPI (free Basic plan available) |
Official MCP Registry name: dev.workers.mohamed-bahaa53000.product-extractor/product-page-extractor
Tools
extract_product:urlorhtml, plus an optionalinclude(product,meta,markdown,jsonld). Data is read from schema.org JSON-LD, microdata and OpenGraph.extract_batch: up to 10 URLs in one call, with ok/error for each page (paid endpoint only).
Use cases
- Price and stock checks for agents doing competitor monitoring.
- Catalog enrichment: GTIN/MPN/brand for product matching.
- Turning a product page into Markdown for an LLM to read.
Examples
Ask your agent: “What’s the price and stock status of https://www.allbirds.com/products/mens-tree-runners?” It calls:
{"name":"extract_product","arguments":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}
Already have the HTML (from your own crawler, or a site that blocks bots)? Pass it in and skip the fetch:
{"name":"extract_product","arguments":{"html":"...","include":"product,markdown"}}
Plain REST works too:
curl "https://product-extractor.mohamed-bahaa53000.workers.dev/demo/v1/extract?url=https://www.allbirds.com/products/mens-tree-runners"
Connect
{
"mcpServers": {
"product-extractor": {
"url": "https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp"
}
}
}
Paid / production (RapidAPI):
{
"mcpServers": {
"product-extractor": {
"url": "https://product-page-extractor.p.rapidapi.com/mcp",
"headers": {
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "product-page-extractor.p.rapidapi.com"
}
}
}
}
For clients that only support stdio: npx -y mcp-remote https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp
Notes
- Stateless. Pages and HTML aren’t stored beyond standard request logs.
- Only fetches public http/https pages.
License
MIT for this repository’s docs and config examples (see LICENSE). The hosted service is proprietary.
Install
This server does not publish a one-line install command.
Open the repository installation guideConfiguration
{
"mcpServers": {
"product-extractor": {
"url": "https://product-extractor.mohamed-bahaa53000.workers.dev/demo/mcp"
}
}
}