Skip to main content
Glama

Fresh402 Agent Intelligence

fresh402_check

Use a persistent watch to decide whether a public document needs rereading. Returns changed/unchanged, hash, observation/cache status and optional compact text diff; it does not schedule monitoring. Supply exactly one url or real watch_id. URL plus content rules can create a watch; watch_id reuses saved rules, so omit rule overrides. Reuse returned watch_id/hash across sessions. A first URL observation without prior state reports changed:null. max_age_seconds>0 permits cached evidence at the same per-call price;0 revalidates the source, possibly with conditional304. Optional html_attributes on a new URL watch detects selected same-text attribute/link changes. Use Smart Diff for structured changes, or direct HTTP if you already maintain this state. Public HTTPS only; no JavaScript. Paid price $0.005 USDC on Base mainnet (eip155:8453). Requires an x402-capable MCP payment client and funded native-USDC payer; ordinary MCP returns a payment challenge. Native MPP is optional only when root mpp_payments.enabled: official mppx, org.paymentauth/credential and a private recovery token. Prepaid uses X-Fresh402-API-Key plus params._meta["fresh402/prepaid"] {idempotency_key,tariff_version,max_credits}; inspect the authenticated quote. Never mix billing methods or automatically pay. Persist original proof/input/recovery material before authorizing; recover originals after uncertainty. Optional Circle Gateway requires root circle_gateway.enabled and its GatewayWalletBatched client; preserve pending originals, never mix providers. Protocol details: https://fresh402.com/docs#payments. Optional free trial: inspect /v3/agent-trial (unfunded EOA ownership signature, no CAPTCHA); Web tools also support the separate human trial at /v2/trial. Eligibility and shared capacity apply;429 may precede quota exhaustion. Send only X-Fresh402-Trial-Key plus a persisted Idempotency-Key per logical REST/MCP call; reuse the same tool/input/key for retained recovery. Exhaustion never authorizes a charge.

Input Schema

