Koskamo

ScrapeCheck MCP

Verifies scraped data against the live source page by re-fetching the URL and returning an ed25519-signed verdict (pass, fail, or unverifiable). It integrates with agent spending loops via x402 payments, allowing agents to check data truthfulness before acting on it without requiring API keys or signups.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

ScrapeCheck MCP logo, by FieldmodeLLCCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by FieldmodeLLC
You need:no API key, no signup
MCP endpoint (Streamable HTTP)
https://scrapecheck-mcp.fly.dev/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 2 of 2 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Verify scraped data against the live source page
  • Check data truthfulness before agent acts
  • Receive ed25519-signed verdicts via x402

Source and maintenance

Community listingRegistry 0.2.1
Maintenance checked

Protocol and capabilities

Server
scrapecheck 0.2.1
MCP protocol negotiated in check
2025-11-25
Tools
3 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

3 advertised

verify_web_field — Verify scraped claim (full)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Checks whether a value you did not fetch yourself is actually on the source page right now, and returns a signed pass/fail/unverifiable verdict. Not a retrieval tool: it checks a value you already have, it does not find data for you. Use it when you hold a value that came from somewhere else (a search result, a scraper, an upstream API, another agent) and you need to know it is on the source page before you act on it. Takes the URL, the claimed value, and what was asked; it independently re-fetches the page and never trusts the fetch you were given. Structural guarantee: a claim is never certified unless the re-fetched page contains it, and the model judge can only veto a pass, never create one. Anything unconfirmed returns unverifiable, never pass. Every verdict carries a stable verdict_id, the engine digest that produced it, and a signature verifiable offline against the public key (see get_verifier_info). Scope: server-rendered pages; JS-only content returns unverifiable rather than a guess. $0.01 per check, first 100 free, paid in-band via x402.

verify_web_field input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url",
    "claim",
    "asked"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL of the source page the claim was scraped from"
    },
    "asked": {
      "type": "string",
      "minLength": 1,
      "description": "What the scraper was asked to extract, e.g. \"get the current price and stock status\""
    },
    "claim": {
      "type": "object",
      "description": "The scraped field(s) to verify against the live page, e.g. {\"price\": \"£51.77\", \"in_stock\": true}",
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "additionalProperties": false
}
verify_web_field output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "verdict_id",
    "verdict",
    "confidence",
    "reasons",
    "evidence",
    "check_type",
    "engine",
    "signature"
  ],
  "properties": {
    "engine": {
      "type": "string"
    },
    "key_id": {
      "type": "string"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "verdict": {
      "type": "string"
    },
    "evidence": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "signature": {
      "type": "string"
    },
    "check_type": {
      "type": "string"
    },
    "confidence": {
      "type": "number"
    },
    "verdict_id": {
      "type": "string"
    },
    "source_hash": {
      "type": [
        "string",
        "null"
      ]
    },
    "verifier_url": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
verify_web_field annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
verify_presence — Presence check (not an answer check)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Presence only: confirms the value appears on the page, NOT that it is the right answer to what was asked. Never returns pass. A was-price, a different variant's price, a shipping cost, or a tax figure can all satisfy presence. Verdicts are present, fail, or unverifiable, signed, with check_type web_field_presence_v1. Use it as a cheap screen before a full check, or when you already know what the value means and only need to confirm it still appears on the page. If your decision depends on the value being the right value, call verify_web_field instead. Scope: server-rendered pages. $0.002 per check, paid in-band via x402.

verify_presence input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url",
    "claim",
    "asked"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL of the source page the claim was scraped from"
    },
    "asked": {
      "type": "string",
      "minLength": 1,
      "description": "What the scraper was asked to extract, e.g. \"get the current price and stock status\""
    },
    "claim": {
      "type": "object",
      "description": "The scraped field(s) to verify against the live page, e.g. {\"price\": \"£51.77\", \"in_stock\": true}",
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "additionalProperties": false
}
verify_presence output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "verdict_id",
    "verdict",
    "confidence",
    "reasons",
    "evidence",
    "check_type",
    "engine",
    "signature"
  ],
  "properties": {
    "engine": {
      "type": "string"
    },
    "key_id": {
      "type": "string"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "verdict": {
      "type": "string"
    },
    "evidence": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "signature": {
      "type": "string"
    },
    "check_type": {
      "type": "string"
    },
    "confidence": {
      "type": "number"
    },
    "verdict_id": {
      "type": "string"
    },
    "source_hash": {
      "type": [
        "string",
        "null"
      ]
    },
    "verifier_url": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
verify_presence annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_verifier_info — Verifier trust info (free)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Free. Returns the public key, engine version, benchmark summary with sample-size labels, and scope, so you can verify any verdict offline. Call this first if your selection policy requires evidence before trusting a verification provider: every verdict this service issues verifies offline against the returned key, so you do not have to trust the service at runtime to rely on its output.

get_verifier_info input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_verifier_info annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
469 ms
95th percentile latency
469 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 469 ms · metadata changed · 3 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http scrapecheck-mcp https://scrapecheck-mcp.fly.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add scrapecheck-mcp --url https://scrapecheck-mcp.fly.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable scrapecheck-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "scrapecheck-mcp": {
      "url": "https://scrapecheck-mcp.fly.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "scrapecheck-mcp": {
      "type": "streamableHttp",
      "url": "https://scrapecheck-mcp.fly.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start scrapecheck-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "scrapecheck-mcp": {
      "type": "http",
      "url": "https://scrapecheck-mcp.fly.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http scrapecheck-mcp https://scrapecheck-mcp.fly.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://scrapecheck-mcp.fly.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "scrapecheck-mcp": {
      "serverUrl": "https://scrapecheck-mcp.fly.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like ScrapeCheck MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.