ต้นแบบ · เว็บนี้เป็นต้นแบบ แสดงข้อมูลจริง 100 ตัวจากทะเบียนทางการ ยังไม่ครบทุกตัว
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

HasData Shopify

โดย HasDataรุ่น 1.0.3i★ 7iบนเครื่องหรือคลาวด์
ชื่อใน registrycom.hasdata/shopify

ภาพรวม

เรียบเรียงโดย PopNx MCP จากข้อมูลของผู้ทำ

อ่านรายการสินค้าและคอลเลกชันที่เปิดสาธารณะของร้าน Shopify ใดก็ได้ ออกมาเป็นข้อมูลเรียบร้อย เหมาะกับดูร้านคู่แข่ง ต้องใช้กุญแจของ HasData

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

The public product catalogue and collections of any Shopify storefront, as structured JSON.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

เหมาะกับ: คนทำร้านออนไลน์ที่อยากเทียบสินค้าและราคากับร้านอื่น

ลองพิมพ์บอก AI แบบนี้

  • ดึงสินค้าทั้งหมดของร้าน Shopify นี้พร้อมราคา
  • ร้านนี้มีคอลเลกชันอะไรบ้าง
  • เทียบราคาสินค้าคล้ายกันระหว่างสองร้านนี้

เรียบเรียงโดย PopNx MCP จากข้อมูลของผู้ทำ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

เปิด Claude Desktop → Settings → Connectors → Add custom connector แล้ววางที่อยู่นี้

https://mcp.hasdata.com/mcp?apis=shopify

รันบนเครื่อง

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": [
        "-y",
        "@hasdata/shopify-mcp"
      ],
      "env": {
        "HASDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http shopify 'https://mcp.hasdata.com/mcp?apis=shopify' --header 'x-api-key: ใส่ค่าของคุณ'

รันบนเครื่อง

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add shopify --env HASDATA_API_KEY='ใส่ค่าของคุณ' -- npx -y @hasdata/shopify-mcp

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "shopify": {
      "url": "https://mcp.hasdata.com/mcp?apis=shopify",
      "headers": {
        "x-api-key": "ใส่ค่าของคุณ"
      }
    }
  }
}

รันบนเครื่อง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": [
        "-y",
        "@hasdata/shopify-mcp"
      ],
      "env": {
        "HASDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "shopify": {
      "type": "http",
      "url": "https://mcp.hasdata.com/mcp?apis=shopify",
      "headers": {
        "x-api-key": "ใส่ค่าของคุณ"
      }
    }
  }
}

