# PriceMoved

> Waitlist-stage pricing-page monitor: plans and early pricing, plus a PriceMovedBot robots.txt check.

- name: com.pricemoved/pricemoved
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 100/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.pricemoved%2Fpricemoved
- tools: https://api.protogrid.dev/v1/servers/com.pricemoved%2Fpricemoved/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "pricemoved": {
      "type": "http",
      "url": "https://pricemoved.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 100/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### 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: 100 (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
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 350 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

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

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

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

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

- tools: 2, about 350 tokens to load them all
- tool set hash: ab2c2cacf9c6b17270e99c545e1150fd
- badge: [![protogrid quality](https://protogrid.dev/badge/com.pricemoved/pricemoved.svg)](https://protogrid.dev/servers/com.pricemoved/pricemoved)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

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

## Packages

_none_

## Tools (2)

- `product_info`: Facts about PriceMoved, a pricing-page change monitor that is waitlist-only today: what is available now, the planned Free/Starter/Pro plans (pages, check intervals, Slack, history) with early USD prices that are subject to change, the crawler user agent, and links to the waitlist, privacy policy and terms. No network calls. Same data as GET /api/product.
- `robots_check`: Fetch the robots.txt of the given public http(s) URL's site (at most 500 KiB, 5 s timeout, redirects followed) and report whether PriceMovedBot is allowed to fetch that URL under RFC 9309 rules: verdict allowed, disallowed, or skipped (robots.txt unreachable, 5xx/429, or too complex: PriceMoved would not fetch). Does not fetch the page itself. Domain names only (no IP addresses or ports). About 10 checks per minute and 30 per hour per network; results cached 10 minutes. Same engine as GET /api/robots-check.
