# Forage Shopping

> AI shopping comparison — search 50M+ products, compare prices, find deals

- name: io.github.jalexspringer/forage-shopping
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 82/100
- quality: 73/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.jalexspringer%2Fforage-shopping
- tools: https://api.protogrid.dev/v1/servers/io.github.jalexspringer%2Fforage-shopping/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "forage-shopping": {
      "type": "http",
      "url": "https://forageshopping.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 45
- provenance: 75
- drivers: +repository +website +reachable +uptime-100% -stale-241d
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: compare_prices (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); find_deals (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_products (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,324 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 14 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,324 tokens to load them all
- tool set hash: 9fde90696804381c3b7a807bc50e5085
- tools last changed: 2026-10-12T09:34:24.470Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.jalexspringer/forage-shopping.svg)](https://protogrid.dev/servers/io.github.jalexspringer/forage-shopping)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-12 `check_order` added
  - Check the status of a checkout session or order. Use this after the user has completed an escalation step (e.g. payment in the browser) to see if the checkout can now proceed, or to check on a completed order's status.
- 2026-10-12 `complete_purchase` added
  - Complete a checkout and place the order. Only call this when the checkout status is 'ready_for_complete'. Records the purchase as a conversion in telemetry and ends the attribution session. Returns the order confirmation with order ID and receipt link.
- 2026-10-12 `update_checkout_info` added
  - Update a checkout session with buyer information. Provide the information the merchant requested (email, name, shipping address, discount codes). Call this after start_checkout when the merchant indicates what information is still needed. If the response has status 'requires_escalation', share the continue_url with the user so they can complete payment in their browser.
- 2026-10-12 `start_checkout` added
  - Start a UCP checkout session for a product. Discovers the merchant's UCP capabilities, creates a checkout session, and attaches content attribution data from the current session's search and comparison activity. Returns the checkout status and any information the merchant still needs (email, shipping address, etc).
- 2026-10-12 `find_deals` added
  - Find the best current deals in a product category. Searches for discounted, on-sale, or best-value products.
- 2026-10-12 `compare_prices` added
  - Compare prices for a specific product across multiple merchants. Finds the same product at different retailers and shows price differences.
- 2026-10-12 `search_products` added
  - Search for products across merchants and return comparison results. Returns structured product listings with prices, merchants, and checkout links. Searches Shopify's global catalogue (50M+ products across all Shopify merchants) and Channel3's affiliate network. Results include direct checkout links.
- 2026-10-12 `compare_prices` removed
  - Compare prices for a specific product across multiple merchants. Finds the same product at different retailers and shows price differences.
- 2026-10-12 `check_order` removed
  - Check the status of a checkout session or order. Use this after the user has completed an escalation step (e.g. payment in the browser) to see if the checkout can now proceed, or to check on a completed order's status.
- 2026-10-12 `find_deals` removed
  - Find the best current deals in a product category. Searches for discounted, on-sale, or best-value products.

Full history: https://api.protogrid.dev/v1/servers/io.github.jalexspringer%2Fforage-shopping/changes

## Remotes

- https://forageshopping.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `check_order`: Check the status of a checkout session or order.

Use this after the user has completed an escalation step (e.g. payment
in the browser) to see if the checkout can now proceed, or to check
on a completed order's status.

- `compare_prices`: Compare prices for a specific product across multiple merchants.

Finds the same product at different retailers and shows price differences.

- `complete_purchase`: Complete a checkout and place the order.

Only call this when the checkout status is 'ready_for_complete'.
Records the purchase as a conversion in telemetry and ends the
attribution session.

Returns the order confirmation with order ID and receipt link.

- `find_deals`: Find the best current deals in a product category.

Searches for discounted, on-sale, or best-value products.

- `search_products`: Search for products across merchants and return comparison results.

Returns structured product listings with prices, merchants, and checkout links.
Searches Shopify's global catalogue (50M+ products across all Shopify merchants)
and Channel3's affiliate network. Results include direct checkout links.

- `start_checkout`: Start a UCP checkout session for a product.

Discovers the merchant's UCP capabilities, creates a checkout session,
and attaches content attribution data from the current session's search
and comparison activity.

Returns the checkout status and any information the merchant still needs
(email, shipping address, etc).

- `update_checkout_info`: Update a checkout session with buyer information.

Provide the information the merchant requested (email, name, shipping
address, discount codes). Call this after start_checkout when the
merchant indicates what information is still needed.

If the response has status 'requires_escalation', share the continue_url
with the user so they can complete payment in their browser.

