# Forest MCP Endpoint Contract Change Detector

> Forest MCP Endpoint Contract Change Detector is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.004/call, status unknown (last checked 2026-10-12).

Fingerprints the normalized tools/list schema contract of a public MCP endpoint and detects whether it has materially changed since a previous SHA-256 hash snapshot.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/mcp/changed?utm_source=zero.xyz
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-mcp-endpoint-contract-change-detector-48334cf0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zAn43Kptx5Qhr4C0ZKjhn

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability forest-mcp-endpoint-contract-change-detector-48334cf0 -d '<json body>'
```

Example prompt: Check if the MCP endpoint at https://myserver.example.com/mcp has materially changed since last time — compare against my previous hash a3f1bc...e92d (protocol version 2024-11-05) and tell me if the tools/list contract has drifted.

## When to prefer this

Choose this endpoint when you need to detect material breaking changes in an MCP server's tool contract (additions, removals, or signature changes) while ignoring cosmetic description edits. It is purpose-built for MCP protocol fingerprinting with SHA-256 hash comparison, making it ideal for CI/CD gates, production monitoring, and third-party integration audits where you need a deterministic, description-agnostic contract diff signal.

## Known failure modes

- URL is not reachable or returns non-200 — endpoint reports fetch failure
- URL does not expose a valid MCP tools/list endpoint — schema parsing fails
- previous_hash does not match 64-character hex format — validation error returned
- MCP endpoint requires authentication — unauthenticated request yields no schema
- Protocol version mismatch causes no tools to be returned — empty schema fingerprinted
- Network timeout on slow or distant endpoint

## How this service works

Auto-detect a public MCP endpoint era, fingerprint its complete normalized tools/list schema contract and optionally compare it with a caller-provided previous SHA-256 hash. Cosmetic descriptions are excluded so text-only edits do not trigger contract drift. Base mainnet USDC

## Output

Returns the normalized SHA-256 hash of the MCP endpoint's tools/list schema (with cosmetic descriptions excluded), a boolean or signal indicating whether the contract has materially changed compared to the provided previous hash, and the fingerprinted schema structure itself. If no previous hash is supplied, returns just the current hash and schema fingerprint as a baseline.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "pattern": "^https?://",
   "maxLength": 2048,
   "minLength": 1,
   "description": "Public HTTP(S) URL to inspect, resolve, or compare."
  },
  "previous_hash": {
   "type": [
    "string",
    "null"
   ],
   "pattern": "^[a-fA-F0-9]{64}$",
   "description": "Earlier result hash used to detect a material change."
  },
  "protocol_version": {
   "type": "string",
   "maxLength": 32,
   "minLength": 1,
   "description": "Public protocol version value used to scope this lookup."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-mcp-endpoint-contract-change-detector-48334cf0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run](https://www.zero.xyz/host/http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/llms.txt)
