Timestamped public URL observations with SHA-256 fingerprints, paid in USDC on Base via x402.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Describe FreshProof, its observation semantics, current MCP price and payment network. This tool is free.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Describe FreshProof, its observation semantics, current MCP price and payment network. This tool is free.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Buy a timestamped FreshProof observation of a public HTTP/HTTPS URL. Returns final URL, observation timestamp, age, HTTP status, SHA-256 body hash, body size, ETag, Last-Modified, fetch duration, and whether the observation came from shared cache or a fresh public-network request. Set max_age=0 when a new public-network request is required. The response body itself is not returned.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public HTTP or HTTPS URL to observe |
| max_age | integer | Maximum acceptable observation age in seconds. Defaults to 300. Set to 0 to force a fresh public-network request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Public HTTP or HTTPS URL to observe"
},
"max_age": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum acceptable observation age in seconds. Defaults to 300. Set to 0 to force a fresh public-network request."
}
}
}Verify an existing FreshProof Proof Receipt without making a new network request. This free tool checks deterministic receipt integrity and optionally evaluates trust policy rules. Use it when you already have a proof_id from observe_url or verify_url and want to re-check evidence without paying for another observation. The result includes valid, decision (PASS, FAIL, or UNKNOWN), per-rule checks, and the stored receipt.
| Argument | Type | Description |
|---|---|---|
| policy | object | Optional declarative trust policy. All supplied rules must pass for decision PASS; any failed rule yields FAIL. UNKNOWN is reserved for cases where FreshProof cannot make a reliable policy decision. |
| proof_id* | string | FreshProof proof identifier returned by observe_url or verify_url. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proof_id"
],
"properties": {
"policy": {
"type": "object",
"properties": {
"status_in": {
"type": "array",
"items": {
"type": "integer",
"maximum": 599,
"minimum": 100
},
"minItems": 1,
"description": "Allowed HTTP status codes. The rule passes when the observed status is in this list."
},
"max_age_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum allowed age of the stored observation in seconds at verification time."
},
"final_host_equals": {
"type": "string",
"minLength": 1,
"description": "Expected lowercase hostname after redirects, for example example.com. Provide a hostname, not a full URL."
},
"content_hash_equals": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "Expected SHA-256 response-body fingerprint, including the sha256: prefix. Passes only on exact equality."
},
"original_host_equals": {
"type": "string",
"minLength": 1,
"description": "Expected lowercase hostname from the originally requested URL. Provide a hostname, not a full URL."
},
"changed_since_content_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "Prior SHA-256 response-body fingerprint. Passes when the current proof has a different content hash."
},
"require_same_origin_redirect": {
"type": "boolean",
"description": "When true, fails if the final URL origin differs from the original URL origin after redirects."
}
},
"description": "Optional declarative trust policy. All supplied rules must pass for decision PASS; any failed rule yields FAIL. UNKNOWN is reserved for cases where FreshProof cannot make a reliable policy decision.",
"additionalProperties": false
},
"proof_id": {
"type": "string",
"pattern": "^fp1_[a-f0-9]{64}$",
"description": "FreshProof proof identifier returned by observe_url or verify_url."
}
}
}Verify what is observable at a public URL before an agent trusts, pays, or acts. This paid tool combines observe_url and verify_proof in one call: it buys an observation, creates or returns a Proof Receipt, and evaluates the supplied trust policy. Set max_age=0 when current public-network evidence is required. The result contains both observation evidence and verification with decision PASS, FAIL, or UNKNOWN.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public HTTP or HTTPS URL to observe and verify. |
| policy* | object | Declarative trust policy evaluated against the resulting Proof Receipt. |
| max_age | integer | Maximum acceptable observation age in seconds. Defaults to 300. Set to 0 to require a fresh public-network request before policy evaluation. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url",
"policy"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Public HTTP or HTTPS URL to observe and verify."
},
"policy": {
"type": "object",
"properties": {
"status_in": {
"type": "array",
"items": {
"type": "integer",
"maximum": 599,
"minimum": 100
},
"minItems": 1,
"description": "Allowed HTTP status codes. The rule passes when the observed status is in this list."
},
"max_age_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum allowed age of the stored observation in seconds at verification time."
},
"final_host_equals": {
"type": "string",
"minLength": 1,
"description": "Expected lowercase hostname after redirects, for example example.com. Provide a hostname, not a full URL."
},
"content_hash_equals": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "Expected SHA-256 response-body fingerprint, including the sha256: prefix. Passes only on exact equality."
},
"original_host_equals": {
"type": "string",
"minLength": 1,
"description": "Expected lowercase hostname from the originally requested URL. Provide a hostname, not a full URL."
},
"changed_since_content_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "Prior SHA-256 response-body fingerprint. Passes when the current proof has a different content hash."
},
"require_same_origin_redirect": {
"type": "boolean",
"description": "When true, fails if the final URL origin differs from the original URL origin after redirects."
}
},
"description": "Declarative trust policy evaluated against the resulting Proof Receipt.",
"additionalProperties": false
},
"max_age": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum acceptable observation age in seconds. Defaults to 300. Set to 0 to require a fresh public-network request before policy evaluation."
}
}
}