ShelfSignal

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.3.1更新於 Nov 2, 2026

The open store index for AI agents: merchants list real stock, agents find local food and stores.

已驗證STDIO僅桌面位置與生活商業與電商

概覽

AI 產生的概覽

ShelfSignal 是本地 MCP 伺服器,介接由商家自行提交的在地店家索引,讓助理查找店家與商品並評估庫存可能性。

可以做什麼
  • 依文字、城市、類別或類型搜尋店家,並依經緯度列出附近店家,附上距離與是否營業的訊號
  • 跨已收錄店家查找特定食品或商品,每筆結果都帶有庫存判定
  • 讀取單一店家的完整資訊:營業時間、地址、履約方式,以及每項商品最近確認的庫存狀態
  • 評估某店家目前有某項商品的可能性,回傳 0-100 分數、等級與理由
  • 對店家資訊執行驗證檢查並回傳憑證,含等級、分數與逐項證據;預覽商家提交內容但不發布
  • 查看索引目前涵蓋的城市與類別及店家數量
適用情境
適合需要向使用者推薦真實在地店家或餐廳、在請人跑一趟之前確認某項商品是否可能有貨,或在推薦前核實店家資訊可靠度的情境。也可用來預覽商家提交內容及其驗證憑證。
執行需求
以本機 stdio 程序執行,可透過 npx 使用 npm 套件,或使用已發布的容器映像;容器方式需要 Docker。未宣告任何驗證、環境變數或標頭。內建店家為範例資料,並標記為 demo。
安裝前請注意
庫存結果是評分估算而非保證;伺服器本身要求不得把 uncertain 或 unlikely 的判定當成有貨呈現。店家資訊由商家提交,準確度取決於商家是否即時更新庫存。submit_store 只做驗證與預覽,不收費也不發布,但 README 提到商家需一次性支付 100 美元上架費。demo 店家為範例資料,不應當作真實店家呈現。

安裝

在 SourceWeft 中

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

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ShelfSignal

The open store index for AI agents.

Local merchants list what they actually sell. AI agents find real food and real products nearby, score how likely each item is actually in stock, and check a validation receipt before they send a human across town. Merchants pay one flat price to get listed. Nobody takes 30% of their food.

DoorDash and the delivery apps built a closed index: they own the customer, scrape or rent the menu, charge the merchant 15-30% per order, and still cannot tell you whether the kitchen has the thing you want. ShelfSignal is the opposite shape:

  • Merchant-owned listing. The store submits its own stuff, its own prices, its own stock. The listing belongs to the merchant, not the platform.
  • Built for agents, not ads. One MCP server any agent can query: find stores, find items, check stock, validate the listing. No sponsored placement, ever.
  • Stock is a scored signal, not a claim. Every item carries a last-confirmed date. The likelihood engine turns that evidence into a 0-100 score with printed reasons, so agents stop bluffing "they have it" and start saying "confirmed today, likely in stock."
  • Validation receipts. Every listing carries checks an agent can verify: complete profile, real prices, fresh inventory, declared fulfillment. Tier: VERIFIED, LISTED, STALE, or INCOMPLETE.
  • Flat money. $100 Starter Store, one time, listed and validated. No per-order commission. See docs/PRICING.md. Merchants can join by email: docs/EMAIL-INTAKE.md.

Quick start

bash
npm installnpm run buildnpm test
node dist/cli.js coveragenode dist/cli.js search "birria" --city "San Francisco"node dist/cli.js stock sf-mission-taqueria-demo "Birria tacos"node dist/cli.js nearby 37.7599 -122.4148 --radius 5node dist/cli.js ping sf-sunset-bakery-demo "Cardamom knot" innode dist/cli.js validate sf-mission-taqueria-demonode dist/cli.js doctornode dist/cli.js mcp        # run the MCP server (stdio)node dist/cli.js serve      # run the hosted registry API (http://0.0.0.0:8787)

