Skip to main content
Glama

Fresh402 Agent Intelligence

Server Details

Web/API change intelligence; bounded Base facts. Free Register, seven paid tools; x402/MPP/prepaid.

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
kirillradchenko96/fresh402
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

The web tools (register/check/smart_diff) share a watch lifecycle, but descriptions clearly separate free baseline creation, on-demand freshness with compact diff, and structured change explanation. On-chain tools (contract_watch, token_facts, wallet_watch) are distinct, and extract/OpenAPI diff are clearly scoped; minor selection ambiguity remains between check and smart_diff depending on desired diff detail.

Naming Consistency4/5

All tools share the fresh402_ prefix and snake_case naming, making them predictable and easy to scan. The only inconsistency is grammatical style—some names are bare verbs (check, register, extract) while others are noun/verb phrases (contract_watch, token_facts)—but this does not impair readability.

Tool Count5/5

Eight tools is well within a reasonable range for a multi-domain intelligence server. Each tool maps to a distinct capability across web freshness, extraction, API contract diffing, and on-chain observation, with no obvious filler.

Completeness4/5

The surface covers web baseline/check/diff/extract/OpenAPI diff and on-chain contract, token, and wallet observation, which is broad for the stated domain. However, watch lifecycle management is incomplete: there is no list, get, or delete/unregister operation for watches or stored baselines.

Available Tools

8 tools
fresh402_checkAInspect

Check whether public HTML, JSON or text changed; optional html_attributes on a new URL watch detects same-text link and selected attribute changes without altering older watches; use for on-demand freshness checks and a compact deterministic text diff, not background monitoring. Supply exactly one of url or watch_id. A URL-based paid Check can create a watch; an ID reuses its saved URL/rules, so omit all content-rule fields. Reuse returned watch_id/hash for later checks; first URL check without prior state reports changed:null. Optional cache reuse still costs $0.005 USDC per call on Base mainnet (eip155:8453). Requires an x402-capable MCP payment client and funded native-USDC payer; an ordinary MCP client receives a payment challenge, not a paid result. Alternatively use prepaid credits through REST or this MCP tool: X-Fresh402-API-Key in HTTP, with params._meta["fresh402/prepaid"] containing idempotency_key, tariff_version and max_credits. When root mpp_payments.enabled is true, native MPP EVM charge is another option at the same USDC price: use an authorized Base EIP-712 signer and official mppx client, org.paymentauth/credential metadata and a persisted private recovery token. MPP receipt: org.paymentauth/receipt; see docs/MPP.md. Never combine MPP, prepaid and x402. Discover packages at /v2/prepaid/plans; see docs/AGENT_PREPAID.md for browserless wallet enrollment, bounded early credits and recovery. No JavaScript execution. Optional Circle Gateway x402 is available only when root circle_gateway.enabled is true. Use the GatewayWalletBatched quote, a funded Base Gateway EOA and a persisted private recovery token. Pending batches return 409; replay the original proof/input/token after 60 seconds. Results require Gateway confirmed/completed evidence; never mix providers. No Circle prepaid funding. See docs/CIRCLE_GATEWAY.md. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

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.

TDQS

A4.3/5.0
Behavior5/5

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

No annotations are provided, and the description carries the full behavioral burden: it discloses the $0.005 USDC cost, x402 payment challenge behavior, no JavaScript execution, cache reuse still costing money, first URL check without prior state returning changed:null, 409 pending-batch replay, and trial-capacity 429s. It also states that exhaustion never authorizes a charge and that ordinary requests retain the paid challenge.

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 core check semantics are front-loaded, but the description is a dense wall of text dominated by payment protocol routing, MPP receipt metadata, Circle Gateway recovery tokens, and trial enrollment details. Those details may be operationally relevant, yet they are repeated and interleaved rather than structured, so many sentences do not earn their place for simple tool selection and invocation.

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?

For a complex paid tool with no output schema, the description is unusually complete: it covers payment prerequisites, cache behavior, first-check changed:null, watch reuse, no-JS execution, and key error states. It does not fully describe the result payload shape beyond changed:null and the compact diff, which keeps it from a 5.

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 description coverage is 100%, so the baseline is 3. The description usefully reinforces the exactly-one-of url/watch_id rule and the rule that content fields are omitted with watch_id, but it does not add syntax or format meaning beyond what the schema already documents for selector, previous_hash, html_attributes, ignore_selectors, and ignore_json_paths.

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?

The opening sentence states a specific verb and resource: check whether public HTML, JSON, or text changed, with optional same-text link/attribute detection. It also scopes the tool as an on-demand freshness check with a compact diff, not background monitoring, and later names fresh402_register as the free watch-registration path. An agent can distinguish it from siblings without opening the schema.

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?

The description explicitly says to supply exactly one of url or watch_id, to omit all content-rule fields when watch_id is used, and to reuse returned watch_id/hash for later checks. It contrasts on-demand checks with background monitoring and names alternative payment routes (prepaid credits, MPP, Circle Gateway, free trial) with the condition for each. When-to-use and when-not-to-use are both present.

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

fresh402_contract_watchAInspect

Observe code, standard proxy slots, common getters, explicitly selected storage/ABI and bounded selected events at one finalized Base address; optionally compare an owned prior snapshot. Selected single-provider evidence only; unknown controls remain unknown. Commercial input binds to the original x402/MPP/prepaid request and REQUIRED random32-byte private recovery token for x402/MPP. REST sends X-Fresh402-Recovery-Token; MCP sends params._meta['fresh402/recovery-token']. Persist the secret with the original proof/input before authorizing. No client request_id; recovery reuses the original result with no new RPC or debit. Provider failure/partial scan never becomes a paid success. A confirmed paid response with observation_saved=false and persistence_error is pending domain finalization: keep original proof/input/token, retry recovery only, and do not use returned snapshot/cursor IDs until saved flags become true. $0.010000 USDC on Base per call; use an approved compatible payment client. Prepaid requires eligible finalized all-service credits or an original explicit service-specific tariff4 grant; inspect authenticated /v3/prepaid/quote/contract_watch. Historical web package terms remain unchanged. Records retain30days; original private financial recovery retains7days. Server-side provider approval and published tariff gates apply; paying agents do not need their own RPC credentials or an operator-created grant when eligible all-service credits are available. Read /v3/prepaid/all-services and accept its exact terms before a new all-service purchase. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
blockNoFinalized only. Every state read pins the selected block hash with requireCanonical:true; no latest/number fallback.finalized
readsNoAt most one unverified zero-argument view/pure ABI read with one supported static output.
slotsNoAt most one exact bytes32 storage slot; no inferred layout.
addressYes20-byte Ethereum address; lowercase/uppercase accepted, mixed case must have a valid EIP-55 checksum. Normalized to checksummed form.
chain_idYesBase mainnet only; returned provider chain must match.
event_topicsNoAt most one exact topic0 at this contract, bounded to the existing lookback/call limit. Dense or excessive work fails the whole paid operation; no partial success.
events_from_blockNoOptional first event block; otherwise previous snapshot block+1, or current block initially. Older than 32 blocks returns lookback_gap, without skipping to recent history.
previous_snapshotNoOptional owned snapshot_id from a successful saved contract_watch result, retained for30days. Same payer or prepaid account, chain, address and provider required. Foreign/missing IDs return404; expired IDs return410 without silently starting a new baseline.

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose key traits: $0.01 USDC cost, required recovery-token handling, no partial success on provider failure, pending-finalization semantics for saved observations, retention windows, and 429 capacity behavior. It is dense and occasionally muddled, but behaviorally informative.

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

Conciseness3/5

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

The purpose is front-loaded in the first sentence, but the remainder is a long wall of payment, prepaid, trial, and recovery boilerplate. Much of it is relevant to a paid tool, yet repetition and density hurt readability; a structured split into operation vs. payment semantics would be clearer.

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?

For a complex paid tool with no annotations and no output schema, the description covers payment authorization, recovery tokens, trial credentials, retry behavior, and retention rules thoroughly. It stops short of describing the actual response shape, but the operational context an agent needs to invoke it correctly is largely present.

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 description coverage is 100%, so each parameter is already well documented in the schema (e.g., slot and event_topics constraints, previous_snapshot ownership rules). The description adds only general framing ('explicitly selected storage/ABI', 'bounded selected events') without new syntax or format detail.

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

Purpose4/5

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

The opening sentence names a specific verb ('Observe') and enumerates concrete resources (code, proxy slots, getters, selected storage/ABI, bounded events) at a finalized Base address, plus optional snapshot comparison. An agent can tell this is a contract-inspection tool, though the description does not explicitly differentiate it from siblings like fresh402_token_facts or fresh402_smart_diff.

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

Usage Guidelines3/5

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

The description gives extensive operational context about payment, recovery, and trial usage, but never states when to choose this tool over contract_diff, token_facts, or wallet_watch. Usage is implied by the observation scope rather than routed explicitly.

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

fresh402_extractAInspect

Extract readable text, metadata, headings, public links and embedded JSON-LD from one public HTTPS document. Use to read static HTML, JSON or plain text; no watch or prior registration is needed. Optional feed_mode:entries projects bounded RSS2/Atom IDs, declared links, timestamps, content fingerprints and indexed source evidence; omit for original XML-as-text behavior. No feed crawling or background subscription. Optional CSS scope, noise exclusions and exact JSON Pointer selection via json_pointer, or an ordered projection of up to8 fields via json_pointers (mutually exclusive; JSON only, any missing field returns422). One fetch/JSON parse with aggregate work/output limits. Omit json_pointer to retain full-document extraction. max_chars defaults to 20000 and limits returned text, not fetch size. Does not render JavaScript, crawl links or compare versions. $0.010 USDC per call on Base mainnet (eip155:8453), requiring an x402-capable MCP payment client and funded native-USDC payer. An ordinary MCP client receives a payment challenge. Alternatively use prepaid credits through REST or this MCP tool: X-Fresh402-API-Key in HTTP, with params._meta["fresh402/prepaid"] containing idempotency_key, tariff_version and max_credits. When root mpp_payments.enabled is true, native MPP EVM charge is another option at the same USDC price: use an authorized Base EIP-712 signer and official mppx client, org.paymentauth/credential metadata and a persisted private recovery token. MPP receipt: org.paymentauth/receipt; see docs/MPP.md. Never combine MPP, prepaid and x402. Discover packages at /v2/prepaid/plans; see docs/AGENT_PREPAID.md for browserless wallet enrollment, bounded early credits and recovery. Optional Circle Gateway x402 is available only when root circle_gateway.enabled is true. Use the GatewayWalletBatched quote, a funded Base Gateway EOA and a persisted private recovery token. Pending batches return 409; replay the original proof/input/token after 60 seconds. Results require Gateway confirmed/completed evidence; never mix providers. No Circle prepaid funding. See docs/CIRCLE_GATEWAY.md. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
urlYesRequired absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply.
selectorNoOptional HTML CSS scope, 1-256 characters, e.g. 'article'. If omitted, choose main, then article, then body, then the document. Explicit scope must match (otherwise 422). Built-in noise and ignore_selectors are removed. Not supported for JSON/plain text.
feed_modeNoOptional RSS2/Atom projection: 'entries'. Omit for unchanged XML-as-text extraction and existing hashes. Accepts XML/+xml/text/plain with an RSS2 root or namespaced Atom feed; no RSS1/RDF, HTML repair, DTD or external entity/content fetching. Cannot combine with CSS/JSON selection or exclusions. Limits:262144 UTF-8 source bytes,4096 XML elements,depth32,100 entries,16384 characters/field,131072 projected bytes; excess fails explicitly. Returns feed identity, inert declared links, entry IDs/timestamps/content fingerprints and indexed source evidence. Identical duplicate entries deduplicate; conflicting IDs fail422. Feed text/hash cover the canonical projection; max_chars clips text and omits structured feed when clipped. Existing registration/watch semantics remain unchanged.
max_charsNoOptional integer limit on returned normalized text: 100-50000 characters, default 20000. Does not raise fetch/parser limits; the hash covers full normalized text before truncation. If JSON text is truncated, parsed data is omitted (data:null, data_omitted:true).
json_pointerNoOptional exact RFC 6901 JSON Pointer, at most 256 characters, e.g. '/product/price' or '/items/0/name'. JSON documents only; '~0' means '~' and '~1' means '/'. Empty string selects the whole document. Omit to extract the entire normalized document. Selection runs after ignore_json_paths; a missing or excluded target returns 422. Array indices are zero-based canonical integers; '*' is a literal key, not a wildcard. Returned text/data/hash cover the selected value; max_chars and data_omitted still apply.
include_linksNoOptional boolean, default true. Include bounded public links extracted from HTML. False returns an empty links array without changing normalized text or its hash. Does not crawl linked pages; JSON/plain text do not provide HTML links.
json_pointersNoOptional ordered1-8 unique exact JSON Pointers; mutually exclusive with json_pointer, JSON only. One fetch and JSON parse; exclusions run first. Any missing/excluded field fails the whole operation with422; null is a valid value. Returns data:[{pointer,value},...] and canonical aggregate text/hash. max_chars clips the aggregate; clipped data is omitted. Combined projection limited to200000 UTF-8 bytes and20000 nodes. Example:['/product/price','/product/stock'].
ignore_selectorsNoOptional array of up to 20 CSS selectors (each 1-256 characters) to remove from HTML in addition to built-in noise filtering. Default: no extra exclusions ([]). HTML only; use ignore_json_paths for JSON. Example: ['.timestamp', '.ad'].
ignore_json_pathsNoOptional array of up to 20 JSON Pointer-style paths to remove before JSON normalization and hashing. Each must start with '/' and be 1-256 characters; supports '*' segments. Default: [] (no exclusions). JSON only. Example: ['/updated_at', '/items/*/request_id'].
include_structured_dataNoOptional boolean, default true. Include embedded JSON-LD extracted from HTML in structured_data. False returns an empty structured_data array. This does not control the parsed data field for a JSON document, and does not fetch external linked data.