NameRequiredDescriptionDefault
urlNoSupply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering.
selectorNoOptional HTML CSS scope, 1-256 characters, e.g. 'main'; accepted only with url. Omit for the page after built-in noise removal. No match returns 422; not supported for JSON/plain text. With watch_id, omit this field: the saved selector is reused.
watch_idNoSupply exactly one of watch_id or url. An existing ID returned by fresh402_register (free), POST /v1/register, or a URL-based Check: 'w_' followed by 32 lowercase hexadecimal characters. Reuses that watch's stored URL and rules. When supplied, omit selector, ignore_selectors and ignore_json_paths entirely, even empty arrays. Do not invent an ID.
include_diffNoOptional boolean; runtime default: true. Request a compact deterministic text diff when content changed and compatible prior text is retained. False omits the diff; true cannot recover unavailable old content and does not enable Smart Diff's structural analysis.
previous_hashNoOptional previous Fresh402 content hash: exactly 64 hexadecimal characters, case-insensitive. Overrides comparison with the watch's current stored hash. Omit to use that stored hash; a new URL watch without a prior hash returns changed:null. Hash comparison does not require retained old text, but a text diff does; a hash cannot reconstruct missing content.
html_attributesNoOptional HTML-only watch rule: up to4 of href,title,alt,aria-label; default[] retains existing text-only normalization. Distinct names are sorted; nonempty rules create a separate version1 watch/baseline. Records bounded meaningful attributes within the saved selector or filtered page, including same-text link destination changes. Cannot be supplied with watch_id, even[]. Unsafe hrefs are hashed, never fetched. Limits:200 elements,2048 characters/value,32768 evidence bytes; excess fails, never clips silently.
max_age_secondsNoOptional integer cache age in seconds, 0-86400; runtime default: 0. A positive value permits reuse of a sufficiently recent watch result without fetching. Zero contacts the source (conditional HTTP may return 304). Cached Checks still require payment; this does not schedule background polling.
ignore_selectorsNoOptional HTML-only exclusion array, up to 20 supported CSS selectors of 1-256 characters each, e.g. ['.timestamp']. Accepted only with url; default []. With watch_id, omit the field entirely (including []): saved exclusions are reused.
ignore_json_pathsNoOptional JSON-only exclusions, up to 20 paths of 1-256 characters starting with '/'; '~0'/'~1' escapes and '*' segments are supported. Example: ['/updated_at']. Accepted only with url; default []. With watch_id, omit entirely (including []): saved paths are reused.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / html_attributes
      Added value: +{
      +  "description": "Optional HTML-only watch rule: up to4 of href,title,alt,aria-label; default[] retains existing text-only normalization. Distinct names are sorted; nonempty rules create a separate version1 watch/baseline. Records bounded meaningful attributes within the saved selector or filtered page, including same-text link destination changes. Cannot be supplied with watch_id, even[]. Unsafe hrefs are hashed, never fetched. Limits:200 elements,2048 characters/value,32768 evidence bytes; excess fails, never clips silently.",
      +  "items": {
      +    "description": "One explicitly observed HTML attribute: href (a/area only),title,alt or aria-label. No class/style/event attributes; links are inert evidence and never fetched.",
      +    "enum": [
      +      "alt",
      +      "aria-label",
      +      "href",
      +      "title"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 4,
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "required": [
      +      "url"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "watch_id"
      +    ]
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Supply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering."New value: +"Supply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering."
  4. Changed12 schema fields changed
    • addedInput schema / description
      Added value: +"Paid Check input: exactly one of url or watch_id is required. Content rules are allowed only on the url path; watch_id always reuses saved rules. Optional previous_hash overrides the reference hash; max_age_seconds controls cache reuse and include_diff controls text-diff output."
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "include_diff": true,
      +    "max_age_seconds": 0,
      +    "selector": "main",
      +    "url": "https://example.com/docs"
      +  }
      +]
    • addedInput schema / properties / ignore_json_paths / description
      Added value: +"Optional JSON-only exclusions, up to 20 paths of 1-256 characters starting with '/'; '~0'/'~1' escapes and '*' segments are supported. Example: ['/updated_at']. Accepted only with url; default []. With watch_id, omit entirely (including []): saved paths are reused."
    • addedInput schema / properties / ignore_json_paths / items / description
      Added value: +"JSON Pointer-style path, 1-256 characters, starting with '/'. Decode '~0' as '~' and '~1' as '/'; '*' matches all object keys or array elements. Example: '/items/*/updated_at'."
    • addedInput schema / properties / ignore_selectors / description
      Added value: +"Optional HTML-only exclusion array, up to 20 supported CSS selectors of 1-256 characters each, e.g. ['.timestamp']. Accepted only with url; default []. With watch_id, omit the field entirely (including []): saved exclusions are reused."
    • addedInput schema / properties / ignore_selectors / items / description
      Added value: +"HTML element(s) to remove before normalization: a supported CSS selector, 1-256 characters, e.g. '.timestamp' or 'nav'."
    • addedInput schema / properties / include_diff / description
      Added value: +"Optional boolean; runtime default: true. Request a compact deterministic text diff when content changed and compatible prior text is retained. False omits the diff; true cannot recover unavailable old content and does not enable Smart Diff's structural analysis."
    • addedInput schema / properties / max_age_seconds / description
      Added value: +"Optional integer cache age in seconds, 0-86400; runtime default: 0. A positive value permits reuse of a sufficiently recent watch result without fetching. Zero contacts the source (conditional HTTP may return 304). Cached Checks still require payment; this does not schedule background polling."
    • addedInput schema / properties / previous_hash / description
      Added value: +"Optional previous Fresh402 content hash: exactly 64 hexadecimal characters, case-insensitive. Overrides comparison with the watch's current stored hash. Omit to use that stored hash; a new URL watch without a prior hash returns changed:null. Hash comparison does not require retained old text, but a text diff does; a hash cannot reconstruct missing content."
    • addedInput schema / properties / selector / description
      Added value: +"Optional HTML CSS scope, 1-256 characters, e.g. 'main'; accepted only with url. Omit for the page after built-in noise removal. No match returns 422; not supported for JSON/plain text. With watch_id, omit this field: the saved selector is reused."
    • addedInput schema / properties / url / description
      Added value: +"Supply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering."
    • addedInput schema / properties / watch_id / description
      Added value: +"Supply exactly one of watch_id or url. An existing ID returned by fresh402_register (free), POST /v1/register, or a URL-based Check: 'w_' followed by 32 lowercase hexadecimal characters. Reuses that watch's stored URL and rules. When supplied, omit selector, ignore_selectors and ignore_json_paths entirely, even empty arrays. Do not invent an ID."
  5. Changed2 schema fields changed
    • addedInput schema / properties / ignore_json_paths / items / pattern
      Added value: +"^\\/"
    • addedInput schema / properties / url / maxLength
      Added value: +4096
  6. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses payment requirements, pricing, x402/MPP/prepaid/trial mechanics, idempotency expectations, public-HTTPS/no-JavaScript limits, cache behavior, and the changed:null first-observation case. It is very transparent, though much of the detail is billing boilerplate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long, dense paragraph with payment, MPP, Circle Gateway, trial, and recovery instructions crowding out the core selection guidance. The opening is front-loaded, but the overall size and run-on structure make it hard to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a complex paid tool with no annotations and no output schema, the description supplies the necessary payment/auth context and a summary of return values. It is complete in raw information, though its density makes the completeness harder to use in practice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents the oneOf url/watch_id constraint, watch_id reuse, max_age_seconds behavior, and html_attributes semantics. The description mostly restates those; the cross-session reuse note adds some value but does not significantly extend the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: use a persistent watch to decide whether a public document needs rereading. It summarizes the return values and explicitly says it does not schedule monitoring, distinguishing it from monitoring tools. It also names Smart Diff and direct HTTP as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: exactly one of url or watch_id, URL creates/reuses a watch, watch_id reuses saved rules and requires omitting overrides, and max_age_seconds selects cache reuse versus source revalidation. It also names when to prefer Smart Diff or direct HTTP.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.