รันบนเครื่อง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "shopify": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@hasdata/shopify-mcp"
      ],
      "env": {
        "HASDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

ค่าที่ต้องใส่เอง

  • HASDATA_API_KEY ความลับ จำเป็น env
    HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.
  • x-api-key ความลับ จำเป็น HTTP header
    HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 5 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันโดเมน hasdata.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 7 วันที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ MIT

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 1891 ms (HTTP 200)

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ไม่ต้องล็อกอิน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ต้องอ่านรายการเครื่องมือของ server ก่อน จะเริ่มตรวจในขั้นถัดไป

เทียบกับตัวอื่นในหมวด ร้านค้าออนไลน์และรับเงินi

  • ดาวมากกว่า 0% ของอีก 6 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 50% ของอีก 6 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 6 ตัวในหมวดนี้

เทียบเฉพาะ server ที่อยู่ในต้นแบบนี้ ไม่ใช่ทั้ง registry

คำถามที่พบบ่อย

HasData Shopify ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 4 จาก 4 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: HASDATA_API_KEY, x-api-key

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 7 วันที่ผ่านมา และส่งรุ่นล่าสุด (1.0.3) เข้า registry 42 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Stripe MCP

โดย stripe

server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth

รันบนคลาวด์★ 2,043MITอัปเดต 12 เดือนที่ผ่านมา

MCP Cn Commerce

โดย TonyWang-hub

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

รันบนเครื่อง★ 96MITอัปเดต 26 วันที่ผ่านมา

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Shopify MCP Server

A hosted Shopify MCP server that gives Claude, Cursor, Windsurf and any other MCP client two read-only Shopify tools. Pull the product catalogue of any public Shopify storefront by its URL, with variants, SKUs and prices, and list the collections that organise it, all as structured JSON, with no app to install and no merchant token.

It reads the catalogue a signed-out visitor can see, on any classic Shopify storefront, whether it sits on a myshopify.com address or a custom domain. A headless store answers on its myshopify.com domain.

1,000 free credits every month, no card required, which is 100 Shopify calls at the 10-credit rate.

https://mcp.hasdata.com/mcp?apis=shopify

Contents

  • What you need
  • Quick start
  • Example prompts
  • Tools
  • Errors and failure paths
  • Pricing, free tier and limits
  • Tool selection
  • How it compares
  • FAQ
  • HasData links
  • Development
  • Contributing
  • License

What you need

An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/shopify-mcp on npm and hasdata-shopify-mcp on PyPI, shown below.

Quick start

The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.

FieldValue
URLhttps://mcp.hasdata.com/mcp?apis=shopify
TransportHTTP, streamable
Auth headerx-api-key: HASDATA_API_KEY

Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.

Claude Code

claude mcp add --transport http shopify "https://mcp.hasdata.com/mcp?apis=shopify" \

--header "x-api-key: HASDATA_API_KEY"

Claude Desktop

Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=shopify and sign in.

For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/shopify-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:

{

"mcpServers": { "shopify": { "command": "npx", "args": ["-y", "@hasdata/shopify-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }

For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:

{

"mcpServers": { "shopify": { "command": "uvx", "args": ["hasdata-shopify-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }

Cursor

~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:

{

"mcpServers": { "shopify": { "url": "https://mcp.hasdata.com/mcp?apis=shopify", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }

Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:

{

"mcpServers": { "shopify": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=shopify", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }

VS Code

.vscode/mcp.json in the workspace:

{

"servers": { "shopify": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=shopify", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }

Example prompts

Each of these lands on one tool, or on two in sequence when the second needs a handle the first returns.

  • List the collections on allbirds.com and tell me which ones hold the most products.
  • Pull the first 250 products from this store and group them by product_type.
  • Which variants in this store are out of stock right now?
  • Find every product on this store that is discounted, comparing price against compare_at_price.
  • Page through the shoes collection on this storefront and give me the price range per size.
  • Compare the sock prices on these two Shopify stores.

A prompt that names a category rather than a handle takes two calls, one to list the collections and one to pull the products in the matching handle. The collection tool returns handle, and that value goes straight into the collection argument of the product tool.

Tools

ToolWhat it returns
hasdata_shopify_collections_getCollectionsEach collection's id, title, handle, body_html description, image, and timestamps. 10 credits a call
hasdata_shopify_products_getProductsProduct id, title, handle, vendor, product_type, tags, body_html, images, variants with prices/SKUs/inventory status, and timestamps. 10 credits a call

Two tools, 10 credits per successful call. Both take a storefront URL and page through the results with limit and page, where limit accepts up to 250.

Get Shopify store products

hasdata_shopify_products_getProducts

A page of products from one storefront.

ParameterTypeRequiredNotes
urlstringyesThe storefront, such as https://www.allbirds.com
limitnumberProducts per page, 1 to 250
pagenumberPage number, starting at 1
collectionstringRestrict to one collection, by its handle

Returns a products array. Each product carries id, title, handle, body_html, vendor, product_type, tags, published_at, created_at, updated_at, an options array naming the axes the variants vary on, an images array, and a variants array.

The price lives on the variant, never on the product. A variant carries id, title, sku, price, compare_at_price, available, grams, position, requires_shipping, taxable, the option1 through option3 values and its own timestamps.

{

"id": 6889962537040, "title": "Anytime Ankle Sock - Basin Blue", "handle": "anytime-ankle-sock-basin-blue", "vendor": "Allbirds", "product_type": "Socks", "updated_at": "2026-09-09T05:25:09-07:00", "options": [{ "name": "Size", "position": 1, "values": ["S (W5-7)", "M (W8-10 / M8)", "L (W11 / M9-12)", "XL (M13-14)"] }], "variants": [ { "id": 40356485202000, "title": "S (W5-7)", "sku": "A10842U001", "price": "16.00", "compare_at_price": null, "available": false, "grams": 59, "position": 1 } ], "images": [ { "id": 36355227844688, "position": 1, "src": "https://cdn.shopify.com/s/files/1/1104/4168/files/A10842_S24Q1_Anytime_Ankle_Sock_Basin_Blue_A-1400x1400.png?v=1776183348", "width": 1400, "height": 1400 } ] }

Get Shopify store collections

hasdata_shopify_collections_getCollections

The collections that organise one storefront.

ParameterTypeRequiredNotes
urlstringyesThe storefront, such as https://www.allbirds.com
limitnumberCollections per page, 1 to 250
pagenumberPage number, starting at 1

Returns a collections array. Each entry carries id, title, handle, description, image, products_count, published_at and updated_at.

This is the merchandising taxonomy as the store publishes it, which makes it the cheapest way to see how a competitor groups a catalogue before pulling any products. The handle is the join key into the product tool.

{

"id": 135995326544, "title": "Accessories", "handle": "womens-accessories", "description": "You know what they say: It's all in the details. Customize your look with planet-friendly face masks, hats, and more. ", "published_at": "2019-08-05T14:01:17-07:00", "updated_at": "2026-07-08T13:39:17-07:00", "image": null, "products_count": 28 }

Errors and failure paths

Plan for these rather than assuming a happy path.

`price` and `compare_at_price` are strings, not numbers. They arrive as "16.00", exactly as the storefront publishes them. Convert before you compare or sum, because string ordering puts "9.00" above "16.00".

A product has no price of its own. Anything about cost has to go through the variants array, and a product with a size or colour axis usually has several prices. Reading the first variant and calling it the price is the most common mistake here.

`compare_at_price` is null when nothing is discounted, so a discount check is a null test first and a comparison second.

`available` is per variant and reflects the moment of the call. A product is not out of stock, a variant is, and stock moves. Two calls minutes apart can disagree, which is the point when you are monitoring, and a trap when you are diffing catalogues.

A collection can report `products_count` of zero. Stores leave empty, staged and seasonal collections published, so an empty collection is normal rather than a failed call.

Stores publish things that are not for sale. Internal, retired and staging items sit in the public catalogue on plenty of stores, sometimes flagged in the title and sometimes not. Filter on what you need instead of trusting that every row is a live product.

`tags` are whatever the merchant wrote. Some stores use them as plain keywords, others push namespaced metafield strings into them. Treat the array as free text.

`body_html` is HTML. Strip it before you index or embed the description.

`collection.image` is often null, and so is featured_image on a variant. Fall back to the product images array.

A URL that is not a classic Shopify storefront still answers 200 and still bills. There is no products array in that response and an error string in its place, while requestMetadata.status stays ok. Test for the array before you read it, because the shape changes rather than the status.

**A

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx