OpenShopGraph

com.openshopgraph由 openshopgraph.com 發布官方發布者v0.1.3更新於 Oct 29, 2026

Source-dated facts on online shops for AI agents and buyers: returns, shipping, payment, trust.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取商業與電商

概覽

AI 產生的概覽

OpenShopGraph 為助理提供附來源日期的網路商店資訊:退貨、配送、付款方式、信任標章與折扣碼。

可以做什麼
  • 依名稱、網域片段、國家或分類尋找網路商店,並讀取單一商店的公開資料
  • 列出平台收錄的商店分類,以及各分類下的公開商店數量
  • 查詢商店自述的退貨、付款方式、買家保護標章,以及配送目的地、配送時間與免運門檻,並附上查核日期與資料來源
  • 列出某商店目前可用的附來源日期折扣碼,包含驗證狀態以及被隱藏的內容與原因
適用情境
適合在助理協助使用者購物前比較或查核網路商店,或查詢商店自述的退貨、配送、付款條款與目前折扣碼時使用。它是唯讀的參考資訊來源,不用於下單或結帳。
執行需求
可作為遠端端點執行,也可透過 stdio 執行本機 npm 套件。公開唯讀工具無需帳號;選用的操作員金鑰透過 OSG_API_TOKEN 環境變數或 x-api-token 標頭提供。需要能連線至該服務的網路。
安裝前請注意
選用的操作員金鑰屬於機密,請勿放入共用設定。匿名用戶端只能看到公開唯讀工具。政策與配送資訊是商店對自身的陳述,並非報價或要約,即使標示查核日期也可能已過時;折扣碼可能失效或被隱藏。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 OpenShopGraph,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.openshopgraph%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "openshopgraph": {
      "type": "http",
      "url": "https://api.openshopgraph.com/mcp"
    }
  }
}

工具

6

find_shop

Find shop

Find online shops by name, domain fragment, country (ISO 3166-1 alpha-2, e.g. "DE") or exact category slug. Each result is a public shop profile (name, canonical domain, country, category); the source-dated facts on returns, shipping and payment methods are available through a separate per-shop policy lookup. Not a product or price search. Returns the public shop view only; shops still under internal review are not returned. `results` carries at most `limit` entries (default 50, max 100); `total_count` is the full match count before that cap and `truncated` is true when more results exist beyond the page (`offset`, default 0, selects the page). Multi-word queries are matched conjunctively: every word must be evidenced on a shop (name, domain or category). `ignored_terms` lists the words that matched nothing anywhere in the corpus and were therefore dropped to avoid an empty answer; a non-empty `ignored_terms` means the results answer a narrower question than the one asked. `match_quality` states how well the query was evidenced: "full" (every word found as a name/domain/category fragment; this is evidence of a fragment, not of relevance, and results are not ranked), "partial" (some words are in `ignored_terms`; the results answer a narrower question), "none" (no match). For "partial" and "none", `suggestions` carries hints instead of a guess: `categories` (known category slugs; German words like "schuhe" are mapped) and `shops` (domains within typo distance, e.g. "bergzeitt" -> bergzeit.de); both are empty for "full". `category_truncated` is true when category resolution hit its internal cap and the match set is a subset. `category` accepts only a slug from the shop category taxonomy; an unrecognized slug is rejected with an error and does not yield a silent empty `results`. `category` is additive to `query` (AND, not OR); `query: ""` browses a category without a name/domain filter.

輸入參數limitquery必填offsetcountrycategory

list_categories

List categories

List the shop categories OpenShopGraph carries (for example fashion or electronics), to filter the shop search by category. The taxonomy: every category slug currently carried by at least one public shop, together with how many public shops carry it. The taxonomy is flat (no parent/child hierarchy, e.g. "fashion" and "womens-clothing" are siblings, not nested) and its slugs come from observed data, not from a fixed enum, so the set of slugs is known only from this response. The `category` filter of the shop search accepts only slugs from this response. A shop can carry more than one category, so the counts can add up to more than the number of shops.

無需輸入參數。

get_shop

Get shop facts

