{
  "schemaVersion": "1.0.0",
  "target": {
    "id": "cloudflare-docs",
    "endpoint": "https://docs.mcp.cloudflare.com/mcp",
    "sourceUrl": "https://raw.githubusercontent.com/cloudflare/mcp-server-cloudflare/main/apps/docs-ai-search/README.md"
  },
  "run": {
    "id": "6c468a1e-fff4-45b9-831d-50aadd46d313",
    "startedAt": "2026-10-15T07:18:10.347Z",
    "completedAt": "2026-10-15T07:18:20.633Z",
    "runnerVersion": "1.0.0",
    "protocol": "2025-11-25",
    "limits": {
      "requestTimeoutMs": 12000,
      "runTimeoutMs": 35000,
      "responseBytes": 1048576,
      "requests": 9
    }
  },
  "scenario": {
    "targetId": "cloudflare-docs",
    "tool": "search_cloudflare_documentation",
    "arguments": {
      "query": "Cloudflare Workers fetch handler"
    },
    "task": "Find Cloudflare's public documentation for a Workers fetch handler.",
    "expectedText": ["fetch", "workers"],
    "id": "cloudflare-workers-docs",
    "version": "1"
  },
  "result": {
    "status": "passed",
    "outcome": "The response passed the registered content assertions.",
    "isError": false,
    "durationMs": 9480,
    "responseBytes": 65140,
    "sha256": "ccef0c8d1c0e37a98dfda62fe18cbd49c22dc8c59db2449c3c2252aef039e043",
    "excerpt": "<result>\n<url>https://developers.cloudflare.com/workers/languages/python/basics/</url>\n<title>Basics</title>\n<text>\n---\ntitle: The Basics\ndescription: Learn the basics of Python Workers\nimage: https://developers.cloudflare.com/dev-products-preview.png\n---\n\n> Documentation Index  \n> Fetch the complete documentation index at: https://developers.cloudflare.com/workers/llms.txt  \n> Use this file to discover all available pages before exploring further. \n\n[Skip to content](#%5Ftop) \n\n# The Basics\n\n## Fetch Handler\n\nAs mentioned in the [introduction to Python Workers](/workers/languages/python/), a Python Worker can be as simple as four lines of code:\n\nPython\n\n```\nfrom workers import WorkerEntrypoint, Response\nclass Default(WorkerEntrypoint):    async def fetch(self, request):        return Response(\"Hello World!\")\n```\n\nSimilar to other Workers, the main entry point for a Python worker is the [fetch handler](/workers/runtime-apis/handlers/fetch) which handles incoming requests sent to the Worker.\n\nIn a Python Worker, this handler is placed in a `Default` class that extends the `WorkerEntrypoint` class (which you can import from the `workers` SDK module).\n\n## The `Request` Interface\n\nThe ",
    "assertions": [
      {
        "text": "fetch",
        "passed": true
      },
      {
        "text": "workers",
        "passed": true
      }
    ]
  },
  "evidence": {
    "toolCalls": 1,
    "requests": [
      {
        "method": "initialize",
        "durationMs": 601,
        "responseBytes": 224,
        "httpStatus": 200
      },
      {
        "method": "notifications/initialized",
        "durationMs": 115,
        "responseBytes": 0,
        "httpStatus": 202
      },
      {
        "method": "tools/list",
        "durationMs": 58,
        "responseBytes": 1860,
        "httpStatus": 200
      },
      {
        "method": "tools/call",
        "durationMs": 9479,
        "responseBytes": 65197,
        "httpStatus": 200
      }
    ]
  },
  "limitations": [
    "One fixed public read-only request from a direct MCP client. No model selection, ChatGPT/Claude host, OAuth, private account or write behavior was tested.",
    "Content assertions check the listed literal terms and absence of a tool error; they do not establish complete factual correctness, relevance or production reliability.",
    "Observed call duration is one sample and includes network conditions. It is not a latency benchmark or a comparison between services.",
    "Only the first tools/list page is inspected for this selected tool. No notification stream, redirect, credentials or caller-supplied scenario is allowed.",
    "Response SHA-256 covers the UTF-8 JSON serialization of the SDK-parsed tool result. Only a bounded public text excerpt is retained; it is untrusted server content."
  ]
}
