Storefront Guard

io.github.maxigirl123Published by GitHub account maxigirl123v0.3.2Updated Oct 25, 2026

Verifies a merchant storefront is legitimate before an AI agent commits payment.

Overview

AI-generated overview

A local MCP server that checks whether an online storefront looks legitimate before an AI shopping agent pays, returning a trust score and a plain-English go/no

What you can do
Verify a storefront domain and get back a trust score, a recommendation (proceed, pause for confirmation, or do not proceed) and a list of plain-English reasons for each deduction. Check domain registration age and recent changes, SSL certificate history and current HTTPS validity. Cross-check known-scam blocklists, corporate registration, legal-name registries, web traffic rank, federal exclusions and FDA enforcement. Optionally submit transaction outcome feedback to a local log.
When to use it
Use it when an assistant is about to complete a purchase on an unfamiliar merchant site and you want an explainable trust signal first. It is aimed at agentic shopping and checkout flows rather than general web browsing.
Requirements
Runs locally as a Node.js 18+ npm package over stdio. Optional API keys GOOGLE_SAFE_BROWSING_API_KEY, SAM_GOV_API_KEY and URLHAUS_AUTH_KEY improve coverage but are not required. Network access is needed for the public lookups. The README also documents optional HTTP, x402 and REST modes with extra variables such as PAY_TO_ADDRESS and API_KEYS.
Before you install
The verdict is a heuristic based on public sources, not a guarantee of merchant legitimacy; treat it as one signal. The optional x402 mode charges per call in USDC and needs a wallet address in PAY_TO_ADDRESS. The feedback endpoint records domain and outcome data to a local file. Optional keys are secrets and should be kept out of shared config.

Installation

In SourceWeft

  1. Open Storefront Guard in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Fortik

Real-time merchant verification for agentic commerce. A shopping agent calls verify_storefront with a domain before paying, and gets back a trust score with a plain-English verdict the agent can act on — in under two seconds.

Fortik is the trust check AI shopping agents run before checkout. It doesn't ask merchants to register in advance — it gathers evidence directly, in the moment, from independent public sources.

fortik.io

This is the mirror image of merchant-side agent-verification protocols like Visa's Trusted Agent Protocol: those let a merchant confirm an incoming agent is legitimate. Fortik lets the agent confirm the merchant is legitimate before committing payment.

What it checks

  • Domain registration age & recent changes — via free public RDAP lookups. A domain registered days ago, or one whose registration data changed in the last two weeks, is a red flag.
  • SSL certificate issuance history — via free public Certificate Transparency logs (crt.sh). A cert reissued very recently on an otherwise long-established domain can indicate a takeover or hosting change, even when the domain itself looks old and trustworthy.
  • HTTPS validity — does the site currently serve a valid cert at all.
  • Known-scam blocklist — URLhaus and Google Safe Browsing.
  • Corporate registration — US entity lookup via OpenCorporates.
  • Legal name verification — GLEIF entity registry cross-check.
  • Web traffic rank — Tranco top-1M ranking.
  • Federal exclusions — SAM.gov debarment check.
  • FDA enforcement — corroborating signal when other risks are present.

Every deduction from the trust score comes with a plain-English reason in the reasons array — this is deliberately an explainable heuristic, not a black-box model.

Setup

Requires Node.js 18+.

bash
npm installnpm run build

Copy .env.example to .env and fill in your keys.

Running it

As a local MCP server (stdio):

bash
npm start

As a remote MCP server (streamable HTTP) with x402 payment:

bash
npm run start:http# POST http://localhost:3000/mcp

As a pay-per-call x402 HTTP API:

bash
npm run start:x402# POST http://localhost:4021/verify   { "domain": "example-shop.com" }

As a REST API (API key auth):

bash
npm run start:rest# POST http://localhost:4022/verify   { "domain": "example-shop.com" }# Header: X-API-KEY: your-key

All three servers at once:

bash
npm run start:all# MCP:  http://localhost:3000/mcp# x402: http://localhost:4021/verify# REST: http://localhost:4022/verify

Feedback endpoint

Submit outcome data after a transaction to help build training data for future ML scoring:

bash
POST http://localhost:4022/feedbackHeader: X-API-KEY: your-keyBody: { "domain": "example-shop.com", "outcome": "legit" | "scam" }

How to use the recommendation field

Every verification result includes a top-level recommendation string alongside the numeric trustScore. Agents should branch on it rather than implementing their own threshold logic against the raw score.

ValueSuggested agent behavior
proceedComplete the transaction silently. Trust score is low-risk with high confidence.
pause_for_confirmationStop before paying and show recommendationReason to the user.
do_not_proceedBlock the transaction and actively notify the user — do not fail silently.

recommendationReason is a one-line plain-English explanation safe to show directly to users.

Pricing

$0.01/call via x402. Set your wallet address in PAY_TO_ADDRESS and network in X402_NETWORK (default: base).

Environment variables

VariableRequiredDescription
PAY_TO_ADDRESSYes (x402)Your wallet address for USDC payments
X402_NETWORKNoBlockchain network (default: base)
PRICE_USDNoPer-call price (default: 0.01)
API_KEYSYes (REST)Comma-separated valid API keys
GOOGLE_SAFE_BROWSING_API_KEYNoDegrades gracefully if unset
SAM_GOV_API_KEYNoDegrades gracefully if unset
URLHAUS_AUTH_KEYNoDegrades gracefully if unset
FEEDBACK_LOGNoPath for feedback JSONL log (default: feedback.jsonl)
MCP_PORTNoMCP server port (default: 3000)
X402_PORTNox402 server port (default: 4021)
REST_PORTNoREST API port (default: 4022)

Source: README.md at commit 7989b5f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.2LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.