ecommerce-insight-mcp
Provides e-commerce data extraction from Amazon product and category pages, including product presentation data, structured schema (JSON-LD/OpenGraph), seller trust signals, and multi-marketplace category analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ecommerce-insight-mcpCompare the featured products in this category: https://www.trendyol.com/c/electronics"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
E-Commerce Insight MCP
Türkçe · 🇬🇧 English
Ürün ve kategori sayfalarından sunum için veri çeken bir MCP sunucusu. Üç araç sunar:
Araç | Ne yapar |
| Ürün sayfasından başlık, görseller ve temizlenmiş metin |
| JSON-LD + OpenGraph: fiyat, stok, marka, puan |
| Kategori sayfasından öne çıkan ürün listesi |
| Satıcı puanı, kargoyu kimin yaptığı, iade durumu + gerekçeli karar özeti |
| Sabit sunum paleti, tipografi ve grafik kuralları |
| Birden çok pazaryerinin kategorisi + tüm ürünler tek çağrıda — sunum için giriş noktası |
| Tema-sadık SVG görseller: yolculuk haritası, halka, waffle, konumlandırma, sıralı bar |
Canlı sunucu: https://ecommerce-insight-mcp.onrender.com
Kullanım yolları
Üç ayrı yol var. MCP client'ınız yoksa ya da terminal kullanmıyorsanız 1. yol yeterli.
1. Tarayıcıdan (kurulum gerekmez)
https://ecommerce-insight-mcp.onrender.com adresini açın, linki yapıştırın, butona basın.
Sunucu ücretsiz katmanda çalıştığı için uykudan uyanması gerekebilir — ilk istek 1 dakikaya kadar sürebilir, sonrakiler hızlıdır.
2. curl / Postman / n8n / Google Sheets
Düz GET endpoint'leri, JSON döner. Handshake, session, SSE yok:
curl "https://ecommerce-insight-mcp.onrender.com/api/product?url=https://ornek.com/urun"
curl "https://ecommerce-insight-mcp.onrender.com/api/schema?url=https://ornek.com/urun"
curl "https://ecommerce-insight-mcp.onrender.com/api/category?url=https://ornek.com/kategori"
curl "https://ecommerce-insight-mcp.onrender.com/api/seller?url=https://ornek.com/urun"
curl "https://ecommerce-insight-mcp.onrender.com/api/analyze?url=https://ornek.com/kategori&limit=8"Sunucunun ayakta olup olmadığını kontrol etmek için:
curl https://ecommerce-insight-mcp.onrender.com/health3. MCP client ile
{
"mcpServers": {
"ecommerce-insight": {
"url": "https://ecommerce-insight-mcp.onrender.com/mcp"
}
}
}Client'ınız uzak sunucu URL'sini desteklemiyorsa (yalnızca stdio destekleyen eski sürümler), araya köprü koyun:
{
"mcpServers": {
"ecommerce-insight": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ecommerce-insight-mcp.onrender.com/mcp"]
}
}
}Not: /mcp yolu doğrudan curl ile çağrılamaz. MCP Streamable HTTP protokolü Accept: application/json, text/event-stream başlığını, initialize → notifications/initialized → tools/call sırasını ve Mcp-Session-Id başlığını ister; yanıtı da SSE frame'i olarak verir. Terminalden kullanmak için 2. yolu tercih edin.
Related MCP server: merch-connector
Yerel kurulum
Yerel kurulum, Playwright yedeğini de açar. Bot korumalı siteler için genellikle gerekmez (aşağıdaki TLS taklidi bunu zaten hallediyor), ama JavaScript ile render edilen sayfalarda işe yarar.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Bot korumalı siteler için:
pip install playwright==1.62.0
playwright install chromiumMCP client config'i (stdio):
{
"mcpServers": {
"ecommerce-insight": {
"command": "/tam/yol/.venv/bin/python",
"args": ["/tam/yol/ecommerce_mcp.py"]
}
}
}HTTP sunucusu olarak çalıştırmak için:
.venv/bin/python -m uvicorn ecommerce_mcp:app --port 8000Ardından http://localhost:8000 adresini açın.
Yerel test
En hızlı kontrol
.venv/bin/python -m uvicorn ecommerce_mcp:app --port 8000Başka bir terminalde:
curl -s http://localhost:8000/healthimpersonate ve playwright ikisi de true ise her şey hazır:
{"status":"ok","impersonate":true,"playwright":true,"tools":["category","product","schema"]}Sunum çıktısı
curl -s "http://localhost:8000/api/product?url=<ÜRÜN_LİNKİ>" | python -m json.tooltitle, product_images (en fazla 6 farklı fotoğraf) ve extracted_content döner.
Fiyat, stok, marka ve puan için şema aracını kullanın:
curl -s "http://localhost:8000/api/schema?url=<ÜRÜN_LİNKİ>" | python -m json.toolHer site şemasını Product diye etiketlemiyor — Trendyol örneğin ProductGroup kullanıyor ve fiyatları hasVariant altına koyuyor.
Satıcı kararı için:
curl -s "http://localhost:8000/api/seller?url=<ÜRÜN_LİNKİ>" | python -m json.toolTarayıcı formu
http://localhost:8000 adresini açın, linki yapıştırın, butona basın. Aynı veri, terminal yok.
Araçları doğrudan test etmek
python test_local.py üç aracı da örnek linklerle çağırıp ham JSON'u basar.
Bulut ortamını taklit etmek
Sunucunun Render'da nasıl davrandığını yerelde görmek için tarayıcı yedeğini kapatarak başlatın:
ENABLE_PLAYWRIGHT=0 .venv/bin/python -m uvicorn ecommerce_mcp:app --port 8000MCP protokolünü test etmek
/mcp tam handshake ister. Elle doğrulamak için:
# 1. initialize — yanıt başlıklarındaki Mcp-Session-Id'yi not edin
curl -i -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'
# 2. araçları listele (1. adımdaki session id'yi yapıştırın)
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: <SESSION_ID>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Satıcı güven sinyalleri
extract_seller_trust_signals aracı "hangi ürünü ve satıcıyı neden seçmeli" sorusunu gerekçelendirmek için tasarlandı. Ham alanların yanında decision_summary döndürür: strengths (kararı destekleyen), concerns (uyarı) ve unknowns (bilinemeyen).
Trendyol örneği:
{
"seller": {
"name": "SuperStep",
"official_name": "EREN PERAKENDE VE TEKSTİL ANONİM ŞİRKETİ",
"city": "İstanbul",
"score": 8.4, "score_scale": 10
},
"logistics": {
"fulfilled_by": "Satıcı kendi gönderiyor (pazaryeri)",
"refundable": true, "free_shipping": false, "max_installment": 12
},
"decision_summary": {
"strengths": ["Satıcı puanı 8.4/10 — iyi.", "Ürün iade edilebilir.", "629 favori — talep görüyor."],
"concerns": [
"Ürün puanı 5 ama yalnızca 1 yoruma dayanıyor — istatistiksel olarak zayıf.",
"Kargoyu satıcı kendi yapıyor — kargo ve iade süreci satıcının performansına bağlı.",
"Stok tükeniyor — fiyat ve bulunurluk değişebilir."
]
}
}Neyin ölçülebildiği, neyin ölçülemediği
Kargo hasar/kayıp oranı, müşteri hizmetleri yanıt kalitesi ve iade taleplerinde ulaşılabilirlik hiçbir pazaryerinde satıcı bazında yayınlanmıyor. Bu yüzden çıktıda unknowns listesi var — sunumda "veri yok" ile "sorun yok" karışmasın diye.
Bu üçünün yerine geçen iki gösterge var:
seller.score— platformun tam olarak bu faktörlerden hesapladığı bileşke puan.logistics.fulfilled_by— kargoyu platform deposu mu yoksa satıcı mı yapıyor. Satıcı kendi gönderiyorsa kargo ve iade süreci tamamen o satıcının performansına bağlıdır; bu, kargo riskinin en iyi yayınlanan vekil göstergesidir.
Ayrıca ürün puanı her zaman yorum sayısıyla birlikte değerlendirilir: 1 yoruma dayanan 5/5, 500 yoruma dayanan 4.3'ten zayıf bir sinyaldir.
Kaynak farkı
source alanı verinin nereden geldiğini söyler:
Değer | Anlamı |
| Trendyol'un sayfaya gömdüğü veri — yukarıdaki tüm alanlar dolu gelir |
| Siteden bağımsız JSON-LD |
json_ld kaynağında alanların boş gelmesi satıcının zayıf olduğu anlamına gelmez, site o veriyi yayınlamıyor demektir. Hiç sinyal bulunamazsa decision_summary.notes bunu açıkça söyler.
Tool kullanım sınırına takılmamak
Kategori analizi için ürün başına ayrı ayrı extract_* çağırmak client'ın tool kullanım sınırını doldurur. 8 ürünlük bir analiz bu şekilde 25 tool çağrısı ve ~66.000 token demekti; en büyük pay ham JSON-LD dökümündendi (tek üründe 23 KB, bunun 8 KB'ı hasVariant).
İki değişiklikle çözüldü:
1. analyze_category — tek çağrı. Kategoriyi ve içindeki ürünleri eşzamanlı çeker, yalnızca sunuma giren alanları döndürür.
curl -s "http://localhost:8000/api/analyze?url=<KATEGORİ_LİNKİ>&limit=8" | python -m json.toolBirden çok pazaryeri tek çağrıda. url virgülle ayrılmış birden çok adres alır; her ürün hangi pazaryerinden geldiğiyle döner:
curl -s -G "http://localhost:8000/api/analyze" \
--data-urlencode "url=https://www.trendyol.com/<kategori>,https://www.hepsiburada.com/ara?q=<terim>,https://www.amazon.com.tr/s?k=<terim>" \
--data-urlencode "limit=4" | python -m json.toolÖlçüldü: üç pazaryeri, 12 ürün, 7.3 saniye, tek çağrı. Bir kaynak okunamazsa sources içinde hatasıyla görünür ve diğerleri devam eder; hiçbiri okunamazsa araç hata döndürür.
2. Ham şema budandı. extract_structured_product_schema artık key_facts (ad, marka, fiyat, puan, yorum sayısı, stok) döndürüyor; ham şemadan hasVariant, isRelatedTo, additionalProperty gibi alanlar çıkarılıyor.
Ölçülen fark:
Önce | Sonra | |
Şema aracı (tek ürün) | 23.474 karakter (~6.700 token) | 4.983 karakter (~1.423 token) |
8 ürünlük kategori analizi | 25 çağrı, ~66.000 token | 1 çağrı, ~1.261 token |
analyze_category çıktısındaki summary.average_rating yalnızca yorumu olan ürünlerden hesaplanır; kaç ürüne dayandığı rated_product_count alanında verilir. Yorum almamış ürünün 0 puanı ortalamaya katılmaz.
Playwright katmanı
Playwright son çaredir: curl_cffi → httpx → Playwright. TLS taklidi bot korumalarının çoğunu zaten geçtiği için nadiren devreye girer, ama JavaScript ile render edilen sayfalarda gerekir. Yalnızca yerel kurulumda çalışır.
Paylaşılan tarayıcı
Her çağrıda yeni bir Chromium açılıyordu — istek başına ~2 saniye sabit maliyet ve sekiz ürünlük bir analizde sekiz ayrı tarayıcı süreci. Artık tek Chromium paylaşılıyor; izolasyon istek başına yeni bağlam (context) açılarak sağlanıyor, çerezler istekler arasında sızmıyor.
Süre | |
5 ardışık çağrı, her seferinde yeni tarayıcı | 10,68 sn |
5 ardışık çağrı, paylaşılan tarayıcı | 9,03 sn (%15 kazanç) |
8 eşzamanlı çağrı, 2'li semafor | 7,06 sn |
Asıl kazanç eşzamanlılıkta: eski kod 8 paralel istekte 8 ayrı Chromium açardı ve dar bellekli ortamda OOM riski taşırdı. PLAYWRIGHT_MAX_CONCURRENCY (varsayılan 2) bunu sınırlar.
Dayanıklılık
Çökme kurtarması: tarayıcı ölürse bir sonraki çağrıda kendiliğinden yeniden başlar.
Temiz kapanış: sunucu kapanırken Chromium serbest bırakılır. Ölçüldü — süreç sayısı 0 → 3 → 0, sızıntı yok.
İndirme tuzağı: bazı siteler bot şüphesinde sayfa yerine dosya indirmesi tetikliyor; Playwright'ın ham hatası bunu anlatmadığı için açıklayıcı mesaja çevriliyor.
Otomasyon izleri:
navigator.webdrivertek başına yetmiyor; dil listesi, eklenti sayısı,window.chromeve permissions sorgusu da maskeleniyor.
Denenip çıkarılan: görsel/font engelleme
Görsel, font ve medya isteklerini engellemek sezgisel olarak hızlandırmalıydı. Ölçüm tersini söyledi ve özellik çıkarıldı:
Yöntem | Trendyol ürün sayfası |
Engelleme yok | 3,47 sn |
| 7,39 sn |
Uzantı deseni ile engelleme | 7,39 sn |
İki nedenden: route("**/*") her isteği Python'a round-trip ettiriyor, ve daha önemlisi iptal edilen istekler yüzünden networkidle hiç oturmuyor — her çağrıda 6 saniyelik zaman aşımı yanıyor. Tasarruf edilen bant genişliği bu maliyeti karşılamıyor.
Slayt görselleri
build_slide_visual sunum görsellerini tema içinde üretir: renk ve yazı tipi seçimi çağırana bırakılmaz, hepsi sabit paletten gelir. Dönen SVG kendi kendine yeter (harici font/asset yok) ve hem HTML sunumlara hem PowerPoint'e gömülebilir.
Tip | Ne için |
| Kapak slaytı — koyu zemin, sıcak vurgu, büyük serif başlık. Sunumun ilk slaytı bununla üretilir |
| Müşteri yolculuğu haritası — aşamalar, her aşamada ölçü ve not |
| Tek ölçülü halka göstergeleri — çok dilimli pastanın modern karşılığı |
| Fiyat–puan konumlandırma; daire büyüklüğü yorum sayısı |
| 100 kareli oran ızgarası — pastanın okunabilir alternatifi |
| Büyükten küçüğe sıralı yatay bar |
curl -s -G "http://localhost:8000/api/visual" \
--data-urlencode "kind=donut" \
--data-urlencode 'data={"rings":[{"label":"Ortalama puan","value":4.2,"max":5,"display":"4.2","caption":"3 üründen"}]}' \
--data-urlencode "title=Kategori Sağlık Göstergeleri" > gorsel.svgPasta grafik kuralı — bilinçli revizyon
Tasarım sistemi önce tüm pasta ve halka grafikleri yasaklıyordu. Bu kural şöyle inceltildi:
Yasak kalan: çok dilimli pasta (
multi_slice_pie) ve çok serili halka. Okuyucu dilim açılarını gözle kıyaslayamaz — asıl sorun buydu.Serbest olan: tek ölçülü halka (
donut). Tek bir oranı gösterir, kıyaslama sorunu doğurmaz; modern sunum araçlarının KPI göstergesi budur.Oran dağılımı için:
waffle. Okuyucu kare sayar, açı tahmin etmez.
Çarpık fiyat verisi
quadrant görselinde fiyat ekseni için "x_scale": "log" verin. Kategori fiyatları tipik olarak çarpık dağılır (1.290 TL ile 44.500 TL bir arada); doğrusal eksende noktalar sola yığılır, logaritmik eksen segmentleri ayırır. Eksen etiketine "(log ölçek)" notu otomatik eklenir.
Geçici bloklar ve yeniden deneme
Bot korumaları 403/429/503'ü çoğu zaman kalıcı yasak değil, anlık hız sınırı olarak döndürür — aynı adres saniyeler sonra 200 verebilir. Önceden tek denemede pes ediliyordu ve bir pazaryeri sunumdan tamamen düşüyordu.
Artık engellenen statülerde artan beklemeyle 3 deneme yapılıyor (1,5 sn → 3 sn). Geçici bloklar kurtarılıyor; kalıcı olanlar yine hata döndürüyor ve sources içinde görünüyor.
Ölçülen davranış farkı — aynı anda çalıştırılan testlerde:
Kaynak | Yerel makine | Render (bulut) |
Trendyol | çalışıyor | 0 ürün (IP bazlı içerik ayrımı) |
Hepsiburada | çalışıyor | çalışıyor |
Amazon.com.tr | 503 (kalıcı, bu IP'den) | çalışıyor |
N11 | çalışıyor | çalışıyor |
İki ortam birbirinin tersini yaşayabiliyor: Trendyol yerelde, diğerleri bulutta daha güvenilir. Kapsamlı bir karşılaştırma için ikisini birlikte kullanmak gerekebilir.
Arama sonucu alaka sorunu
analyze_category'ye arama adresi verdiğinizde pazaryerinin kendi sıralaması geçerlidir. Örneğin N11'de fujifilm fotograf makinesi araması film, çanta ve tripod gibi aksesuarları öne çıkarabiliyor. Bu bir engelleme değil, alaka sorunudur — daha dar bir arama adresi (marka filtresi uygulanmış kategori linki) belirgin biçimde daha temiz sonuç verir.
Sonuç bölümü zorunludur
Sunum, "Yapay Zekâ Özeti ve Sonuç" slaytıyla biter. Veriyi gösterip yorumsuz bırakmak, çıkarımı okuyucuya bırakmak demektir.
analyze_category çıktısındaki findings bu bölümün ham maddesidir — veriden doğrudan türetilmiş, elle doğrulanabilir gözlemler:
* 12 üründen 7 tanesinin hiç yorumu yok; kategori ortalaması yalnızca
yorumu olan ürünlerden hesaplandı.
* Fiyat aralığı 1.290 TL – 68.500 TL; en pahalı ürün en ucuzun 53 katı.
Kategori tek bir segment değil.
* 'Rosem Ahsap' listedeki 4 üründe satıcı konumunda — satıcı yoğunlaşması var.
* 4 üründe kargoyu satıcı kendi yapıyor; teslimat ve iade deneyimi satıcıya bağlı.Sonuç slaytının kuralları (get_presentation_style_guide → conclusion):
Koyu zeminde (
#1E293B), sunumun son slaytı.Önce 2-3 cümlelik özet paragrafı, ardından 01-04 numaralı 3-4 eyleme dönük öneri.
Her öneri hangi bulguya dayandığını söyler: "X olduğu için Y yap."
Özet yalnızca
findingsve sunumda gösterilen sayılardan türetilir — yeni veri uydurulmaz.Okunamayan kaynak varsa sonuçta açıkça belirtilir.
Sunum tasarım sistemi
Sunumlar arasında görünüm tutarlılığını sağlamak için palet, tipografi ve grafik kuralları sunucuda sabitlenmiştir. Onaylanan referans sunumdan ölçülerek çıkarıldı.
Palet
Rol | Renk |
Yüzey |
|
Çizgi |
|
Metin |
|
Koyu zemin |
|
Vurgu seti |
|
Kategorik ayrım gereken yerde vurgu seti sırayla kullanılır; beşinci renk eklenmez. Mavi ton yoktur — lacivert yalnızca koyu slayt zemini ve metin rengidir. Kapak ve bölüm ayracı koyu, içerik slaytları açık zemindedir.
Yerleşim — metin çakışmasını önleme
Alt başlık, başlığa sabit dikey ofsetle değil, başlık kutusunun alt kenarına göre konumlandırılır. Başlık kutusu için her zaman iki satırlık yükseklik ayrılır. Başlık 45 karakteri aşarsa metin kısaltılır — punto küçültülmez. Bu kural, başlığın iki satıra taşıp alt başlığın üstüne binmesini önlemek için eklendi.
Tipografi
Başlık Georgia, gövde Calibri. Başlık 28pt · bölüm 16pt · alt başlık 13pt · gövde 11pt · açıklama 9pt. Gövde 11pt'nin altına düşürülmez — sığmıyorsa içerik azaltılır, punto değil.
Grafikler
İzin verilen: bar, yatay bar, tablo, KPI kutusu. Yasak: pasta, halka, 3D, radar, alan. Oran göstermek için yatay bar kullanılır — gözle kıyaslaması pastadan kolaydır. Seri rengi tek: #D97706 ya da #0F766E; ızgara #E2E8F0.
Yoğunluk
Slayt başına en fazla 11 şekil, sunum başına en fazla 4 daire/halka biçimi, dekoratif görsel yok. Görsel yalnızca ürün fotoğrafı olarak, veriyi gösterdiği yerde kullanılır.
Nasıl uygulanır
Üç yoldan da aynı veri gelir:
curl -s http://localhost:8000/api/style | python -m json.toolAraç:
get_presentation_style_guide— model veriyi çekerken stili de okuyabilsin diye.Kaynak:
style://presentationPrompt:
sunum_hazirla(url)— veri çekme + stile uyma talimatını tek adımda verir.
Yapılandırma
Ortam değişkeni | Varsayılan | Açıklama |
|
|
|
Sunucu yalnızca public http/https adreslerine istek atar; loopback, iç ağ ve bulut metadata adresleri (169.254.169.254) reddedilir.
Bot koruması nasıl aşılıyor
Cloudflare (Trendyol) ve Akamai (Hepsiburada) gibi korumalar istemciyi büyük ölçüde TLS el sıkışmasından tanır. Python'un httpx'i kendine özgü bir parmak izi bırakır (JA4 t13d1712h1, HTTP/1.1) ve bu doğrudan ele verir — datacenter IP'siyle birleşince 403 gelir.
Sunucu bu yüzden birincil çekici olarak curl_cffi kullanır: gerçek Chrome'un TLS parmak izini (JA4 t13d1516h2, HTTP/2) sunar. Ölçülen fark, aynı IP ve aynı User-Agent ile:
Site |
|
|
Hepsiburada | 403 (1.7 KB blok sayfası) | 200 (610 KB, JSON-LD dahil) |
Tarayıcı çalıştırmadığı için Playwright'ın aksine ek RAM ya da Chromium binary'si istemez; ücretsiz katmanda sorunsuz çalışır.
Çekim sırası: curl_cffi → httpx (curl_cffi yoksa) → Playwright (yalnızca yerel, JS render için).
Aşılamayan durum: IP bazlı içerik ayrımı
Trendyol, bulut sunucusunun IP'sine içerik olarak farklı bir sayfa servis ediyor. Ölçüm — aynı URL (https://www.trendyol.com/), aynı anda:
İstek nereden | Sayfa başlığı | Bulunan ürün linki |
Render (bulut) | "Online Alışveriş Sitesi, Türkiye'nin Trend Yolu | Trendyol" | 0 |
Yerel makine | "En Trend Ürünler Türkiye'nin Online Alışveriş Sitesi Trendyol'da" | 8 |
Bu ne TLS parmak izi, ne çerez, ne de JavaScript sorunu — sunucu daha isteği karşılarken IP'ye bakıp karar veriyor. Dolayısıyla TLS taklidi, oturum çerezi ya da Playwright bunu çözmez; hepsi aynı IP'den çıkar.
Trendyol için çözüm: sunucuyu yerelde çalıştırın. Bulut sunucusu Hepsiburada, Amazon ve korumasız mağazalarda tam veri vermeye devam eder. Trendyol istendiğinde hata değil, kısmi veri + açıklayıcı warning alanı döner.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP Server for Web scraping and Crawling, built using Crawl4AI224
- AlicenseAqualityFmaintenanceAn MCP server that gives AI agents eyes on any e-commerce storefront, enabling scraping, analysis, and comparison through the Model Context Protocol.1499MIT
- AlicenseAqualityDmaintenanceAn MCP server that wraps the Universal Commerce Protocol (UCP) Discovery and Catalog capabilities, letting you search and compare products across UCP merchants directly from Claude.4MIT
- FlicenseNot gradedqualityDmaintenanceA custom MCP server that turns Claude into an agentic shopping assistant for searching products, comparing options, managing a cart, and checking out with built-in guardrails for safe autonomous commerce.
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/odrdgi-create/ecommerce-insight-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server