TDQS

A4.1/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 does so extensively: it discloses one-fetch/JSON-parse behavior, output and work limits, 422 failures for missing JSON fields, 409 batch replay behavior, payment/auth requirements, prepaid and trial constraints, and prohibited credential combinations.

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 first sentence is well front-loaded, but the description then balloons into long payment, prepaid, MPP, Circle Gateway, trial and documentation instructions. Much of this is operational payment material rather than extraction-tool selection or invocation guidance, making the definition poorly sized.

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?

There is no output schema, but the description names the returned artifacts such as text, metadata, headings, links, structured_data and feed projection fields, and it explains major constraints and payment paths. It could still specify the exact response shape more precisely, but it is complete enough for correct invocation.

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 description coverage is 100%, so all 10 parameters are already well documented in the input schema. The description restates some semantics such as feed_mode, json_pointer/json_pointers mutual exclusion, max_chars clipping and CSS noise exclusions, but adds little beyond the detailed 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?

The opening sentence states a specific verb and resources: extracting readable text, metadata, headings, links and JSON-LD from one public HTTPS document. It also distinguishes this tool from watch/registration workflows and from JavaScript rendering, crawling or version comparison.

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

Usage Guidelines4/5

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

The description clearly says to use this tool for static HTML, JSON or plain text, and notes that no watch or prior registration is needed. It also rules out feed crawling, background subscriptions, JavaScript rendering and version comparison, though it does not explicitly name sibling alternatives such as the diff or watch tools.

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

fresh402_openapi_contract_diffAInspect

Detect bounded directional compatibility evidence in a public JSON OpenAPI3.0/3.1 contract: paths/methods, required fields, supported scalar type/enum/null domains, and effective authentication alternatives/scopes. Request acceptance and response guarantees have opposite compatibility directions. Complex schema composition, custom dialects, ambiguous visibility and unexpanded references remain review/unknown; no general satisfiability or compatibility proof. Use for API contract review; Smart Diff is for general documents. First register the contract URL with free fresh402_register, without selectors or ignore rules, then reuse watch_id. compare_to accepts previous (default) or baseline; an available same-watch previous_hash overrides it. Limits include 256000 decoded document bytes, 100 paths and 500 operations. No YAML, external reference fetching, API-operation execution, LLM or complete compatibility guarantee. $0.020 USDC per call on Base mainnet (eip155:8453); requires an x402-capable MCP payment client and funded native-USDC payer, otherwise returns a payment challenge. Alternatively use prepaid credits through REST or this MCP tool: X-Fresh402-API-Key in HTTP, with params._meta["fresh402/prepaid"] containing idempotency_key, tariff_version and max_credits. When root mpp_payments.enabled is true, native MPP EVM charge is another option at the same USDC price: use an authorized Base EIP-712 signer and official mppx client, org.paymentauth/credential metadata and a persisted private recovery token. MPP receipt: org.paymentauth/receipt; see docs/MPP.md. Never combine MPP, prepaid and x402. Discover packages at /v2/prepaid/plans; see docs/AGENT_PREPAID.md for browserless wallet enrollment, bounded early credits and recovery. Optional Circle Gateway x402 is available only when root circle_gateway.enabled is true. Use the GatewayWalletBatched quote, a funded Base Gateway EOA and a persisted private recovery token. Pending batches return 409; replay the original proof/input/token after 60 seconds. Results require Gateway confirmed/completed evidence; never mix providers. No Circle prepaid funding. See docs/CIRCLE_GATEWAY.md. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
watch_idYesRequired existing watch ID: 'w_' plus 32 lowercase hexadecimal characters. Obtain it with free fresh402_register or POST /v1/register using the public JSON OpenAPI 3.0/3.1 URL and no selector or ignore rules. Reuses the saved URL; do not pass url here. YAML, non-OpenAPI documents and scoped/filtered watches are unsupported. Illustrative IDs must be replaced.
compare_toNoOptional mode: 'previous' (default) compares with the latest saved OpenAPI Contract Diff snapshot; 'baseline' uses its fixed saved baseline. Before contract history exists, the current registered watch state seeds the initial baseline. previous_hash overrides the mode. 'hash' appears only in results, not as an accepted input mode.previous
previous_hashNoOptional 64-character hexadecimal reference hash, case-insensitive. Prefer a hash returned by OpenAPI Contract Diff for this same watch, matching a retained contract snapshot or fixed baseline. The current registered core hash is also accepted as a fallback: without a matching contract snapshot, the fixed baseline (or registered state if no baseline exists) is used. Overrides compare_to; unavailable hashes return 404. Omit to use the selected mode.

TDQS

A3.8/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 burden and discloses substantial behavioral detail: bounded analysis limits (256000 decoded bytes, 100 paths, 500 operations), unsupported inputs (YAML, external reference fetching, API-operation execution), error behavior (404 for unavailable hashes, 409 pending batches, 429 capacity), and payment/auth requirements. It also clearly states the tool does not provide a general satisfiability or compatibility proof. The payment details are excessive but they do transparently disclose invocation requirements.

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 far too long for the tool: after a clear purpose statement, it devolves into extensive payment, prepaid, MPP, Circle Gateway, trial, and cross-reference material. Much of this is irrelevant to selecting or invoking fresh402_openapi_contract_diff and drowns the core usage guidance. The purpose is front-loaded, but overall the text is bloated and repetitive.

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

Completeness3/5

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

It covers prerequisites, limits, unsupported cases, auth/payment options, and some error modes, which is substantial for a complex tool. However, there is no output schema and the description does not explain the shape or fields of the returned compatibility evidence, so an agent still lacks guidance on interpreting results. Payment coverage is disproportionately detailed while result semantics remain vague.

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 description coverage is 100%, so watch_id, compare_to, and previous_hash are already fully documented in the schema. The description adds a concise restatement that compare_to accepts previous or baseline and that previous_hash overrides it, but this does not go meaningfully beyond the schema. Baseline 3 is appropriate when structured fields do the heavy lifting.

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

Purpose4/5

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

The opening sentence names a specific operation (compatibility evidence detection) on a specific resource (public JSON OpenAPI 3.0/3.1 contracts) and enumerates the compared aspects: paths/methods, required fields, scalar domains, and auth alternatives/scopes. It also distinguishes itself from fresh402_smart_diff explicitly. The purpose is clear, though the jargon-heavy phrasing and surrounding payment text make it less immediately legible than a direct verb such as 'compare'.

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

Usage Guidelines4/5

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

It states 'Use for API contract review' and contrasts that with fresh402_smart_diff for general documents. It also gives the prerequisite workflow: register the contract URL first with fresh402_register, then reuse watch_id. It does not explain when to use this versus fresh402_contract_watch or fresh402_check, but the primary usage context and one alternative are clear.

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

fresh402_registerAInspect

Create or retrieve a free persistent baseline for public HTTPS HTML, JSON or plain text. Use before Smart Diff or OpenAPI Contract Diff, or to obtain a reusable watch_id/hash for Check. Required url plus optional CSS/JSON exclusions and opt-in html_attributes identify the watch; changing rules creates a different watch. Repeating the same registration returns existing state without fetching or refreshing it. Reuse the actual returned watch_id; never invent an ID. Registration is free ($0), subject to quotas, and requires no x402 payment client; subsequent comparison tools are paid. Check also accepts url directly and can create its watch during the paid call. No JavaScript execution or background monitoring. For OpenAPI comparisons register the JSON contract without any content rules. Free baseline registration needs no trial key, wallet or payment. It stores a reference point, not continuous monitoring. For a free comparison allowance, inspect GET /v3/agent-trial (machine wallet-control proof) or /v2/trial (human verification); eligibility and shared capacity apply.

NameRequiredDescriptionDefault
urlYesRequired absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply.
selectorNoOptional HTML scope: a supported CSS selector, 1-256 characters, e.g. 'main' or 'article .content'. Only matching text is normalized; no match returns 422. Omit to normalize the page after built-in noise removal. Not supported for JSON or plain text.
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.
ignore_selectorsNoOptional array of up to 20 CSS selectors (each 1-256 characters) to remove from HTML in addition to built-in noise filtering. Default: no extra exclusions ([]). HTML only; use ignore_json_paths for JSON. Example: ['.timestamp', '.ad'].
ignore_json_pathsNoOptional array of up to 20 JSON Pointer-style paths to remove before JSON normalization and hashing. Each must start with '/' and be 1-256 characters; supports '*' segments. Default: [] (no exclusions). JSON only. Example: ['/updated_at', '/items/*/request_id'].

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses idempotency (repeating returns existing state without fetching or refreshing), cost ($0, quota-bound, no x402 payment client), and limits (no JS execution, no background monitoring, stores a reference point only). The cost/auth story is repeated in a later sentence rather than consolidated, which costs it a point.

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

Conciseness3/5

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

Front-loaded correctly with the core verb and scope, but the tail is padded: 'Registration is free ($0), subject to quotas, and requires no x402 payment client' and 'Free baseline registration needs no trial key, wallet or payment' say the same thing, and 'stores a reference point, not continuous monitoring' overlaps with 'no background monitoring.' The trial-endpoint sentence is useful but drifts from the tool's job.

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?

Covers the operational facts an agent needs for a 5-parameter creation tool with no output schema: idempotency, cost, quotas, watch identity, and the OpenAPI special case ('register the JSON contract without any content rules'). It never sketches the returned watch_id/hash payload, though the schema description does reference it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds value by explaining that url plus rules jointly identify the watch and that changing rules yields a different watch, which is a semantic not visible from the schema fields. It also notes html_attributes is opt-in and that watch identity must come from the actual returned ID.

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?

First sentence names a specific verb-plus-resource (create or retrieve a free persistent baseline) and the supported content types. It explicitly positions itself relative to siblings (Smart Diff, OpenAPI Contract Diff, Check), so an agent can distinguish it without opening another schema.

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?

States when to call it (before Smart Diff or Contract Diff, or to obtain a reusable watch_id/hash), and gives an explicit alternative path: 'Check also accepts url directly and can create its watch during the paid call.' It also names the free-comparison allowance route via the trial endpoints.

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

fresh402_smart_diffAInspect

Explain structured changes in a registered public document: JSON Pointer changes, HTML block changes and deterministic significance hints. Use instead of Check when a changed/unchanged flag or short text diff is insufficient. First obtain watch_id with free fresh402_register; saved URL/rules are reused. compare_to is previous (default) or baseline; previous_hash overrides it when the same-watch snapshot is retained. Up to200 content changes; explicit json_array_keys match unique typed item identities and report moves separately, with pure reorder unchanged and source hashes still order-sensitive. Saved html_attributes rules compare selected links/attributes independently of visible text. Omit new options for existing index/text behavior. Legacy HTML may have text-only fidelity. No LLM, JavaScript rendering or complete API compatibility guarantee. $0.015 USDC per call on Base mainnet (eip155:8453); requires an x402-capable MCP payment client and funded native-USDC payer, otherwise returns a payment challenge. Alternatively use prepaid credits through REST or this MCP tool: X-Fresh402-API-Key in HTTP, with params._meta["fresh402/prepaid"] containing idempotency_key, tariff_version and max_credits. When root mpp_payments.enabled is true, native MPP EVM charge is another option at the same USDC price: use an authorized Base EIP-712 signer and official mppx client, org.paymentauth/credential metadata and a persisted private recovery token. MPP receipt: org.paymentauth/receipt; see docs/MPP.md. Never combine MPP, prepaid and x402. Discover packages at /v2/prepaid/plans; see docs/AGENT_PREPAID.md for browserless wallet enrollment, bounded early credits and recovery. Optional Circle Gateway x402 is available only when root circle_gateway.enabled is true. Use the GatewayWalletBatched quote, a funded Base Gateway EOA and a persisted private recovery token. Pending batches return 409; replay the original proof/input/token after 60 seconds. Results require Gateway confirmed/completed evidence; never mix providers. No Circle prepaid funding. See docs/CIRCLE_GATEWAY.md. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
watch_idYesRequired existing watch ID: 'w_' plus 32 lowercase hexadecimal characters, returned by free fresh402_register or POST /v1/register (a URL-based Check can also create it). Reuses the saved public URL and content rules; do not pass url or new rules here. Replace illustrative IDs with a real returned ID before paying.
compare_toNoOptional comparison mode: 'previous' (default) uses the latest Smart Diff snapshot, falling back to the current registered watch state on the first call. 'baseline' uses the fixed Smart Diff baseline, initially seeded from the earliest retained compatible watch snapshot. previous_hash overrides either mode. 'hash' is a result label, not an accepted input value.previous
previous_hashNoOptional explicit reference hash: 64 hexadecimal characters, case-insensitive, from this same watch's retained Smart Diff snapshot, fixed baseline or retained registration/Check snapshot. Overrides compare_to. Unknown or pruned hashes return 404; recent snapshot history is limited to 20 per store, with the fixed Smart Diff baseline retained separately. Omit for the selected mode.
json_array_keysNoOptional1-4 explicit nonoverlapping JSON array identity rules, JSON only. Omit for existing index comparison. Matches unique typed scalar keys, reports moves separately from content changes; pure reorder is changed:false while source hashes remain order-sensitive. At most2000 combined array items/20000 comparison work units, no fallback for ambiguity. Rules affect this comparison only, not the watch/hash; persist identical input for payment recovery. Example:[{path:'/items',key:'/id'}].

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so extensively. It discloses limits such as up to 200 content changes, no LLM or JavaScript rendering, legacy HTML text-only fidelity, array identity behavior, payment challenge conditions, idempotency requirements, and possible 409/429 responses.

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

Conciseness3/5

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

The core purpose and usage guidance are front-loaded, which is good. However, the description is very long and spends substantial space on payment-provider, prepaid, MPP, Circle Gateway, and trial boilerplate that could be moved to linked docs; many sentences are operationally relevant but the overall structure is manual-like rather than concise.

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

Completeness5/5

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

Given the tool complexity, four parameters, rich schema, and no output schema, the description is complete enough for an agent to understand what the tool returns conceptually and what conditions affect execution. It covers comparison modes, identity rules, limits, fidelity caveats, payment requirements, and recovery/error behavior.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; however, the description adds operational meaning by explaining compare_to modes, how previous_hash overrides them, and that json_array_keys rules affect only the comparison and not the watch/hash. Much of the parameter detail is already in the schema, so it does not reach 5.

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?

The opening sentence states a specific verb and resource: it explains structured changes in a registered public document, covering JSON Pointer changes, HTML block changes, and significance hints. It also explicitly tells the agent to use it instead of Check when a simple changed/unchanged flag or short text diff is insufficient, distinguishing it from the sibling tool.

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?

The description gives explicit usage conditions: use instead of Check when the output needed is richer than a flag or short diff; first obtain watch_id with free fresh402_register; compare_to defaults to previous or can be baseline; previous_hash overrides compare_to. It also says to omit new options for existing index/text behavior, which is actionable guidance.

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

fresh402_token_factsAInspect

Read contract-reported token identity, metadata, supply and limited control facts at one pinned finalized Base block. No safety score, honeypot/trading simulation, verified-source claim or inferred absence of privileges. Missing or deceptive getter evidence remains unknown/not_assessed. Commercial input binds to the original x402/MPP/prepaid request and REQUIRED random32-byte private recovery token for x402/MPP. REST sends X-Fresh402-Recovery-Token; MCP sends params._meta['fresh402/recovery-token']. Persist the secret with the original proof/input before authorizing. No client request_id; recovery reuses the original result with no new RPC or debit. Provider failure/partial scan never becomes a paid success. A confirmed paid response with observation_saved=false and persistence_error is pending domain finalization: keep original proof/input/token, retry recovery only, and do not use returned snapshot/cursor IDs until saved flags become true. $0.010000 USDC on Base per call; use an approved compatible payment client. Prepaid requires eligible finalized all-service credits or an original explicit service-specific tariff4 grant; inspect authenticated /v3/prepaid/quote/token_facts. Historical web package terms remain unchanged. Records retain30days; original private financial recovery retains7days. Server-side provider approval and published tariff gates apply; paying agents do not need their own RPC credentials or an operator-created grant when eligible all-service credits are available. Read /v3/prepaid/all-services and accept its exact terms before a new all-service purchase. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
blockNoFinalized only. Every state read pins the selected block hash with requireCanonical:true; no latest/number fallback.finalized
addressYes20-byte Ethereum address; lowercase/uppercase accepted, mixed case must have a valid EIP-55 checksum. Normalized to checksummed form.
chain_idYesBase mainnet only; returned provider chain must match.
categoriesNoRequested categories, default all. Unsupported evidence remains unknown/not_assessed; never a safety score.

TDQS

A3.7/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 extensive traits: paid $0.010000 USDC per call, required recovery token handling for x402/MPP, idempotency key requirements, provider failure not becoming paid success, pending finalization semantics, and retention periods. It also explains trial versus paid credentials and 429 behavior. These details go well beyond the schema and are highly relevant to correct invocation.

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 front-loads the core purpose well, but then expands into a very long block of payment, prepaid, recovery-token, trial, and legal retention details. Much of this is operational and some is necessary, but the overall text is far too dense and not well structured for an agent to scan quickly. The volume exceeds what is needed to select and invoke the tool.

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 no annotations, no output schema, and a complex paid/recovery workflow, the description is largely complete on invocation behavior: payment model, auth headers, recovery token persistence, error semantics, and trial rules. It does not describe the returned token-facts structure or meaning of fields, which leaves some gaps because no output schema exists. Still, the critical behavioral context is present.

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 description coverage is 100%, so the schema itself fully documents chain_id, address, block, and categories. The description only broadly references 'contract-reported token identity, metadata, supply and limited control facts' and does not add parameter-specific syntax, defaults, or edge cases beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The opening sentence states a specific verb and resource: read contract-reported token identity, metadata, supply, and limited control facts at one pinned finalized Base block. It also clearly excludes safety scoring, honeypot simulation, and verified-source claims, helping distinguish it from safety-check tools. However, it does not name or contrast with any sibling tool explicitly.

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

Usage Guidelines3/5

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