Get the public profile of one online shop by domain or id (name, canonical domain, country, category) and how many of its policy facts are sourced (`fields_belegt`); the facts on returns, shipping and payment methods are available through the separate policy lookup. Public view. Answers "shop not found" for shops still under internal review, identical to a genuinely unknown domain, so reviewers cannot be distinguished from typos. The offers array is present for schema stability and is empty for shops without ingested merchant offers. `fields_belegt` ("n/m") counts how many of the shop's policy facts carry a checked, sourced value, out of the m policy facts tracked per shop.

輸入參數shop_domain必填

list_coupons

List coupons

List currently usable, source-dated discount codes for online shops, with verification status and what was withheld and why (an extra next to the shop facts). Optionally filtered by shop_domain (e.g. "otto.de"). A code is withheld from `results` when it is EXPIRED (valid_until has passed), when a real checkout test PROVED it does not work (verification_status "verified_rejected"), or when a display policy suppresses it on this channel/country. Nothing is withheld silently: `total_count` is the REAL number of codes the query found before any of that (for the collection list the full count over everything, not just the window), `examined` is how many codes this request looked at, and `withheld` breaks the difference down by reason ({expired, verified_rejected, reserved_test_domain, policy}); examined minus results.length equals the sum of `withheld`, and `note` states the same balance in one sentence. WITHOUT shop_domain the answer is one window of at most `limit` codes (default 100, max 100) starting at `offset` (default 0), ordered by a stable id: `truncated` is true when more codes lie beyond it and `next_offset` is the offset of the next page (null on the last page), so `truncated: false` marks the last page. limit/offset are rejected together with shop_domain, which already returns every code of that shop. An empty `results` is explained by `total_count` and `note`, which tell "this shop has no codes at all" apart from "it has codes and every one of them is proven dead". An UNKNOWN or internal-review shop_domain is a different answer again: it is an error ("shop not found"), not an empty list; and a backend failure is reported as a failure, not as an empty list. Each result carries validUntil: an ISO timestamp when the code has a stated expiry, or null when it is open-ended; null means unlimited, NOT unknown-and-expired, and a stated expiry can pass after the response was produced. Each result ALSO carries verificationStatus, the verdict of a real checkout test a

輸入參數limitoffsetshop_domain

get_shop_policies

Get shop policies

What a shop STATES about its own policies, each fact with the date it was last checked and where it was read: return window in days (returns_days), free return label, tracking offered, payment methods, buyer-protection seal, plus the shipping statement (destinations, stated delivery time, free-shipping threshold). Answers questions such as "how long can I return something at this shop?". These are shop-level statements, NOT offers and NOT quotes: no carrier, no shipping price. Every fact in `policies` is an object with `collected`: when true it carries value, checked_at and source (policy_page = read from the shop, llm_gap_resolution = model-derived, not read from the shop); when false it carries a reason and means OpenShopGraph holds no checked value, a gap in the data and NOT a statement that the shop has no such policy. A fact whose value and check date are stored but whose source is unknown is also reported as collected:false (reason no_source): a value without a source is not shown. The optional country (ISO 3166-1 alpha-2, e.g. "DE") adds a ships_to verdict derived from the stated destination list; "unknown" is a real answer there. `checked_at` is the date a figure was last checked and marks how current a stated claim is.

輸入參數countryshop_domain必填

get_shipping_policy

Get shipping policy

What a shop STATES about its own shipping: which destinations it names, the delivery time it claims, and any free-shipping threshold, plus the date that statement was last checked and where it was read (policy_page or structured_data). This is a shop-level statement, NOT an offer and NOT a quote: it carries no carrier and no shipping price, because OpenShopGraph does not hold that data. The optional country (ISO 3166-1 alpha-2, e.g. "DE") adds a ships_to verdict derived from the stated destination list; "unknown" is a real answer there and means the statement does not settle it. When nothing has been collected for a shop, the reply says so explicitly (collected:false): a gap in the data, not a statement that the shop does not ship. The checked-at date marks how current the merchant's claim is.

輸入參數countryshop_domain必填

版本歷史

2
  1. v0.1.3最新Oct 29, 2026
  2. v0.1.1Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。