Hosted registry API

A read-only HTTP API over the same registry, for agents and clients that do not speak MCP:

bash
curl localhost:8787/v1/stores?city=San%20Franciscocurl localhost:8787/v1/stores/sf-mission-taqueria-democurl "localhost:8787/v1/search?q=birria"

Only listings in the live state are served: listings still in the intake queue are excluded from list and search, and their detail route returns 404. Full reference: docs/API.md.

MCP tools

ToolWhat it does
search_storesFind stores by text, city, category, or type (with open-now signal)
find_nearbyStores near a lat/lng point, nearest first, with distance and open-now
search_itemsFind a food or product across stores, every hit carrying its stock verdict
get_storeFull listing: hours, address, fulfillment, items, stock
check_stockStock-likelihood verdict (score, band, reasons) for one item
validate_storeValidation receipt and tier for one listing
submit_storeValidate a merchant intake and preview its listing + receipt
list_coverageCities, categories, and store count in the index

For merchants

You run a store in the city. For $100 you get listed where the agents look:

  1. Fill the intake (10 minutes): who you are, where you are, your hours, and the stuff you sell with real prices. Template: examples/submission.example.json, field guide: docs/INTAKE.md.
  2. We validate it and your listing goes live with its first receipt.
  3. Update stock whenever it changes with one command or one message. Fresh listings rank as VERIFIED; stale ones decay honestly instead of lying to customers.

No commission. No tablet on your counter. No competing with your own listing.

How it works

  • The registry is the source of truth: registry/stores.json (v0.1, git-backed, every change reviewable).
  • The likelihood engine is deterministic: merchant-reported status, confirmation freshness, staple vs specialty. No model guesses.
  • The management layer is freshness: listings decay, validation re-runs on every read, and merchants see exactly what an agent sees. Roadmap in docs/MANAGEMENT.md.
  • Full design: docs/SPEC.md. Why this beats the delivery model: docs/VS-DOORDASH.md.

Bundled stores are sample data and are flagged demo: true in every response. Real merchants are never marked demo, and demo stores are never presented as real.

License

MIT

來源:README.md,提交 e472708

工具

8

search_stores

Find real local stores (restaurants, groceries, bakeries, bodegas, markets) in a city. Returns merchant-submitted listings, not scraped delivery-app menus.

輸入參數citytypequerycategory

find_nearby

Find listed stores near a point (lat/lng), nearest first, each with distance in km and an open-now signal (null when the store has no structured hours: unknown, not a guess).

輸入參數lat必填lng必填radius_km

search_items

Find a specific food or product across listed stores, e.g. 'birria tacos' or 'oat milk'. Every hit carries its stock verdict (score, band, reasons), best evidence first. Never present an 'uncertain' or 'unlikely' verdict to a human as available.

輸入參數cityquery必填

get_store

Full listing for one store by registry id: hours, address, fulfillment, and every item with its last-confirmed stock status.

輸入參數store_id必填

check_stock

Score how likely a store actually has an item right now. Returns a 0-100 score, a band (likely / probable / uncertain / unlikely), and the reasons. Never present an 'uncertain' or 'unlikely' verdict to a human as available.

輸入參數item必填store_id必填

validate_store

Run the ShelfSignal validation checks on a listing and return its receipt: tier (VERIFIED / LISTED / STALE / INCOMPLETE), score, and every check with its evidence. Use this before recommending a store you have not used before.

輸入參數store_id必填

submit_store

Validate a merchant submission (the $100 Starter Store intake) and preview exactly how it would appear in the registry, with its validation receipt. Does not charge anything and does not publish until the listing is merged into the registry.

輸入參數submission必填

list_coverage

Which cities and categories the index currently covers, with store counts. Check coverage before promising a human you can search somewhere.

無需輸入參數。

版本歷史

2
  1. v0.3.1最新Oct 26, 2026
  2. v0.3.0Oct 26, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分