# JENNi Shop — Local & Nationwide AI Commerce (remote · shop.jennipro.com)

Search live local & nationwide retail stock, check prices, and run zero-click AI agent checkouts.

- Trust score: 67/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `shop.jennipro.com`: 67/100 (this document), [markdown](https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop.md), [page](https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop)

## Channel facts

- Endpoint: `https://shop.jennipro.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 77/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1205 tokens (~241/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 3 days we've observed: 1 tool removals, 1 breaking changes, 0 auth/transport breaks, 1 additions.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 65% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the JENNi Shop — Local & Nationwide AI Commerce MCP server?

JENNi Shop — Local & Nationwide AI Commerce is a hosted endpoint at https://shop.jennipro.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http jennipro-engineering-ghost-market-web 'https://shop.jennipro.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "jennipro-engineering-ghost-market-web": {
      "url": "https://shop.jennipro.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "jennipro-engineering-ghost-market-web": {
      "type": "http",
      "url": "https://shop.jennipro.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.jennipro-engineering-ghost-market-web]
url = "https://shop.jennipro.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jennipro-engineering-ghost-market-web": {
      "type": "remote",
      "url": "https://shop.jennipro.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add jennipro-engineering-ghost-market-web --url 'https://shop.jennipro.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  jennipro-engineering-ghost-market-web:
    url: "https://shop.jennipro.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "jennipro-engineering-ghost-market-web": {
      "Transport": "http",
      "Url": "https://shop.jennipro.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add jennipro-engineering-ghost-market-web -t streamable-http -u 'https://shop.jennipro.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "jennipro-engineering-ghost-market-web": {
      "type": "http",
      "url": "https://shop.jennipro.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 67, −1)

- [security regression] A breaking change shipped without a version bump: still 2026-08-25
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_product” rewrote its description, which is the text the model reads
- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [security] Tool “start_checkout” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 94% → 65%
- [functional regression] Schema quality: 1012 → 1205
- [functional regression] “start_checkout” added a required parameter “fulfillment_mode”, so existing callers break
- [functional regression] “start_checkout” made “quantity” required, so existing callers break
- [functional] Schema quality: excellent → good
- [functional] New tool “get_buying_options”
- [cosmetic] “get_product” added an optional parameter “postal_code”
- [cosmetic] “search_catalog” added an optional parameter “brand”
- [cosmetic] “search_catalog” added an optional parameter “cursor”
- [cosmetic] “search_catalog” added an optional parameter “gtin”
- [cosmetic] “search_catalog” added an optional parameter “postal_code”
- [cosmetic] “search_catalog” added an optional parameter “product_id”
- [cosmetic] “search_catalog” added an optional parameter “store_ids”
- [cosmetic] “get_product” reworded the description of “zip”
- [cosmetic] “search_catalog” reworded the description of “limit”
- [cosmetic] “search_catalog” reworded the description of “query”
- [cosmetic] “search_catalog” reworded the description of “store_id”
- [cosmetic] “search_catalog” reworded the description of “zip”
- [cosmetic] “get_product” dropped the optional parameter “market”
- [cosmetic] “search_catalog” dropped the optional parameter “market”
- [cosmetic] “search_catalog” made “query” optional

### 2026-10-17 (score 68, −1)

- [security regression] Stability: 0.03 → fail
- [security regression] A breaking change shipped without a version bump: still 2026-08-25
- [security regression] Tool “complete_checkout” was removed
- [functional regression] Schema quality: 230 → 253
- [functional] Schema quality: good → excellent
- [functional] Destructive annotations: 100 → pass

### 2026-10-16 (score 69, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-15 (score 68)

First indexed and scored.

## MCP tools (5)

### `search_catalog` (~207 tokens)

Search local shops

Complete canonical product discovery, read-only. Use get_buying_options for the selected exact product. Nullable titles, empty images/offers, unknown stock remain visible. Discovery never authorizes checkout; completion is unavailable. Store filters are rejected; postal context never filters facts.

Input parameters:

- `brand` (string)
- `cursor` (string): Confidential opaque upstream continuation; forward unchanged with the same selectors and limit.
- `gtin` (string)
- `limit` (integer)
- `postal_code` (string): Optional echoed caller context only; never filters facts.
- `product_id` (string)
- `query` (string): Optional title, brand, UPC or GTIN keyword. Omit to enumerate approved root catalog facts.
- `store_id` (string): Unsupported for catalog facts; nonempty store filters are rejected.
- `store_ids` (array): Empty normalizes to absent; store filtering is unsupported.
- `zip` (string): Optional echoed caller context only; never filters facts.

Output parameters:

- `catalog_authority` (object)
- `contract_version` (string)
- `exhausted` (boolean)
- `items` (array)
- `mode` (string)
- `next_cursor` (string|null)
- `offer_policy` (object)
- `requested_context` (object)
- `snapshot_semantics` (string)
- `source_observed_at` (string)

### `find_stores` (~148 tokens)

Find a shop

Local shops by name, near a US ZIP code or a served market. Read-only. Returns each shop's store_id (pass it to search_catalog to search only that shop), address and storefront url. A listing here proves no stock: search_catalog says what is on the shelf.

Input parameters:

- `limit` (integer): Shops to return (default 10).
- `market` (string): Market key, e.g. san-antonio-tx. Used when no zip is given.
- `name` (string, required): Shop name or part of it, e.g. "Cheeky Monkey".
- `zip` (string): 5-digit US ZIP code: matching shops nearest it come first.

Output parameters:

- `location` (string|null)
- `name` (string)
- `next_step` (string): Present when no shop matched.
- `partial` (boolean): True when not every listed shop could be compared.
- `stores` (array)

### `get_product` (~102 tokens)

Product details

Complete canonical product discovery, read-only. Use get_buying_options for the selected exact product. Nullable titles, empty images/offers, unknown stock remain visible. Discovery never authorizes checkout; completion is unavailable. Store filters are rejected; postal context never filters facts.

Input parameters:

- `postal_code` (string): Optional echoed caller context only; never filters facts.
- `product_id` (string, required)
- `zip` (string): Optional echoed caller context only; never filters facts.

Output parameters:

- `catalog_authority` (object)
- `contract_version` (string)
- `exhausted` (boolean)
- `items` (array)
- `mode` (string)
- `next_cursor` (string|null)
- `offer_policy` (object)
- `requested_context` (object)
- `snapshot_semantics` (string)
- `source_observed_at` (string)

### `start_checkout` (~247 tokens)

Start checkout

Call when the shopper has chosen to buy: the exact product_id (a variant's when it has sizes or colours), the store_id of an offer with is_eligible_checkout true, a quantity and their ZIP. Re-checks the offer at that quantity and returns checkout_url: JENNi checkout with that item added to the shopper's basket, where they enter email, name, address and card and see delivery, tax and the total; nothing is charged until they place the order. For a concierge offer it returns the product page, which places a shopper request as a pending hold during the shop's hours. After get_buying_options retain its exact quantity, ZIP and fulfillment_mode.

Input parameters:

- `fulfillment_mode` (string, required): Retain the mode chosen from get_buying_options.
- `product_id` (string, required): The exact item: a variant's product_id when it has variants.
- `quantity` (integer, required): How many (default 1).
- `store_id` (string, required): store_id of an offer with is_eligible_checkout true, or a concierge offer.
- `zip` (string, required): 5-digit US ZIP code the order is delivered to, e.g. 78205.

Output parameters:

- `checkout_url` (string)
- `item` (string)
- `kind` (string)
- `next_step` (string)
- `quantity` (integer)
- `store_name` (string|null)
- `unit_price` (string|null): The shelf price the page shows; checkout states the total.

### `get_buying_options` (~96 tokens)

Check price and delivery

Read verified buying options for the exact product, destination, quantity and fulfillment mode. Empty offers mean no options verified for this request, not that the product does not exist. Choose an eligible store, then start_checkout with the same context; the buyer approves and pays in hosted checkout.

Input parameters:

- `fulfillment_mode` (string, required)
- `product_id` (string, required)
- `quantity` (integer, required)
- `zip` (string, required)

Output parameters:

- `product` (object)
- `requested_context` (object)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop#diagnostics

## Score history

- 2026-10-18: 67
- 2026-10-17: 68
- 2026-10-16: 69
- 2026-10-15: 68

## Common questions

### What is the JENNi Shop — Local & Nationwide AI Commerce MCP server?

JENNi Shop — Local & Nationwide AI Commerce is an MCP server listed in the public MCP registry as io.github.jennipro-engineering/ghost-market-web. Search live local & nationwide retail stock, check prices, and run zero-click AI agent checkouts. This page covers its hosted endpoint (https://shop.jennipro.com/mcp).

### Is the JENNi Shop — Local & Nationwide AI Commerce MCP server safe to use?

JENNi Shop — Local & Nationwide AI Commerce scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the JENNi Shop — Local & Nationwide AI Commerce MCP server expose?

JENNi Shop — Local & Nationwide AI Commerce exposes 5 tools: search_catalog, find_stores, get_product, start_checkout, get_buying_options. Their descriptions and schemas cost roughly 800 tokens of context every time the server is loaded.

### Does the JENNi Shop — Local & Nationwide AI Commerce MCP server require authentication?

No. We connected to JENNi Shop — Local & Nationwide AI Commerce without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the JENNi Shop — Local & Nationwide AI Commerce MCP server still maintained?

JENNi Shop — Local & Nationwide AI Commerce is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://shop.jennipro.com/mcp
- Repository: https://github.com/jennipro-engineering/ghost-market-web
- Website: https://shop.jennipro.com/
- Changelog RSS feed: https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop.xml
- Changelog JSON feed: https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop.json
- HTML version of this page: https://verifymcp.io/servers/jennipro-engineering-ghost-market-web/shop
