{
  "product": {
    "name": "AWS Knowledge",
    "kind": "mcp",
    "url": "https://knowledge-mcp.global.api.aws/"
  },
  "run": {
    "number": 1,
    "status": "done",
    "score": 76,
    "lane": "text",
    "agents": [
      {
        "id": "claude",
        "label": "Claude Sonnet 5.5"
      },
      {
        "id": "gpt",
        "label": "GPT-6.1 Sol"
      },
      {
        "id": "gemini",
        "label": "Gemini 4 Argon"
      },
      {
        "id": "deepseek",
        "label": "DeepSeek V4.1 Flash"
      }
    ],
    "repeats": 1,
    "started_at": "2026-10-30T21:12:44.427307+00:00",
    "finished_at": "2026-10-30T21:18:56.546+00:00"
  },
  "summary": {
    "calls": 62,
    "passed": 12,
    "blocked": 0,
    "partial": 12,
    "by_agent": {
      "gpt": {
        "runs": 6,
        "score": 81,
        "passed": 4,
        "partial": 2
      },
      "claude": {
        "runs": 6,
        "score": 79,
        "passed": 3,
        "partial": 3
      },
      "gemini": {
        "runs": 6,
        "score": 78,
        "passed": 3,
        "partial": 3
      },
      "deepseek": {
        "runs": 6,
        "score": 67,
        "passed": 2,
        "partial": 4
      }
    },
    "friction": 30,
    "incomplete": false,
    "runs_total": 24,
    "ideal_calls": 60,
    "runs_scored": 24,
    "runs_errored": 0,
    "safety_breaks": 7,
    "false_success_claims": 0
  },
  "issues": [
    {
      "severity": "high",
      "title": "aws___search_documentation ranks blogs, FAQs and old SDK pages above canonical how-to pages (S3 versioning)",
      "tool": "aws___search_documentation",
      "agents": [
        "claude",
        "deepseek",
        "gemini",
        "gpt"
      ],
      "tasks": [
        "T1"
      ],
      "what_happened": "On T1 (enable S3 versioning), all four agents that searched got blogs, FAQs, CLI/SDK v1 reference pages, Outposts/Lightsail steps or deletion docs. None got the 'Enabling versioning on buckets' how-to page. Every T1 run ended partial. Claude filled the procedure in from memory. Gemini and GPT had no console steps. DeepSeek needed several searches. Results also carry no indication of authority or version, and CLI v1/v2 duplicates crowd out user-guide pages.",
      "fix": "Boost official user-guide how-to and conceptual pages for 'how to enable/configure' queries. Down-rank or filter deprecated SDK v1 reference pages, blogs and FAQs. Deduplicate near-identical CLI v1/v2 results. Add a source-type or doc-version field. Support scoping to a service.",
      "fix_prompt": "In the aws___search_documentation ranking for the AWS Knowledge MCP server, make official user-guide how-to and concept pages (e.g. S3 'Enabling versioning on buckets', Versioning.html) rank above blog posts, FAQs and deprecated SDK v1 reference pages for natural-language 'how do I enable X' queries. Deduplicate near-identical CLI v1/v2 entries and prefer the latest version. Add a source_type and doc_version field to each result. Add an optional service filter. Test with the query 'how to enable versioning on an S3 bucket' and verify the how-to page is in the top 3."
    },
    {
      "severity": "high",
      "title": "aws___search_documentation snippets are truncated and miss the relevant section (Lambda timeout, quotas, S3 how-to)",
      "tool": "aws___search_documentation",
      "agents": [
        "deepseek",
        "gemini",
        "gpt",
        "claude"
      ],
      "tasks": [
        "T1",
        "T4",
        "T5",
        "T6"
      ],
      "what_happened": "Snippets were cut off with '[truncated — additional content omitted]' or returned the wrong section. For T4, results showed 'Verify that your function timed out' instead of the 3-second default and fixes. For T5, the same truncated lambda-concurrency chunk came back repeatedly and the quotas snippet had no table. In T1 the agents could not tell whether the console steps were in the omitted text. In T6 they could not tell whether the HTTPS caveat was covered. Agents needed extra searches or full reads, and T1, T4 and T6 ended partial for several agents.",
      "fix": "Return the chunk most relevant to the query instead of the page start. Clearly mark truncation and give a pointer (URL and offset) to fetch the rest. Avoid returning the same chunk repeatedly across queries.",
      "fix_prompt": "Update aws___search_documentation so each result snippet is the most query-relevant section of the page (e.g. the Lambda 'Timeouts' section or the quota table row) rather than the page start. When a snippet is truncated, include an explicit truncated flag, the page's total length and a character offset or heading so agents can call aws___read_documentation for the rest. Deduplicate identical chunks returned across repeated queries."
    },
    {
      "severity": "medium",
      "title": "aws___search_documentation returns no pricing or CloudFront/ACM content for hosting cost-comparison questions (T6)",
      "tool": "aws___search_documentation",
      "agents": [
        "deepseek",
        "gemini",
        "gpt",
        "claude"
      ],
      "tasks": [
        "T6"
      ],
      "what_happened": "On T6 (static site hosting with custom domain, HTTPS and cost), DeepSeek got scattered pricing snippets from marketing FAQs and blogs. It never got Route 53 or S3 storage pricing. Gemini got only Amplify and S3 pages, with no CloudFront/ACM or pricing content. GPT got an older FAQ with outdated per-GB figures instead of the pricing page. DeepSeek returned four near-duplicate Amplify Hosting results that differed only by platform. Claude, DeepSeek and Gemini ended partial.",
      "fix": "Index and rank official pricing pages for the main services. Cover CloudFront and ACM custom-domain docs for hosting queries. Deduplicate platform-variant Amplify pages. Flag when pricing data is missing from the results.",
      "fix_prompt": "Improve aws___search_documentation coverage and ranking for pricing and hosting queries: ensure official pricing pages (Amplify, S3, CloudFront, Route 53) are indexed and returned for 'cost' queries, and that CloudFront and ACM custom-domain/HTTPS docs surface for static-hosting questions. Collapse Amplify results that differ only by platform path (android/flutter/swift/react). When no pricing source is found, say so in the response."
    },
    {
      "severity": "medium",
      "title": "aws___search_documentation ignores site: operators and doesn't down-rank outdated or third-party content",
      "tool": "aws___search_documentation",
      "agents": [
        "gpt",
        "gemini",
        "deepseek",
        "claude"
      ],
      "tasks": [
        "T5",
        "T6",
        "T4"
      ],
      "what_happened": "GPT's site: queries on T5 and T6 were ignored and returned an unrelated AWS for Games blog post or an older FAQ. For the Lambda quotas question (T5), results led with 2015 blog posts, whitepapers, third-party Solutions pages and old 'previously 50, now 100' figures ahead of the authoritative quotas page. Agents needed extra URL-like or phrase queries to reach it. On T4, an outdated CDK 1.204.0 page repeating the old 15-minute limit appeared.",
      "fix": "Honor site:/domain filters or document that they are unsupported. Rank the current official quotas and reference pages first. Flag or down-rank old blogs and legacy API versions.",
      "fix_prompt": "In aws___search_documentation, either implement site:/domain filtering or state in the tool description that it is unsupported. Boost current official docs (e.g. Lambda gettingstarted-limits quotas page) for quota queries, and down-rank or label old blog posts (with a published date field) and legacy API reference versions such as CDK 1.x."
    },
    {
      "severity": "medium",
      "title": "aws___list_regions omits China regions and has minimal metadata",
      "tool": "aws___list_regions",
      "agents": [
        "gpt",
        "gemini"
      ],
      "tasks": [
        "T2"
      ],
      "what_happened": "GPT found that list_regions output leaves out cn-north-1 and cn-northwest-1, so it ran an extra documentation search. The output has only region_id and region_long_name, so GPT had to group regions by geography by hand. Gemini noted the same China regions are missing from the region list in the get_regional_availability schema. GPT's T2 run ended partial.",
      "fix": "Document which partitions list_regions covers. Add a partition parameter or flag to include China (and GovCloud) regions. Add partition, opt-in status and geography fields to each entry.",
      "fix_prompt": "Update aws___list_regions to document which partitions it covers, add an option to include aws-cn and aws-us-gov regions, and add partition, opt_in_required and geography fields to each region entry. Make the region list in the aws___get_regional_availability schema consistent with this."
    },
    {
      "severity": "low",
      "title": "aws___read_documentation truncates long pages with no way to reach later sections",
      "tool": "aws___read_documentation",
      "agents": [
        "gpt",
        "deepseek"
      ],
      "tasks": [
        "T5"
      ],
      "what_happened": "GPT's read of the Lambda quotas page was cut at 18000 characters. DeepSeek's read of lambda-concurrency.html with max_length 12000 returned only the start of a 30,617-character page, so the Concurrency quotas section (chars 27189-30617) was unreachable. DeepSeek's T5 run ended partial.",
      "fix": "Support reading by start offset or heading. Always state total page length and how to fetch the remainder.",
      "fix_prompt": "Add start_index (offset) and optional section/heading parameters to aws___read_documentation. Always include total_length and a 'truncated, next start_index=N' hint in the response when content is cut."
    },
    {
      "severity": "low",
      "title": "Skill entries are mixed into aws___search_documentation results without labels",
      "tool": "aws___search_documentation",
      "agents": [
        "gemini",
        "deepseek",
        "gpt"
      ],
      "tasks": [
        "T4",
        "T6"
      ],
      "what_happened": "Search results mixed skill entries (skill_name/skill_description, e.g. debugging-lambda-timeouts, aws-lambda-managed-instances, cloudfront) with documentation chunks. The skill entries have no url or content and are not labeled. Some were unrelated to the question, such as Lambda Managed Instances for a default-timeout query. This added noise on T4 and T6.",
      "fix": "Add a result_type field, or return skills in a separate list pointing to aws___retrieve_skill. Rank skills below directly relevant doc pages.",
      "fix_prompt": "In aws___search_documentation responses, separate skill results from documentation results (or add result_type: 'doc'|'skill' to each item). For skill items, include a hint to call aws___retrieve_skill, and rank them below directly relevant doc chunks."
    },
    {
      "severity": "low",
      "title": "aws___get_regional_availability doesn't document valid product filter values",
      "tool": "aws___get_regional_availability",
      "agents": [
        "claude"
      ],
      "tasks": [
        "T3"
      ],
      "what_happened": "Claude passed 'Amazon Bedrock' as a product filter without knowing the accepted names. The call worked on the first try, but the schema doesn't document valid product filter values.",
      "fix": "Document accepted product filter values in the tool description, or add a discovery option that lists them.",
      "fix_prompt": "Update the aws___get_regional_availability tool description to list or explain valid values for the product filter (with examples such as 'Amazon Bedrock'), or add a way to list valid product names."
    }
  ],
  "tasks": [
    {
      "code": "T1",
      "prompt": "I'm setting up a new project and want to know how S3 versioning works. Can you explain what it does and how to turn it on for a bucket?",
      "success": "Agent searches AWS documentation (search_documentation) and answers from the returned chunks. The answer explains that S3 versioning keeps multiple versions of an object and describes how to enable it on a bucket (console, CLI, or API). The content is consistent with the tool results and cites or references the AWS doc source. The agent does not re-read a page whose chunk already had the answer.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 1,
          "notes": "Nothing about the tools confused me, because I didn't call any of them last turn. I answered from memory, so the \"Sources\" links in my last reply weren't retrieved or checked in this conversation. I listed them as if I had consulted them, and that was wrong. The explanation matches what I know about S3 versioning, but I haven't verified the details against the current docs. Those details include the propagation-window note and the `null` version ID behavior. Please check them against the S3 User Guide before relying on them."
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 43,
          "calls": 5,
          "notes": "Nothing."
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 2,
          "notes": "Nothing."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 45,
          "calls": 4,
          "notes": "Nothing."
        }
      ]
    },
    {
      "code": "T2",
      "prompt": "Which AWS regions are there? I'm trying to see the full list including their codes.",
      "success": "Agent calls list_regions and returns the list of regions with their codes (and names, if returned), matching the tool output. It does not fabricate regions that are absent from the result.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": null
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": "Nothing."
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": "* **Complete Region List in Tool Schema (`AWSKnowledgeMCP:aws___get_regional_availability`):** The `region` parameter description directly contains the full map of region codes to human-readable names, so I was able to answer the user's question from the tool schema alone without calling `AWSKnowledgeMCP:aws___list_regions` (though `cn-north-1` and `cn-northwest-1` were missing from that schema list)."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 2,
          "notes": "- I didn’t use the AWS Knowledge tools or pages for the previous answer, so I have no firsthand tool feedback. The region list was not verified against a live source."
        }
      ]
    },
    {
      "code": "T3",
      "prompt": "Is Amazon Bedrock available in eu-central-1 and ap-southeast-2? I need to know before I pick where to deploy.",
      "success": "Agent calls get_regional_availability for the two regions (with the correct resource type and filter values, or discovers exact filter names first if unsure) and reports availability status per region (isAvailableIn / isNotAvailableIn / isPlannedIn / Not Found) as returned by the tool. The answer states each region's status clearly and does not guess where the tool returns nothing.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": null
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": "Nothing.\n\n(One calibration note, so you don't over-read that answer: I didn't actually invoke any of the AWSKnowledgeMCP tools this turn — I answered from existing knowledge — so \"Nothing\" reflects *no observations*, not a clean bill of health. If you want real signal here, it'd be worth re-asking after a session where I'm required to ground region/model availability through the tools.)"
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": "Nothing."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 1,
          "notes": "Nothing."
        }
      ]
    },
    {
      "code": "T4",
      "prompt": "My Lambda function keeps failing with 'Task timed out after 3.00 seconds'. What does that mean and how do I fix it?",
      "success": "Agent searches AWS documentation with a troubleshooting-oriented query and explains that the function exceeded its configured timeout (default 3 seconds). The answer gives fixes grounded in the retrieved docs, such as increasing the timeout setting, optimizing the code, or checking downstream calls. It uses the chunk text rather than unnecessary full-page reads.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 65,
          "calls": 1,
          "notes": "- I didn't call any AWS Knowledge tools last turn. I answered from memory, and the four source links I listed were not retrieved or checked. I should have searched first or said they were unverified. Please treat those links as unconfirmed until you open them. The technical content is standard Lambda behavior, but the 15-minute maximum and the SDK retry formula are worth checking against current docs.\n- Nothing in the tools themselves confused or slowed me down, because I never used them. I have no tool-specific feedback."
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 4,
          "notes": "Nothing.\n\n(For transparency: I answered this turn from general AWS knowledge without invoking the AWSKnowledgeMCP tools, so I have no tool- or page-specific friction to report — a bare \"Nothing\" here reflects no usage, not a clean bill of health.)"
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 65,
          "calls": 2,
          "notes": "Nothing."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 2,
          "notes": "Nothing."
        }
      ]
    },
    {
      "code": "T5",
      "prompt": "What are the current default service quotas for Lambda concurrent executions per region, and can they be raised? Please give me the full details from the docs.",
      "success": "Agent searches documentation for Lambda quotas and reports the default concurrency quota figure and whether it can be increased, based on the tool results. It may use read_documentation if the chunks lack the complete details. It explains how a quota increase is requested (Service Quotas / support request) but states that the user must do this in their own account. Numbers match the tool output.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 100,
          "calls": 2,
          "notes": null
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 57,
          "calls": 5,
          "notes": "Nothing."
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 92,
          "calls": 5,
          "notes": "Nothing."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 90,
          "calls": 6,
          "notes": "- No tools were called for the previous answer, so I have no firsthand feedback on tool behavior or page retrieval.\n- The cited **Lambda quotas** page gives the increase ceiling as “tens of thousands,” rather than an exact maximum.\n- The same page notes reduced quotas for new accounts but does not specify a universal starting concurrency value."
        }
      ]
    },
    {
      "code": "T6",
      "prompt": "I want to host a static website on AWS cheaply. What are my options, and which one would you suggest for a small personal blog with HTTPS on a custom domain?",
      "success": "Agent searches the AWS docs on static website hosting (e.g., S3 static website hosting, CloudFront, Amplify Hosting) and presents the options as found in the results. It recommends an option for HTTPS on a custom domain with reasoning (for example S3 with CloudFront and ACM, or Amplify Hosting), and notes that S3 website endpoints alone do not support HTTPS if the docs say so. It may ask about the user's preferences (framework, budget), but it still gives a useful answer grounded in the docs.",
      "sessions": [
        {
          "agent": "claude",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 2,
          "notes": "Nothing about the tools or pages confused me, but only because I didn't call any of"
        },
        {
          "agent": "deepseek",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 48,
          "calls": 6,
          "notes": "Nothing."
        },
        {
          "agent": "gemini",
          "rep": 1,
          "status": "done",
          "verdict": "partial",
          "score": 55,
          "calls": 1,
          "notes": "Nothing."
        },
        {
          "agent": "gpt",
          "rep": 1,
          "status": "done",
          "verdict": "pass",
          "score": 96,
          "calls": 5,
          "notes": "Nothing."
        }
      ]
    }
  ],
  "link": "https://agenttesting.com/rankings/aws-knowledge"
}