The description implies usage through phrases like 'No safety score, honeypot/trading simulation, verified-source claim' and provides payment/trial operational context. But it never explicitly says when to choose this tool over fresh402_check or other siblings, nor does it name alternatives for the excluded safety-assessment use case. The practical usage guidance is therefore only implied.

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

fresh402_wallet_watchAInspect

Read ETH balance snapshots and selected ERC-20-shaped Transfer events for one wallet in a completed bounded finalized page. Save the owned cursor and use a new paid operation for the next page. Not full native/internal/NFT/transaction history; provider-reported logs cannot prove completeness. Commercial input binds to the original x402/MPP/prepaid request and REQUIRED random32-byte private recovery token for x402/MPP. REST sends X-Fresh402-Recovery-Token; MCP sends params._meta['fresh402/recovery-token']. Persist the secret with the original proof/input before authorizing. No client request_id; recovery reuses the original result with no new RPC or debit. Provider failure/partial scan never becomes a paid success. A confirmed paid response with observation_saved=false and persistence_error is pending domain finalization: keep original proof/input/token, retry recovery only, and do not use returned snapshot/cursor IDs until saved flags become true. $0.020000 USDC on Base per call; use an approved compatible payment client. Prepaid requires eligible finalized all-service credits or an original explicit service-specific tariff4 grant; inspect authenticated /v3/prepaid/quote/wallet_watch. Historical web package terms remain unchanged. Records retain30days; original private financial recovery retains7days. Server-side provider approval and published tariff gates apply; paying agents do not need their own RPC credentials or an operator-created grant when eligible all-service credits are available. Read /v3/prepaid/all-services and accept its exact terms before a new all-service purchase. Optional free evaluation: inspect GET /v3/agent-trial for the CAPTCHA-free machine trial (unfunded EOA ownership signing required). Web tools may also use the separate human trial at /v2/trial. Only enabled, eligible allowances authorize free execution; shared capacity can return 429 earlier. Send X-Fresh402-Trial-Key and a distinct persisted Idempotency-Key per logical REST or MCP call. Reuse the same tool/input/key for retained recovery. Never mix trial and payment/prepaid credentials. Exhaustion never authorizes a charge; ordinary requests without trial credentials retain the paid challenge.

NameRequiredDescriptionDefault
blockNoFinalized only. Every state read pins the selected block hash with requireCanonical:true; no latest/number fallback.finalized
cursorNoOwned opaque cursor from a prior successful wallet_watch. Scope, wallet, tokens, provider and policy must match.
tokensYesOne to four selected ERC-20 contracts; no full wallet transaction history.
addressYes20-byte Ethereum address; lowercase/uppercase accepted, mixed case must have a valid EIP-55 checksum. Normalized to checksummed form.
chain_idYesBase mainnet only; returned provider chain must match.
chunk_sizeNoSingle bounded chunk; four-block maximum and no automatic retry.
from_blockNoInitial first block; cannot be supplied with cursor. Default last four finalized blocks; a gap beyond32 fails without skipping history.
max_blocksNoAt most four blocks in this paid page; default4. has_more describes a completed bounded page, not permission to charge a failed partial scan.

TDQS

A3.7/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 burden and does so thoroughly: cost ($0.02 USDC on Base), cursor ownership semantics, required recovery token and its transport for REST vs MCP, idempotency rules, the rule that provider failure/partial scan never becomes a paid success, and what observation_saved=false plus persistence_error means (do not use returned IDs, retry recovery only). Retention windows and 429 capacity behavior are also disclosed.

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 purpose is front-loaded, but the body is a ~250-word run-on mixing payment plan terms, trial credentials, tariff grants, and legacy web package language, much of which does not change tool selection or invocation. Sentences like 'Historical web package terms remain unchanged' do not earn their place.

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?

For an 8-parameter paid read with no output schema, the definition covers the important unknowns: pagination via cursor, bounded finalized pages, gap failure, has_more semantics, error/pending states, and cost. It stops short of describing the actual snapshot payload shape, but the flags and ID caveats it does surface cover the risky parts.

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 description coverage is 100%, so every parameter is already documented in the schema; the baseline of 3 applies. The description adds a little beyond the schema — that the cursor must be persisted and that the next page requires a new paid operation — but contributes no field-level semantics the schema lacks.

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

Purpose4/5

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

The opening sentence gives a specific verb (Read) and precise resource (ETH balance snapshots and selected ERC-20 Transfer events for one wallet, bounded finalized page), and explicitly excludes what it is not (full native/internal/NFT/transaction history). It distinguishes scope well, though it never names a sibling tool to steer against.

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

Usage Guidelines3/5

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

