{
  "schemaVersion": "1.0.0",
  "target": {
    "id": "microsoft-learn",
    "endpoint": "https://learn.microsoft.com/api/mcp",
    "sourceUrl": "https://learn.microsoft.com/en-us/training/support/mcp"
  },
  "run": {
    "id": "904f5c02-9b46-4b29-8cc7-afe25eef5189",
    "startedAt": "2026-10-15T07:14:23.435Z",
    "completedAt": "2026-10-15T07:14:24.660Z",
    "runnerVersion": "1.0.0",
    "protocol": "2025-06-18",
    "limits": {
      "requestTimeoutMs": 12000,
      "runTimeoutMs": 35000,
      "responseBytes": 1048576,
      "requests": 9
    }
  },
  "scenario": {
    "targetId": "microsoft-learn",
    "tool": "microsoft_docs_fetch",
    "arguments": {
      "url": "https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview"
    },
    "task": "Fetch the public Azure Functions overview.",
    "expectedText": ["Azure Functions", "serverless"],
    "id": "learn-fetch-functions",
    "version": "1"
  },
  "result": {
    "status": "passed",
    "outcome": "The response passed the registered content assertions.",
    "isError": false,
    "durationMs": 171,
    "responseBytes": 4330,
    "sha256": "4f5a84cc1d1c1d8a6542946c227f7d09388a188ea2f75554badbc1c3fb39afd7",
    "excerpt": "# What is Azure Functions?\r\n\r\nAzure Functions is a serverless solution that allows you to build robust apps while using less code, and with less infrastructure and lower costs. Instead of worrying about deploying and maintaining servers, you can use the cloud infrastructure to provide all the up-to-date resources needed to keep your applications running.\r\n\r\nYou focus on the code that matters most to you, in the most productive language for you, and Azure Functions handles the rest. For a list of supported languages, see [Supported languages in Azure Functions](supported-languages).\r\n\r\n## Scenarios\r\n\r\nFunctions provides a comprehensive set of event-driven [triggers and bindings](functions-triggers-bindings) that connect your functions to other services without having to write extra code.\r\n\r\nThe following list includes common integrated scenarios that use Functions.\r\n\r\n| If you want to... | then... |\r\n| --- | --- |\r\n| [Process file uploads](functions-scenarios#process-file-uploads) | Run code when a file is uploaded or changed in blob storage. |\r\n| [Process data in real time](functions-scenarios#real-time-stream-and-event-processing) | Capture and transform data from event and IoT so",
    "assertions": [
      {
        "text": "Azure Functions",
        "passed": true
      },
      {
        "text": "serverless",
        "passed": true
      }
    ]
  },
  "evidence": {
    "toolCalls": 1,
    "requests": [
      {
        "method": "initialize",
        "durationMs": 666,
        "responseBytes": 1950,
        "httpStatus": 200
      },
      {
        "method": "notifications/initialized",
        "durationMs": 147,
        "responseBytes": 0,
        "httpStatus": 202
      },
      {
        "method": "tools/list",
        "durationMs": 207,
        "responseBytes": 4950,
        "httpStatus": 200
      },
      {
        "method": "tools/call",
        "durationMs": 169,
        "responseBytes": 4387,
        "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."
  ]
}
