From a6a5c960a6b80f2dc32bec2426f538e771d34c0c Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Mon, 25 May 2026 08:55:14 -0400 Subject: [PATCH 1/3] Ensure MCP tool outputs are always objects Signed-off-by: Juan Cruz Viotti --- ...025-11-25-get_schema_dependencies.all.hurl | 176 +++++++-------- ...-2025-11-25-get_schema_dependents.all.hurl | 40 ++-- .../hurl/mcp-2025-11-25-resources.all.hurl | 2 +- .../mcp-2025-11-25-search_schemas.all.hurl | 112 +++++----- .../mcp-2025-11-25-tools-integration.all.hurl | 6 +- ...025-11-25-get_schema_dependencies.all.hurl | 200 +++++++++--------- ...-2025-11-25-get_schema_dependents.all.hurl | 24 +-- .../hurl/mcp-2025-11-25-resources.all.hurl | 2 +- .../mcp-2025-11-25-search_schemas.all.hurl | 72 +++---- .../mcp-2025-11-25-tools-integration.all.hurl | 6 +- src/actions/action_dependency_tree_v1.h | 10 +- src/actions/action_schema_search_v1.h | 13 +- .../v1/schemas/mcp/tools/call/response.json | 25 ++- 13 files changed, 349 insertions(+), 339 deletions(-) diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl index 8d58ad26..ef4141b6 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl @@ -26,8 +26,8 @@ jsonpath "$.id" == 200 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -65,8 +65,8 @@ jsonpath "$.id" == 201 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -131,56 +131,56 @@ jsonpath "$.result.content[8].mimeType" == "application/schema+json" jsonpath "$.result.content[9].type" == "resource_link" jsonpath "$.result.content[9].uri" == "{{base}}/self/v1/schemas/mcp/tools/list/response" jsonpath "$.result.content[9].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 8 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" -jsonpath "$.result.structuredContent[0].at" == "/anyOf/0/$ref" -jsonpath "$.result.structuredContent[1].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" -jsonpath "$.result.structuredContent[1].at" == "/anyOf/1/$ref" -jsonpath "$.result.structuredContent[2].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[2].to" == "{{base}}/self/v1/schemas/mcp/error" -jsonpath "$.result.structuredContent[2].at" == "/anyOf/2/$ref" -jsonpath "$.result.structuredContent[3].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" -jsonpath "$.result.structuredContent[3].at" == "/anyOf/3/$ref" -jsonpath "$.result.structuredContent[4].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" -jsonpath "$.result.structuredContent[4].at" == "/anyOf/4/$ref" -jsonpath "$.result.structuredContent[5].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" -jsonpath "$.result.structuredContent[5].at" == "/anyOf/5/$ref" -jsonpath "$.result.structuredContent[6].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" -jsonpath "$.result.structuredContent[6].at" == "/anyOf/6/$ref" -jsonpath "$.result.structuredContent[7].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" -jsonpath "$.result.structuredContent[7].at" == "/anyOf/7/$ref" -variable "text" jsonpath "$" count == 8 -variable "text" jsonpath "$[0].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" -variable "text" jsonpath "$[0].at" == "/anyOf/0/$ref" -variable "text" jsonpath "$[1].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" -variable "text" jsonpath "$[1].at" == "/anyOf/1/$ref" -variable "text" jsonpath "$[2].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[2].to" == "{{base}}/self/v1/schemas/mcp/error" -variable "text" jsonpath "$[2].at" == "/anyOf/2/$ref" -variable "text" jsonpath "$[3].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" -variable "text" jsonpath "$[3].at" == "/anyOf/3/$ref" -variable "text" jsonpath "$[4].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" -variable "text" jsonpath "$[4].at" == "/anyOf/4/$ref" -variable "text" jsonpath "$[5].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" -variable "text" jsonpath "$[5].at" == "/anyOf/5/$ref" -variable "text" jsonpath "$[6].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" -variable "text" jsonpath "$[6].at" == "/anyOf/6/$ref" -variable "text" jsonpath "$[7].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" -variable "text" jsonpath "$[7].at" == "/anyOf/7/$ref" +jsonpath "$.result.structuredContent.results" count == 8 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" +jsonpath "$.result.structuredContent.results[0].at" == "/anyOf/0/$ref" +jsonpath "$.result.structuredContent.results[1].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" +jsonpath "$.result.structuredContent.results[1].at" == "/anyOf/1/$ref" +jsonpath "$.result.structuredContent.results[2].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[2].to" == "{{base}}/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results[2].at" == "/anyOf/2/$ref" +jsonpath "$.result.structuredContent.results[3].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" +jsonpath "$.result.structuredContent.results[3].at" == "/anyOf/3/$ref" +jsonpath "$.result.structuredContent.results[4].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" +jsonpath "$.result.structuredContent.results[4].at" == "/anyOf/4/$ref" +jsonpath "$.result.structuredContent.results[5].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" +jsonpath "$.result.structuredContent.results[5].at" == "/anyOf/5/$ref" +jsonpath "$.result.structuredContent.results[6].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" +jsonpath "$.result.structuredContent.results[6].at" == "/anyOf/6/$ref" +jsonpath "$.result.structuredContent.results[7].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" +jsonpath "$.result.structuredContent.results[7].at" == "/anyOf/7/$ref" +variable "text" jsonpath "$.results" count == 8 +variable "text" jsonpath "$.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" +variable "text" jsonpath "$.results[0].at" == "/anyOf/0/$ref" +variable "text" jsonpath "$.results[1].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" +variable "text" jsonpath "$.results[1].at" == "/anyOf/1/$ref" +variable "text" jsonpath "$.results[2].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[2].to" == "{{base}}/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results[2].at" == "/anyOf/2/$ref" +variable "text" jsonpath "$.results[3].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" +variable "text" jsonpath "$.results[3].at" == "/anyOf/3/$ref" +variable "text" jsonpath "$.results[4].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" +variable "text" jsonpath "$.results[4].at" == "/anyOf/4/$ref" +variable "text" jsonpath "$.results[5].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" +variable "text" jsonpath "$.results[5].at" == "/anyOf/5/$ref" +variable "text" jsonpath "$.results[6].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" +variable "text" jsonpath "$.results[6].at" == "/anyOf/6/$ref" +variable "text" jsonpath "$.results[7].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" +variable "text" jsonpath "$.results[7].at" == "/anyOf/7/$ref" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -282,36 +282,36 @@ jsonpath "$.result.content[8].mimeType" == "application/schema+json" jsonpath "$.result.content[9].type" == "resource_link" jsonpath "$.result.content[9].uri" == "{{base}}/self/v1/schemas/mcp/tools/list/response" jsonpath "$.result.content[9].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 8 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" -jsonpath "$.result.structuredContent[0].at" == "/anyOf/0/$ref" -jsonpath "$.result.structuredContent[2].to" == "{{base}}/self/v1/schemas/mcp/error" -variable "text" jsonpath "$" count == 8 -variable "text" jsonpath "$[0].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" -variable "text" jsonpath "$[0].at" == "/anyOf/0/$ref" -variable "text" jsonpath "$[1].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" -variable "text" jsonpath "$[1].at" == "/anyOf/1/$ref" -variable "text" jsonpath "$[2].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[2].to" == "{{base}}/self/v1/schemas/mcp/error" -variable "text" jsonpath "$[2].at" == "/anyOf/2/$ref" -variable "text" jsonpath "$[3].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" -variable "text" jsonpath "$[3].at" == "/anyOf/3/$ref" -variable "text" jsonpath "$[4].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" -variable "text" jsonpath "$[4].at" == "/anyOf/4/$ref" -variable "text" jsonpath "$[5].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" -variable "text" jsonpath "$[5].at" == "/anyOf/5/$ref" -variable "text" jsonpath "$[6].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" -variable "text" jsonpath "$[6].at" == "/anyOf/6/$ref" -variable "text" jsonpath "$[7].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" -variable "text" jsonpath "$[7].at" == "/anyOf/7/$ref" +jsonpath "$.result.structuredContent.results" count == 8 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" +jsonpath "$.result.structuredContent.results[0].at" == "/anyOf/0/$ref" +jsonpath "$.result.structuredContent.results[2].to" == "{{base}}/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results" count == 8 +variable "text" jsonpath "$.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/self/v1/schemas/mcp/initialize/response" +variable "text" jsonpath "$.results[0].at" == "/anyOf/0/$ref" +variable "text" jsonpath "$.results[1].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[1].to" == "{{base}}/self/v1/schemas/mcp/ping/response" +variable "text" jsonpath "$.results[1].at" == "/anyOf/1/$ref" +variable "text" jsonpath "$.results[2].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[2].to" == "{{base}}/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results[2].at" == "/anyOf/2/$ref" +variable "text" jsonpath "$.results[3].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[3].to" == "{{base}}/self/v1/schemas/mcp/resources/list/response" +variable "text" jsonpath "$.results[3].at" == "/anyOf/3/$ref" +variable "text" jsonpath "$.results[4].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[4].to" == "{{base}}/self/v1/schemas/mcp/resources/templates/list/response" +variable "text" jsonpath "$.results[4].at" == "/anyOf/4/$ref" +variable "text" jsonpath "$.results[5].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[5].to" == "{{base}}/self/v1/schemas/mcp/resources/read/response" +variable "text" jsonpath "$.results[5].at" == "/anyOf/5/$ref" +variable "text" jsonpath "$.results[6].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[6].to" == "{{base}}/self/v1/schemas/mcp/tools/list/response" +variable "text" jsonpath "$.results[6].at" == "/anyOf/6/$ref" +variable "text" jsonpath "$.results[7].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[7].to" == "{{base}}/self/v1/schemas/mcp/tools/call/response" +variable "text" jsonpath "$.results[7].at" == "/anyOf/7/$ref" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -497,8 +497,8 @@ jsonpath "$.id" == 213 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -781,8 +781,8 @@ jsonpath "$.id" == "dependencies-call-string-id" jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl index 6ec5f01f..d0e473ce 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl @@ -26,8 +26,8 @@ jsonpath "$.id" == 300 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -65,8 +65,8 @@ jsonpath "$.id" == 301 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -110,12 +110,12 @@ jsonpath "$.result.content[1].mimeType" == "application/schema+json" jsonpath "$.result.content[2].type" == "resource_link" jsonpath "$.result.content[2].uri" == "{{base}}/self/v1/schemas/mcp/response" jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/self/v1/schemas/mcp/error" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/self/v1/schemas/mcp/error" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -196,12 +196,12 @@ jsonpath "$.result.content[1].mimeType" == "application/schema+json" jsonpath "$.result.content[2].type" == "resource_link" jsonpath "$.result.content[2].uri" == "{{base}}/self/v1/schemas/mcp/response" jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/self/v1/schemas/mcp/error" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].from" == "{{base}}/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].from" == "{{base}}/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/self/v1/schemas/mcp/error" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -387,8 +387,8 @@ jsonpath "$.id" == 313 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -671,8 +671,8 @@ jsonpath "$.id" == "dependents-call-string-id" jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-resources.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-resources.all.hurl index a1f29fb1..9d499e69 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-resources.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-resources.all.hurl @@ -233,7 +233,7 @@ jsonpath "$.result.resources[42].uri" == "{{base}}/self/v1/schemas/mcp/tools/cal jsonpath "$.result.resources[42].name" == "response" jsonpath "$.result.resources[42].description" == "Sourcemeta One's response to a tool invocation" jsonpath "$.result.resources[42].mimeType" == "application/schema+json" -jsonpath "$.result.resources[42].size" == 4120 +jsonpath "$.result.resources[42].size" == 4491 jsonpath "$.result.resources[43].uri" == "{{base}}/self/v1/schemas/mcp/tools/list/request" jsonpath "$.result.resources[43].name" == "request" jsonpath "$.result.resources[43].description" == "Request from a client to list MCP tools" diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl index 15725449..72c2cba9 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl @@ -31,16 +31,16 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/test/object" -jsonpath "$.result.structuredContent[0].identifier" == "http://localhost:8000/test/object" -variable "text" jsonpath "$[0].path" == "/test/object" -variable "text" jsonpath "$[0].identifier" == "http://localhost:8000/test/object" -jsonpath "$.result.structuredContent[0].title" == "My Object" -variable "text" jsonpath "$[0].title" == "My Object" -jsonpath "$.result.structuredContent[0].description" == "An Object Example" -variable "text" jsonpath "$[0].description" == "An Object Example" +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/test/object" +jsonpath "$.result.structuredContent.results[0].identifier" == "http://localhost:8000/test/object" +variable "text" jsonpath "$.results[0].path" == "/test/object" +variable "text" jsonpath "$.results[0].identifier" == "http://localhost:8000/test/object" +jsonpath "$.result.structuredContent.results[0].title" == "My Object" +variable "text" jsonpath "$.results[0].title" == "My Object" +jsonpath "$.result.structuredContent.results[0].description" == "An Object Example" +variable "text" jsonpath "$.results[0].description" == "An Object Example" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -84,16 +84,16 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/test/object" -jsonpath "$.result.structuredContent[0].identifier" == "http://localhost:8000/test/object" -jsonpath "$.result.structuredContent[0].title" == "My Object" -jsonpath "$.result.structuredContent[0].description" == "An Object Example" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].path" == "/test/object" -variable "text" jsonpath "$[0].identifier" == "http://localhost:8000/test/object" -variable "text" jsonpath "$[0].title" == "My Object" -variable "text" jsonpath "$[0].description" == "An Object Example" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/test/object" +jsonpath "$.result.structuredContent.results[0].identifier" == "http://localhost:8000/test/object" +jsonpath "$.result.structuredContent.results[0].title" == "My Object" +jsonpath "$.result.structuredContent.results[0].description" == "An Object Example" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].path" == "/test/object" +variable "text" jsonpath "$.results[0].identifier" == "http://localhost:8000/test/object" +variable "text" jsonpath "$.results[0].title" == "My Object" +variable "text" jsonpath "$.results[0].description" == "An Object Example" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -177,12 +177,12 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/test/object" -jsonpath "$.result.structuredContent[0].identifier" == "http://localhost:8000/test/object" -variable "text" jsonpath "$[0].path" == "/test/object" -variable "text" jsonpath "$[0].identifier" == "http://localhost:8000/test/object" +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/test/object" +jsonpath "$.result.structuredContent.results[0].identifier" == "http://localhost:8000/test/object" +variable "text" jsonpath "$.results[0].path" == "/test/object" +variable "text" jsonpath "$.results[0].identifier" == "http://localhost:8000/test/object" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -270,8 +270,8 @@ jsonpath "$.result.content[10].uri" == "http://localhost:8000/test/description-o jsonpath "$.result.content[10].name" not exists jsonpath "$.result.content[10].description" == "A schema with only a description (04)" jsonpath "$.result.content[10].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 10 -variable "text" jsonpath "$" count == 10 +jsonpath "$.result.structuredContent.results" count == 10 +variable "text" jsonpath "$.results" count == 10 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -314,8 +314,8 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -353,8 +353,8 @@ jsonpath "$.id" == 1104 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" -jsonpath "$.result.structuredContent" count == 0 -variable "text" jsonpath "$" count == 0 +jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -402,10 +402,10 @@ jsonpath "$.result.content[2].uri" == "http://localhost:8000/test/description-on jsonpath "$.result.content[2].name" not exists jsonpath "$.result.content[2].description" == "A schema with only a description (02)" jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 2 -variable "text" jsonpath "$" count == 2 -jsonpath "$.result.structuredContent[0].title" == "" -jsonpath "$.result.structuredContent[0].description" == "A schema with only a description (01)" +jsonpath "$.result.structuredContent.results" count == 2 +variable "text" jsonpath "$.results" count == 2 +jsonpath "$.result.structuredContent.results[0].title" == "" +jsonpath "$.result.structuredContent.results[0].description" == "A schema with only a description (01)" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -453,10 +453,10 @@ jsonpath "$.result.content[2].uri" == "http://localhost:8000/test/title-only/02" jsonpath "$.result.content[2].name" == "Title Only 02" jsonpath "$.result.content[2].description" not exists jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 2 -variable "text" jsonpath "$" count == 2 -jsonpath "$.result.structuredContent[0].title" == "Title Only 01" -jsonpath "$.result.structuredContent[0].description" == "" +jsonpath "$.result.structuredContent.results" count == 2 +variable "text" jsonpath "$.results" count == 2 +jsonpath "$.result.structuredContent.results[0].title" == "Title Only 01" +jsonpath "$.result.structuredContent.results[0].description" == "" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -504,10 +504,10 @@ jsonpath "$.result.content[2].uri" == "http://localhost:8000/test/bare/02" jsonpath "$.result.content[2].name" not exists jsonpath "$.result.content[2].description" not exists jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 2 -variable "text" jsonpath "$" count == 2 -jsonpath "$.result.structuredContent[0].title" == "" -jsonpath "$.result.structuredContent[0].description" == "" +jsonpath "$.result.structuredContent.results" count == 2 +variable "text" jsonpath "$.results" count == 2 +jsonpath "$.result.structuredContent.results[0].title" == "" +jsonpath "$.result.structuredContent.results[0].description" == "" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -550,12 +550,12 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/test/object" -jsonpath "$.result.structuredContent[0].identifier" == "http://localhost:8000/test/object" -variable "text" jsonpath "$[0].path" == "/test/object" -variable "text" jsonpath "$[0].identifier" == "http://localhost:8000/test/object" +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/test/object" +jsonpath "$.result.structuredContent.results[0].identifier" == "http://localhost:8000/test/object" +variable "text" jsonpath "$.results[0].path" == "/test/object" +variable "text" jsonpath "$.results[0].identifier" == "http://localhost:8000/test/object" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -948,12 +948,12 @@ jsonpath "$.result.content[1].uri" == "http://localhost:8000/test/object" jsonpath "$.result.content[1].name" == "My Object" jsonpath "$.result.content[1].description" == "An Object Example" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/test/object" -jsonpath "$.result.structuredContent[0].identifier" == "http://localhost:8000/test/object" -variable "text" jsonpath "$[0].path" == "/test/object" -variable "text" jsonpath "$[0].identifier" == "http://localhost:8000/test/object" +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/test/object" +jsonpath "$.result.structuredContent.results[0].identifier" == "http://localhost:8000/test/object" +variable "text" jsonpath "$.results[0].path" == "/test/object" +variable "text" jsonpath "$.results[0].identifier" == "http://localhost:8000/test/object" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-tools-integration.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-tools-integration.all.hurl index 7a4697af..f8aeab8d 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-tools-integration.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-tools-integration.all.hurl @@ -144,14 +144,14 @@ Link: ; rel="describedby" [Captures] last_response: body schema_path: header "Link" regex "<([^>]+)>" -hit_path: jsonpath "$.result.structuredContent[0].path" +hit_path: jsonpath "$.result.structuredContent.results[0].path" text: jsonpath "$.result.content[0].text" [Asserts] jsonpath "$.jsonrpc" == "2.0" jsonpath "$.id" == 1210 jsonpath "$.result.isError" == false -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 variable "hit_path" == "/test/object" POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} diff --git a/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl b/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl index 858f8faf..328b9290 100644 --- a/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl +++ b/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl @@ -53,56 +53,56 @@ jsonpath "$.result.content[8].mimeType" == "application/schema+json" jsonpath "$.result.content[9].type" == "resource_link" jsonpath "$.result.content[9].uri" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" jsonpath "$.result.content[9].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 8 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" -jsonpath "$.result.structuredContent[0].at" == "/anyOf/0/$ref" -jsonpath "$.result.structuredContent[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" -jsonpath "$.result.structuredContent[1].at" == "/anyOf/1/$ref" -jsonpath "$.result.structuredContent[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -jsonpath "$.result.structuredContent[2].at" == "/anyOf/2/$ref" -jsonpath "$.result.structuredContent[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" -jsonpath "$.result.structuredContent[3].at" == "/anyOf/3/$ref" -jsonpath "$.result.structuredContent[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" -jsonpath "$.result.structuredContent[4].at" == "/anyOf/4/$ref" -jsonpath "$.result.structuredContent[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" -jsonpath "$.result.structuredContent[5].at" == "/anyOf/5/$ref" -jsonpath "$.result.structuredContent[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" -jsonpath "$.result.structuredContent[6].at" == "/anyOf/6/$ref" -jsonpath "$.result.structuredContent[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" -jsonpath "$.result.structuredContent[7].at" == "/anyOf/7/$ref" -variable "text" jsonpath "$" count == 8 -variable "text" jsonpath "$[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" -variable "text" jsonpath "$[0].at" == "/anyOf/0/$ref" -variable "text" jsonpath "$[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" -variable "text" jsonpath "$[1].at" == "/anyOf/1/$ref" -variable "text" jsonpath "$[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -variable "text" jsonpath "$[2].at" == "/anyOf/2/$ref" -variable "text" jsonpath "$[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" -variable "text" jsonpath "$[3].at" == "/anyOf/3/$ref" -variable "text" jsonpath "$[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" -variable "text" jsonpath "$[4].at" == "/anyOf/4/$ref" -variable "text" jsonpath "$[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" -variable "text" jsonpath "$[5].at" == "/anyOf/5/$ref" -variable "text" jsonpath "$[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" -variable "text" jsonpath "$[6].at" == "/anyOf/6/$ref" -variable "text" jsonpath "$[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" -variable "text" jsonpath "$[7].at" == "/anyOf/7/$ref" +jsonpath "$.result.structuredContent.results" count == 8 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" +jsonpath "$.result.structuredContent.results[0].at" == "/anyOf/0/$ref" +jsonpath "$.result.structuredContent.results[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" +jsonpath "$.result.structuredContent.results[1].at" == "/anyOf/1/$ref" +jsonpath "$.result.structuredContent.results[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results[2].at" == "/anyOf/2/$ref" +jsonpath "$.result.structuredContent.results[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" +jsonpath "$.result.structuredContent.results[3].at" == "/anyOf/3/$ref" +jsonpath "$.result.structuredContent.results[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" +jsonpath "$.result.structuredContent.results[4].at" == "/anyOf/4/$ref" +jsonpath "$.result.structuredContent.results[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" +jsonpath "$.result.structuredContent.results[5].at" == "/anyOf/5/$ref" +jsonpath "$.result.structuredContent.results[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" +jsonpath "$.result.structuredContent.results[6].at" == "/anyOf/6/$ref" +jsonpath "$.result.structuredContent.results[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" +jsonpath "$.result.structuredContent.results[7].at" == "/anyOf/7/$ref" +variable "text" jsonpath "$.results" count == 8 +variable "text" jsonpath "$.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" +variable "text" jsonpath "$.results[0].at" == "/anyOf/0/$ref" +variable "text" jsonpath "$.results[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" +variable "text" jsonpath "$.results[1].at" == "/anyOf/1/$ref" +variable "text" jsonpath "$.results[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results[2].at" == "/anyOf/2/$ref" +variable "text" jsonpath "$.results[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" +variable "text" jsonpath "$.results[3].at" == "/anyOf/3/$ref" +variable "text" jsonpath "$.results[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" +variable "text" jsonpath "$.results[4].at" == "/anyOf/4/$ref" +variable "text" jsonpath "$.results[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" +variable "text" jsonpath "$.results[5].at" == "/anyOf/5/$ref" +variable "text" jsonpath "$.results[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" +variable "text" jsonpath "$.results[6].at" == "/anyOf/6/$ref" +variable "text" jsonpath "$.results[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" +variable "text" jsonpath "$.results[7].at" == "/anyOf/7/$ref" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -168,56 +168,56 @@ jsonpath "$.result.content[8].mimeType" == "application/schema+json" jsonpath "$.result.content[9].type" == "resource_link" jsonpath "$.result.content[9].uri" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" jsonpath "$.result.content[9].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 8 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" -jsonpath "$.result.structuredContent[0].at" == "/anyOf/0/$ref" -jsonpath "$.result.structuredContent[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" -jsonpath "$.result.structuredContent[1].at" == "/anyOf/1/$ref" -jsonpath "$.result.structuredContent[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -jsonpath "$.result.structuredContent[2].at" == "/anyOf/2/$ref" -jsonpath "$.result.structuredContent[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" -jsonpath "$.result.structuredContent[3].at" == "/anyOf/3/$ref" -jsonpath "$.result.structuredContent[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" -jsonpath "$.result.structuredContent[4].at" == "/anyOf/4/$ref" -jsonpath "$.result.structuredContent[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" -jsonpath "$.result.structuredContent[5].at" == "/anyOf/5/$ref" -jsonpath "$.result.structuredContent[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" -jsonpath "$.result.structuredContent[6].at" == "/anyOf/6/$ref" -jsonpath "$.result.structuredContent[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" -jsonpath "$.result.structuredContent[7].at" == "/anyOf/7/$ref" -variable "text" jsonpath "$" count == 8 -variable "text" jsonpath "$[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" -variable "text" jsonpath "$[0].at" == "/anyOf/0/$ref" -variable "text" jsonpath "$[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" -variable "text" jsonpath "$[1].at" == "/anyOf/1/$ref" -variable "text" jsonpath "$[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -variable "text" jsonpath "$[2].at" == "/anyOf/2/$ref" -variable "text" jsonpath "$[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" -variable "text" jsonpath "$[3].at" == "/anyOf/3/$ref" -variable "text" jsonpath "$[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" -variable "text" jsonpath "$[4].at" == "/anyOf/4/$ref" -variable "text" jsonpath "$[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" -variable "text" jsonpath "$[5].at" == "/anyOf/5/$ref" -variable "text" jsonpath "$[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" -variable "text" jsonpath "$[6].at" == "/anyOf/6/$ref" -variable "text" jsonpath "$[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" -variable "text" jsonpath "$[7].at" == "/anyOf/7/$ref" +jsonpath "$.result.structuredContent.results" count == 8 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" +jsonpath "$.result.structuredContent.results[0].at" == "/anyOf/0/$ref" +jsonpath "$.result.structuredContent.results[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" +jsonpath "$.result.structuredContent.results[1].at" == "/anyOf/1/$ref" +jsonpath "$.result.structuredContent.results[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results[2].at" == "/anyOf/2/$ref" +jsonpath "$.result.structuredContent.results[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" +jsonpath "$.result.structuredContent.results[3].at" == "/anyOf/3/$ref" +jsonpath "$.result.structuredContent.results[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" +jsonpath "$.result.structuredContent.results[4].at" == "/anyOf/4/$ref" +jsonpath "$.result.structuredContent.results[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" +jsonpath "$.result.structuredContent.results[5].at" == "/anyOf/5/$ref" +jsonpath "$.result.structuredContent.results[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" +jsonpath "$.result.structuredContent.results[6].at" == "/anyOf/6/$ref" +jsonpath "$.result.structuredContent.results[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" +jsonpath "$.result.structuredContent.results[7].at" == "/anyOf/7/$ref" +variable "text" jsonpath "$.results" count == 8 +variable "text" jsonpath "$.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/initialize/response" +variable "text" jsonpath "$.results[0].at" == "/anyOf/0/$ref" +variable "text" jsonpath "$.results[1].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[1].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/ping/response" +variable "text" jsonpath "$.results[1].at" == "/anyOf/1/$ref" +variable "text" jsonpath "$.results[2].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[2].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results[2].at" == "/anyOf/2/$ref" +variable "text" jsonpath "$.results[3].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[3].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/list/response" +variable "text" jsonpath "$.results[3].at" == "/anyOf/3/$ref" +variable "text" jsonpath "$.results[4].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[4].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/templates/list/response" +variable "text" jsonpath "$.results[4].at" == "/anyOf/4/$ref" +variable "text" jsonpath "$.results[5].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[5].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/resources/read/response" +variable "text" jsonpath "$.results[5].at" == "/anyOf/5/$ref" +variable "text" jsonpath "$.results[6].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[6].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/response" +variable "text" jsonpath "$.results[6].at" == "/anyOf/6/$ref" +variable "text" jsonpath "$.results[7].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[7].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/call/response" +variable "text" jsonpath "$.results[7].at" == "/anyOf/7/$ref" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl b/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl index 31e8075e..2423d202 100644 --- a/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl +++ b/enterprise/e2e/path/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl @@ -32,12 +32,12 @@ jsonpath "$.result.content[1].mimeType" == "application/schema+json" jsonpath "$.result.content[2].type" == "resource_link" jsonpath "$.result.content[2].uri" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -82,12 +82,12 @@ jsonpath "$.result.content[1].mimeType" == "application/schema+json" jsonpath "$.result.content[2].type" == "resource_link" jsonpath "$.result.content[2].uri" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" jsonpath "$.result.content[2].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -jsonpath "$.result.structuredContent[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" -variable "text" jsonpath "$[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +jsonpath "$.result.structuredContent.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].from" == "{{base}}/v1/catalog/self/v1/schemas/mcp/response" +variable "text" jsonpath "$.results[0].to" == "{{base}}/v1/catalog/self/v1/schemas/mcp/error" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/path/hurl/mcp-2025-11-25-resources.all.hurl b/enterprise/e2e/path/hurl/mcp-2025-11-25-resources.all.hurl index 8f1c94c7..afb7b69a 100644 --- a/enterprise/e2e/path/hurl/mcp-2025-11-25-resources.all.hurl +++ b/enterprise/e2e/path/hurl/mcp-2025-11-25-resources.all.hurl @@ -233,7 +233,7 @@ jsonpath "$.result.resources[42].uri" == "{{base}}/v1/catalog/self/v1/schemas/mc jsonpath "$.result.resources[42].name" == "response" jsonpath "$.result.resources[42].description" == "Sourcemeta One's response to a tool invocation" jsonpath "$.result.resources[42].mimeType" == "application/schema+json" -jsonpath "$.result.resources[42].size" == 4131 +jsonpath "$.result.resources[42].size" == 4502 jsonpath "$.result.resources[43].uri" == "{{base}}/v1/catalog/self/v1/schemas/mcp/tools/list/request" jsonpath "$.result.resources[43].name" == "request" jsonpath "$.result.resources[43].description" == "Request from a client to list MCP tools" diff --git a/enterprise/e2e/path/hurl/mcp-2025-11-25-search_schemas.all.hurl b/enterprise/e2e/path/hurl/mcp-2025-11-25-search_schemas.all.hurl index a327ee05..326cacbc 100644 --- a/enterprise/e2e/path/hurl/mcp-2025-11-25-search_schemas.all.hurl +++ b/enterprise/e2e/path/hurl/mcp-2025-11-25-search_schemas.all.hurl @@ -41,32 +41,32 @@ jsonpath "$.result.content[3].uri" == "{{base}}/v1/catalog/example/title-only" jsonpath "$.result.content[3].name" == "Example With Title Only" jsonpath "$.result.content[3].description" not exists jsonpath "$.result.content[3].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 3 -jsonpath "$.result.structuredContent[0].path" == "/v1/catalog/example/full" -jsonpath "$.result.structuredContent[0].identifier" == "{{base}}/v1/catalog/example/full" -jsonpath "$.result.structuredContent[0].title" == "Example With Both" -jsonpath "$.result.structuredContent[0].description" == "A schema that has both a title and a description" -jsonpath "$.result.structuredContent[1].path" == "/v1/catalog/example/description-only" -jsonpath "$.result.structuredContent[1].identifier" == "{{base}}/v1/catalog/example/description-only" -jsonpath "$.result.structuredContent[1].title" == "" -jsonpath "$.result.structuredContent[1].description" == "A schema with only a description and no title" -jsonpath "$.result.structuredContent[2].path" == "/v1/catalog/example/title-only" -jsonpath "$.result.structuredContent[2].identifier" == "{{base}}/v1/catalog/example/title-only" -jsonpath "$.result.structuredContent[2].title" == "Example With Title Only" -jsonpath "$.result.structuredContent[2].description" == "" -variable "text" jsonpath "$" count == 3 -variable "text" jsonpath "$[0].path" == "/v1/catalog/example/full" -variable "text" jsonpath "$[0].identifier" == "{{base}}/v1/catalog/example/full" -variable "text" jsonpath "$[0].title" == "Example With Both" -variable "text" jsonpath "$[0].description" == "A schema that has both a title and a description" -variable "text" jsonpath "$[1].path" == "/v1/catalog/example/description-only" -variable "text" jsonpath "$[1].identifier" == "{{base}}/v1/catalog/example/description-only" -variable "text" jsonpath "$[1].title" == "" -variable "text" jsonpath "$[1].description" == "A schema with only a description and no title" -variable "text" jsonpath "$[2].path" == "/v1/catalog/example/title-only" -variable "text" jsonpath "$[2].identifier" == "{{base}}/v1/catalog/example/title-only" -variable "text" jsonpath "$[2].title" == "Example With Title Only" -variable "text" jsonpath "$[2].description" == "" +jsonpath "$.result.structuredContent.results" count == 3 +jsonpath "$.result.structuredContent.results[0].path" == "/v1/catalog/example/full" +jsonpath "$.result.structuredContent.results[0].identifier" == "{{base}}/v1/catalog/example/full" +jsonpath "$.result.structuredContent.results[0].title" == "Example With Both" +jsonpath "$.result.structuredContent.results[0].description" == "A schema that has both a title and a description" +jsonpath "$.result.structuredContent.results[1].path" == "/v1/catalog/example/description-only" +jsonpath "$.result.structuredContent.results[1].identifier" == "{{base}}/v1/catalog/example/description-only" +jsonpath "$.result.structuredContent.results[1].title" == "" +jsonpath "$.result.structuredContent.results[1].description" == "A schema with only a description and no title" +jsonpath "$.result.structuredContent.results[2].path" == "/v1/catalog/example/title-only" +jsonpath "$.result.structuredContent.results[2].identifier" == "{{base}}/v1/catalog/example/title-only" +jsonpath "$.result.structuredContent.results[2].title" == "Example With Title Only" +jsonpath "$.result.structuredContent.results[2].description" == "" +variable "text" jsonpath "$.results" count == 3 +variable "text" jsonpath "$.results[0].path" == "/v1/catalog/example/full" +variable "text" jsonpath "$.results[0].identifier" == "{{base}}/v1/catalog/example/full" +variable "text" jsonpath "$.results[0].title" == "Example With Both" +variable "text" jsonpath "$.results[0].description" == "A schema that has both a title and a description" +variable "text" jsonpath "$.results[1].path" == "/v1/catalog/example/description-only" +variable "text" jsonpath "$.results[1].identifier" == "{{base}}/v1/catalog/example/description-only" +variable "text" jsonpath "$.results[1].title" == "" +variable "text" jsonpath "$.results[1].description" == "A schema with only a description and no title" +variable "text" jsonpath "$.results[2].path" == "/v1/catalog/example/title-only" +variable "text" jsonpath "$.results[2].identifier" == "{{base}}/v1/catalog/example/title-only" +variable "text" jsonpath "$.results[2].title" == "Example With Title Only" +variable "text" jsonpath "$.results[2].description" == "" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` @@ -110,16 +110,16 @@ jsonpath "$.result.content[1].uri" == "{{base}}/v1/catalog/example/full" jsonpath "$.result.content[1].name" == "Example With Both" jsonpath "$.result.content[1].description" == "A schema that has both a title and a description" jsonpath "$.result.content[1].mimeType" == "application/schema+json" -jsonpath "$.result.structuredContent" count == 1 -jsonpath "$.result.structuredContent[0].path" == "/v1/catalog/example/full" -jsonpath "$.result.structuredContent[0].identifier" == "{{base}}/v1/catalog/example/full" -jsonpath "$.result.structuredContent[0].title" == "Example With Both" -jsonpath "$.result.structuredContent[0].description" == "A schema that has both a title and a description" -variable "text" jsonpath "$" count == 1 -variable "text" jsonpath "$[0].path" == "/v1/catalog/example/full" -variable "text" jsonpath "$[0].identifier" == "{{base}}/v1/catalog/example/full" -variable "text" jsonpath "$[0].title" == "Example With Both" -variable "text" jsonpath "$[0].description" == "A schema that has both a title and a description" +jsonpath "$.result.structuredContent.results" count == 1 +jsonpath "$.result.structuredContent.results[0].path" == "/v1/catalog/example/full" +jsonpath "$.result.structuredContent.results[0].identifier" == "{{base}}/v1/catalog/example/full" +jsonpath "$.result.structuredContent.results[0].title" == "Example With Both" +jsonpath "$.result.structuredContent.results[0].description" == "A schema that has both a title and a description" +variable "text" jsonpath "$.results" count == 1 +variable "text" jsonpath "$.results[0].path" == "/v1/catalog/example/full" +variable "text" jsonpath "$.results[0].identifier" == "{{base}}/v1/catalog/example/full" +variable "text" jsonpath "$.results[0].title" == "Example With Both" +variable "text" jsonpath "$.results[0].description" == "A schema that has both a title and a description" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} ``` diff --git a/enterprise/e2e/path/hurl/mcp-2025-11-25-tools-integration.all.hurl b/enterprise/e2e/path/hurl/mcp-2025-11-25-tools-integration.all.hurl index 18691702..028fb835 100644 --- a/enterprise/e2e/path/hurl/mcp-2025-11-25-tools-integration.all.hurl +++ b/enterprise/e2e/path/hurl/mcp-2025-11-25-tools-integration.all.hurl @@ -144,14 +144,14 @@ Link: ; rel="describedby" [Captures] last_response: body schema_path: header "Link" regex "]+)>" -hit_path: jsonpath "$.result.structuredContent[0].path" +hit_path: jsonpath "$.result.structuredContent.results[0].path" text: jsonpath "$.result.content[0].text" [Asserts] jsonpath "$.jsonrpc" == "2.0" jsonpath "$.id" == 1210 jsonpath "$.result.isError" == false -jsonpath "$.result.structuredContent" count == 1 -variable "text" jsonpath "$" count == 1 +jsonpath "$.result.structuredContent.results" count == 1 +variable "text" jsonpath "$.results" count == 1 variable "hit_path" == "/v1/catalog/example/full" POST {{base}}/v1/catalog/self/v1/api/schemas/evaluate{{schema_path}} diff --git a/src/actions/action_dependency_tree_v1.h b/src/actions/action_dependency_tree_v1.h index f80bf461..900ba15a 100644 --- a/src/actions/action_dependency_tree_v1.h +++ b/src/actions/action_dependency_tree_v1.h @@ -107,9 +107,11 @@ class ActionDependencyTree_v1 : public sourcemeta::one::RouterAction { "Schema not found"); } - auto &result{contents.value()}; + auto envelope{sourcemeta::core::JSON::make_object()}; + envelope.assign("results", std::move(contents.value())); + std::set unique_uris; - for (const auto &entry : result.as_array()) { + for (const auto &entry : envelope.at("results").as_array()) { for (const auto *const field : {"from", "to"}) { if (!entry.defines(field)) { continue; @@ -123,7 +125,7 @@ class ActionDependencyTree_v1 : public sourcemeta::one::RouterAction { auto content{sourcemeta::core::JSON::make_array()}; std::ostringstream payload; - sourcemeta::core::prettify(result, payload); + sourcemeta::core::prettify(envelope, payload); content.push_back(sourcemeta::core::mcp_make_text_block(payload.str())); for (const auto uri : unique_uris) { content.push_back(sourcemeta::core::mcp_make_resource_link( @@ -131,7 +133,7 @@ class ActionDependencyTree_v1 : public sourcemeta::one::RouterAction { } return sourcemeta::core::mcp_make_tool_success( - version, request_id, std::move(result), std::move(content)); + version, request_id, std::move(envelope), std::move(content)); } private: diff --git a/src/actions/action_schema_search_v1.h b/src/actions/action_schema_search_v1.h index 89609b1a..4d67ab19 100644 --- a/src/actions/action_schema_search_v1.h +++ b/src/actions/action_schema_search_v1.h @@ -195,17 +195,20 @@ class ActionSchemaSearch_v1 : public sourcemeta::one::RouterAction { } } - auto result{ + auto results{ this->search_view_.search(arguments.at("q").to_string(), limit, scope)}; + auto envelope{sourcemeta::core::JSON::make_object()}; + envelope.assign("results", std::move(results)); auto content{sourcemeta::core::JSON::make_array()}; std::ostringstream payload; - sourcemeta::core::prettify(result, payload); + sourcemeta::core::prettify(envelope, payload); content.push_back(sourcemeta::core::mcp_make_text_block(payload.str())); - for (std::size_t index{0}; index < result.array_size(); ++index) { - const auto &entry{result.at(index)}; + const auto &results_view{envelope.at("results")}; + for (std::size_t index{0}; index < results_view.array_size(); ++index) { + const auto &entry{results_view.at(index)}; content.push_back(sourcemeta::core::mcp_make_resource_link( version, entry.at("identifier").to_string(), "application/schema+json", entry.at("title").to_string(), @@ -213,7 +216,7 @@ class ActionSchemaSearch_v1 : public sourcemeta::one::RouterAction { } return sourcemeta::core::mcp_make_tool_success( - version, request_id, std::move(result), std::move(content)); + version, request_id, std::move(envelope), std::move(content)); } private: diff --git a/src/self/v1/schemas/mcp/tools/call/response.json b/src/self/v1/schemas/mcp/tools/call/response.json index bebe9c8a..95c14939 100644 --- a/src/self/v1/schemas/mcp/tools/call/response.json +++ b/src/self/v1/schemas/mcp/tools/call/response.json @@ -39,7 +39,7 @@ "content": [ { "type": "text", - "text": "[{\"path\":\"/test/object\",\"identifier\":\"https://example.com/test/object\",\"title\":\"My Object\",\"description\":\"An Object Example\"}]" + "text": "{\"results\":[{\"path\":\"/test/object\",\"identifier\":\"https://example.com/test/object\",\"title\":\"My Object\",\"description\":\"An Object Example\"}]}" }, { "type": "resource_link", @@ -49,14 +49,16 @@ "mimeType": "application/schema+json" } ], - "structuredContent": [ - { - "path": "/test/object", - "identifier": "https://example.com/test/object", - "title": "My Object", - "description": "An Object Example" - } - ], + "structuredContent": { + "results": [ + { + "path": "/test/object", + "identifier": "https://example.com/test/object", + "title": "My Object", + "description": "An Object Example" + } + ] + }, "isError": false } } @@ -79,7 +81,10 @@ "content": { "$ref": "#/$defs/content" }, - "structuredContent": true, + "structuredContent": { + "$comment": "Per the Model Context Protocol specification, structuredContent is 'An optional JSON object that represents the structured result of the tool call' (https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content)", + "type": "object" + }, "isError": { "const": false } From fcf98ea625a2ab9ce260d482128b60f8f0812d4c Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Mon, 25 May 2026 08:59:16 -0400 Subject: [PATCH 2/3] Fix Signed-off-by: Juan Cruz Viotti --- src/actions/action_dependency_tree_v1.h | 2 +- src/actions/action_schema_search_v1.h | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/actions/action_dependency_tree_v1.h b/src/actions/action_dependency_tree_v1.h index 900ba15a..40153b65 100644 --- a/src/actions/action_dependency_tree_v1.h +++ b/src/actions/action_dependency_tree_v1.h @@ -108,7 +108,7 @@ class ActionDependencyTree_v1 : public sourcemeta::one::RouterAction { } auto envelope{sourcemeta::core::JSON::make_object()}; - envelope.assign("results", std::move(contents.value())); + envelope.assign_assume_new("results", std::move(contents.value())); std::set unique_uris; for (const auto &entry : envelope.at("results").as_array()) { diff --git a/src/actions/action_schema_search_v1.h b/src/actions/action_schema_search_v1.h index 4d67ab19..98dd7ad2 100644 --- a/src/actions/action_schema_search_v1.h +++ b/src/actions/action_schema_search_v1.h @@ -198,7 +198,7 @@ class ActionSchemaSearch_v1 : public sourcemeta::one::RouterAction { auto results{ this->search_view_.search(arguments.at("q").to_string(), limit, scope)}; auto envelope{sourcemeta::core::JSON::make_object()}; - envelope.assign("results", std::move(results)); + envelope.assign_assume_new("results", std::move(results)); auto content{sourcemeta::core::JSON::make_array()}; @@ -206,9 +206,7 @@ class ActionSchemaSearch_v1 : public sourcemeta::one::RouterAction { sourcemeta::core::prettify(envelope, payload); content.push_back(sourcemeta::core::mcp_make_text_block(payload.str())); - const auto &results_view{envelope.at("results")}; - for (std::size_t index{0}; index < results_view.array_size(); ++index) { - const auto &entry{results_view.at(index)}; + for (const auto &entry : envelope.at("results").as_array()) { content.push_back(sourcemeta::core::mcp_make_resource_link( version, entry.at("identifier").to_string(), "application/schema+json", entry.at("title").to_string(), From ed73d28ada4526487aba68f9bb8de9117d7d2401 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Mon, 25 May 2026 09:03:10 -0400 Subject: [PATCH 3/3] Fix Signed-off-by: Juan Cruz Viotti --- .../hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl | 8 ++++++++ .../hurl/mcp-2025-11-25-get_schema_dependents.all.hurl | 8 ++++++++ .../e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl | 2 ++ 3 files changed, 18 insertions(+) diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl index ef4141b6..65c66517 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependencies.all.hurl @@ -26,7 +26,9 @@ jsonpath "$.id" == 200 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -65,7 +67,9 @@ jsonpath "$.id" == 201 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -497,7 +501,9 @@ jsonpath "$.id" == 213 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -781,7 +787,9 @@ jsonpath "$.id" == "dependencies-call-string-id" jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl index d0e473ce..ac3aee7b 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-get_schema_dependents.all.hurl @@ -26,7 +26,9 @@ jsonpath "$.id" == 300 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -65,7 +67,9 @@ jsonpath "$.id" == 301 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -387,7 +391,9 @@ jsonpath "$.id" == 313 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} @@ -671,7 +677,9 @@ jsonpath "$.id" == "dependents-call-string-id" jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}} diff --git a/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl b/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl index 72c2cba9..35ecf01c 100644 --- a/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl +++ b/enterprise/e2e/html/hurl/mcp-2025-11-25-search_schemas.all.hurl @@ -353,7 +353,9 @@ jsonpath "$.id" == 1104 jsonpath "$.result.isError" == false jsonpath "$.result.content" count == 1 jsonpath "$.result.content[0].type" == "text" +jsonpath "$.result.structuredContent.results" exists jsonpath "$.result.structuredContent.results" count == 0 +variable "text" jsonpath "$.results" exists variable "text" jsonpath "$.results" count == 0 POST {{base}}/self/v1/api/schemas/evaluate{{schema_path}}