It gives concrete operational guidance — persist the cursor, use a new paid operation for the next page, use an approved payment client, accept /v3/prepaid/all-services terms before purchase, and there is an optional free trial path. However, it never states when an agent should pick this over fresh402_contract_watch or fresh402_token_facts, so sibling selection is left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedfresh402_extract3 fields changed
      • addedInput schema / allOf
        Added value: +[
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "selector"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "ignore_selectors"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "ignore_json_paths"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "json_pointer"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "json_pointers"
        +          ]
        +        }
        +      ],
        +      "required": [
        +        "feed_mode"
        +      ]
        +    }
        +  }
        +]
      • changedInput schema / description
        Previous value: -"Extract a required public URL without creating or requiring a watch. Optional content rules scope/remove noise; max_chars limits returned text and the two include flags control supplementary HTML data. Unknown fields are rejected."New value: +"Extract a required public URL without creating or requiring a watch. Optional content rules scope/remove noise; max_chars limits returned text and the two include flags control supplementary HTML data. Opt-in feed_mode:'entries' projects bounded RSS2/Atom; omit to preserve original extraction. Unknown fields are rejected."
      • addedInput schema / properties / feed_mode
        Added value: +{
        +  "const": "entries",
        +  "description": "Optional RSS2/Atom projection: 'entries'. Omit for unchanged XML-as-text extraction and existing hashes. Accepts XML/+xml/text/plain with an RSS2 root or namespaced Atom feed; no RSS1/RDF, HTML repair, DTD or external entity/content fetching. Cannot combine with CSS/JSON selection or exclusions. Limits:262144 UTF-8 source bytes,4096 XML elements,depth32,100 entries,16384 characters/field,131072 projected bytes; excess fails explicitly. Returns feed identity, inert declared links, entry IDs/timestamps/content fingerprints and indexed source evidence. Identical duplicate entries deduplicate; conflicting IDs fail422. Feed text/hash cover the canonical projection; max_chars clips text and omits structured feed when clipped. Existing registration/watch semantics remain unchanged.",
        +  "type": "string"
        +}
  2. 3 tool updates
    • Addedfresh402_contract_watch
    • Addedfresh402_token_facts
    • Addedfresh402_wallet_watch
  3. 4 tool updates
    • Changedfresh402_check1 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"
        +}
    • Changedfresh402_extract2 fields changed
      • addedInput schema / not
        Added value: +{
        +  "required": [
        +    "json_pointer",
        +    "json_pointers"
        +  ]
        +}
      • addedInput schema / properties / json_pointers
        Added value: +{
        +  "description": "Optional ordered1-8 unique exact JSON Pointers; mutually exclusive with json_pointer, JSON only. One fetch and JSON parse; exclusions run first. Any missing/excluded field fails the whole operation with422; null is a valid value. Returns data:[{pointer,value},...] and canonical aggregate text/hash. max_chars clips the aggregate; clipped data is omitted. Combined projection limited to200000 UTF-8 bytes and20000 nodes. Example:['/product/price','/product/stock'].",
        +  "items": {
        +    "description": "One exact RFC6901 pointer: up to256 characters/64 segments; '' selects root, '/' the empty key, '~0'/'~1' escape '~'/'/'. Example:'/product/price'; '*' is literal.",
        +    "maxLength": 256,
        +    "pattern": "^(?:\\/(?:[^~]|~[01])*)?$",
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "minItems": 1,
        +  "type": "array",
        +  "uniqueItems": true
        +}
    • Changedfresh402_register1 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"
        +}
    • Changedfresh402_smart_diff1 field changed
      • addedInput schema / properties / json_array_keys
        Added value: +{
        +  "description": "Optional1-4 explicit nonoverlapping JSON array identity rules, JSON only. Omit for existing index comparison. Matches unique typed scalar keys, reports moves separately from content changes; pure reorder is changed:false while source hashes remain order-sensitive. At most2000 combined array items/20000 comparison work units, no fallback for ambiguity. Rules affect this comparison only, not the watch/hash; persist identical input for payment recovery. Example:[{path:'/items',key:'/id'}].",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "Explicit JSON array identity rule. Both paths must resolve; missing/duplicate/invalid identities fail422 without index fallback. Source snapshot ordering/hash is retained.",
        +    "properties": {
        +      "key": {
        +        "description": "Nonempty exact RFC6901 pointer within each object item, up to256 characters/64 segments; e.g.'/id' or '/product/sku'. Every key must exist and be a unique nonempty string<=256 characters or safe integer; number1 differs from string'1'.",
        +        "maxLength": 256,
        +        "minLength": 1,
        +        "pattern": "^(?:\\/(?:[^~]|~[01])*)?$",
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "Exact RFC6901 pointer to an array on both compared JSON documents, up to256 characters/64 segments. Empty string selects a root array. Example:'/items'; no wildcards or automatic ID guessing.",
        +        "maxLength": 256,
        +        "pattern": "^(?:\\/(?:[^~]|~[01])*)?$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "key"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 4,
        +  "minItems": 1,
        +  "type": "array"
        +}
  4. 2 tool updates
    • Changedfresh402_check1 field changed
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "required": [
        +      "url"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "watch_id"
        +    ]
        +  }
        +]
    • Changedfresh402_extract1 field changed
      • addedInput schema / properties / json_pointer
        Added value: +{
        +  "description": "Optional exact RFC 6901 JSON Pointer, at most 256 characters, e.g. '/product/price' or '/items/0/name'. JSON documents only; '~0' means '~' and '~1' means '/'. Empty string selects the whole document. Omit to extract the entire normalized document. Selection runs after ignore_json_paths; a missing or excluded target returns 422. Array indices are zero-based canonical integers; '*' is a literal key, not a wildcard. Returned text/data/hash cover the selected value; max_chars and data_omitted still apply.",
        +  "maxLength": 256,
        +  "pattern": "^(?:\\/(?:[^~]|~[01])*)?$",
        +  "type": "string"
        +}
  5. 3 tool updates
    • Changedfresh402_check1 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."
    • Changedfresh402_extract1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."New value: +"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."
    • Changedfresh402_register1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."New value: +"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."
  6. 5 tool updates
    • Changedfresh402_check12 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."
    • Changedfresh402_extract11 fields changed
      • addedInput schema / description
        Added value: +"Extract a required public URL without creating or requiring a watch. Optional content rules scope/remove noise; max_chars limits returned text and the two include flags control supplementary HTML data. Unknown fields are rejected."
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "include_links": true,
        +    "include_structured_data": false,
        +    "max_chars": 20000,
        +    "selector": "main",
        +    "url": "https://example.com/docs"
        +  }
        +]
      • addedInput schema / properties / ignore_json_paths / description
        Added value: +"Optional array of up to 20 JSON Pointer-style paths to remove before JSON normalization and hashing. Each must start with '/' and be 1-256 characters; supports '*' segments. Default: [] (no exclusions). JSON only. Example: ['/updated_at', '/items/*/request_id']."
      • 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 array of up to 20 CSS selectors (each 1-256 characters) to remove from HTML in addition to built-in noise filtering. Default: no extra exclusions ([]). HTML only; use ignore_json_paths for JSON. Example: ['.timestamp', '.ad']."
      • 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_links / description
        Added value: +"Optional boolean, default true. Include bounded public links extracted from HTML. False returns an empty links array without changing normalized text or its hash. Does not crawl linked pages; JSON/plain text do not provide HTML links."
      • addedInput schema / properties / include_structured_data / description
        Added value: +"Optional boolean, default true. Include embedded JSON-LD extracted from HTML in structured_data. False returns an empty structured_data array. This does not control the parsed data field for a JSON document, and does not fetch external linked data."
      • addedInput schema / properties / max_chars / description
        Added value: +"Optional integer limit on returned normalized text: 100-50000 characters, default 20000. Does not raise fetch/parser limits; the hash covers full normalized text before truncation. If JSON text is truncated, parsed data is omitted (data:null, data_omitted:true)."
      • addedInput schema / properties / selector / description
        Added value: +"Optional HTML CSS scope, 1-256 characters, e.g. 'article'. If omitted, choose main, then article, then body, then the document. Explicit scope must match (otherwise 422). Built-in noise and ignore_selectors are removed. Not supported for JSON/plain text."
      • addedInput schema / properties / url / description
        Added value: +"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."
    • Changedfresh402_openapi_contract_diff4 fields changed
      • addedInput schema / description
        Added value: +"Compare a registered, unfiltered public JSON OpenAPI 3.0/3.1 contract; watch_id is required, compare_to defaults to previous, and optional previous_hash overrides it. Bounded structural analysis, not a complete compatibility proof; no YAML, external reference fetching or execution of described API operations. Unknown fields are rejected."
      • addedInput schema / properties / compare_to / description
        Added value: +"Optional mode: 'previous' (default) compares with the latest saved OpenAPI Contract Diff snapshot; 'baseline' uses its fixed saved baseline. Before contract history exists, the current registered watch state seeds the initial baseline. previous_hash overrides the mode. 'hash' appears only in results, not as an accepted input mode."
      • addedInput schema / properties / previous_hash / description
        Added value: +"Optional 64-character hexadecimal reference hash, case-insensitive. Prefer a hash returned by OpenAPI Contract Diff for this same watch, matching a retained contract snapshot or fixed baseline. The current registered core hash is also accepted as a fallback: without a matching contract snapshot, the fixed baseline (or registered state if no baseline exists) is used. Overrides compare_to; unavailable hashes return 404. Omit to use the selected mode."
      • addedInput schema / properties / watch_id / description
        Added value: +"Required existing watch ID: 'w_' plus 32 lowercase hexadecimal characters. Obtain it with free fresh402_register or POST /v1/register using the public JSON OpenAPI 3.0/3.1 URL and no selector or ignore rules. Reuses the saved URL; do not pass url here. YAML, non-OpenAPI documents and scoped/filtered watches are unsupported. Illustrative IDs must be replaced."
    • Changedfresh402_register8 fields changed
      • addedInput schema / description
        Added value: +"Register a free baseline using a required URL and optional content rules. The canonical URL plus rules identify the watch; changing rules creates a different watch. Repeating the same registration returns its existing watch_id/hash without fetching or refreshing it. Quotas apply. Reuse the returned watch_id in Check, Smart Diff or OpenAPI Contract Diff."
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "ignore_selectors": [
        +      ".timestamp"
        +    ],
        +    "selector": "main",
        +    "url": "https://example.com/docs"
        +  }
        +]
      • addedInput schema / properties / ignore_json_paths / description
        Added value: +"Optional array of up to 20 JSON Pointer-style paths to remove before JSON normalization and hashing. Each must start with '/' and be 1-256 characters; supports '*' segments. Default: [] (no exclusions). JSON only. Example: ['/updated_at', '/items/*/request_id']."
      • 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 array of up to 20 CSS selectors (each 1-256 characters) to remove from HTML in addition to built-in noise filtering. Default: no extra exclusions ([]). HTML only; use ignore_json_paths for JSON. Example: ['.timestamp', '.ad']."
      • 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 / selector / description
        Added value: +"Optional HTML scope: a supported CSS selector, 1-256 characters, e.g. 'main' or 'article .content'. Only matching text is normalized; no match returns 422. Omit to normalize the page after built-in noise removal. Not supported for JSON or plain text."
      • addedInput schema / properties / url / description
        Added value: +"Required absolute public HTTPS document URL, at most 4096 characters, e.g. 'https://example.com/docs'. Only port 443; no embedded credentials, private/local targets or authenticated pages. HTML, JSON and plain text are supported; JavaScript is not executed. DNS, redirect and size limits also apply."
    • Changedfresh402_smart_diff4 fields changed
      • addedInput schema / description
        Added value: +"Compare a required existing watch against previous or baseline (default previous), or use previous_hash to override the mode. Fetches the current source using saved rules; no cache-age option. Truncated or incompatible legacy baselines can return 409; legacy HTML may have text-only fidelity. Unknown fields are rejected."
      • addedInput schema / properties / compare_to / description
        Added value: +"Optional comparison mode: 'previous' (default) uses the latest Smart Diff snapshot, falling back to the current registered watch state on the first call. 'baseline' uses the fixed Smart Diff baseline, initially seeded from the earliest retained compatible watch snapshot. previous_hash overrides either mode. 'hash' is a result label, not an accepted input value."
      • addedInput schema / properties / previous_hash / description
        Added value: +"Optional explicit reference hash: 64 hexadecimal characters, case-insensitive, from this same watch's retained Smart Diff snapshot, fixed baseline or retained registration/Check snapshot. Overrides compare_to. Unknown or pruned hashes return 404; recent snapshot history is limited to 20 per store, with the fixed Smart Diff baseline retained separately. Omit for the selected mode."
      • changedInput schema / properties / watch_id / description
        Previous value: -"Required ID returned by free fresh402_register or POST /v1/register. Example IDs are illustrative; replace them with a returned watch ID before paying."New value: +"Required existing watch ID: 'w_' plus 32 lowercase hexadecimal characters, returned by free fresh402_register or POST /v1/register (a URL-based Check can also create it). Reuses the saved public URL and content rules; do not pass url or new rules here. Replace illustrative IDs with a real returned ID before paying."
  7. 1 tool update
    • Addedfresh402_openapi_contract_diff
  8. 1 tool update
    • Changedfresh402_smart_diff1 field changed
      • addedInput schema / properties / watch_id / description
        Added value: +"Required ID returned by free fresh402_register or POST /v1/register. Example IDs are illustrative; replace them with a returned watch ID before paying."
  9. 4 tool updates
    • Changedfresh402_check2 fields changed
      • addedInput schema / properties / ignore_json_paths / items / pattern
        Added value: +"^\\/"
      • addedInput schema / properties / url / maxLength
        Added value: +4096
    • Addedfresh402_extract
    • Changedfresh402_register2 fields changed
      • addedInput schema / properties / ignore_json_paths / items / pattern
        Added value: +"^\\/"
      • addedInput schema / properties / url / maxLength
        Added value: +4096
    • Addedfresh402_smart_diff
  10. 2 tool updates
    • First observedfresh402_check
    • First observedfresh402_register

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    23 pay-per-call web analysis APIs as MCP tools. Security audits, tech stack detection, email verification, SEO analysis, SSL checks, performance monitoring. Supports x402 and Stripe MPP payments.
    31 npm
    6
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    100+ agent-payable C-suite expertises with x402 micro-payments — competitive intel, SEC filings, sanctions, KYC, clinical evidence, real estate, ESG. 183 tools, free tier 100 calls/month.
    1
    -
  • F
    license
    B
    quality
    D
    maintenance
    MCP server for paid business data services with free previews and paid tools (enriched search and competitive analysis) using x402 payment flow via Pyrimid Protocol on Base.
    5
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.