Skip to content

[v2] structuredContent not rendered in Tools screen — regression from v1 #1908

Description

@ramxis

Describe the bug
In v1 Inspector, when a tool returns both content and structuredContent
(i.e. the tool registers an outputSchema), the Tools screen displayed both:

  • the content[] text/image blocks
  • a dedicated collapsible JSON tree for structuredContent, which was
    extremely useful for inspecting deeply nested objects and arrays field by field

In v2, structuredContent is silently dropped from the UI. Only the
content[] blocks are rendered. There is no indication that structured output
exists, and no way to inspect it in the Tools screen.

To Reproduce
Steps to reproduce the behavior:

  1. Create a simple MCP server with a tool that has an outputSchema and
    returns both content and structuredContent, e.g.:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({ name: "example", version: "1.0.0" });

const ItemSchema = z.object({
  id: z.number(),
  name: z.string(),
  tags: z.array(z.string()),
});

const ResultSchema = z.object({
  items: z.array(ItemSchema),
  total: z.number(),
});

server.registerTool(
  "list_items",
  {
    title: "List Items",
    description: "Returns a list of items with structured output",
    inputSchema: {},
    outputSchema: ResultSchema.shape,
  },
  async () => {
    const result = {
      items: [
        { id: 1, name: "Item A", tags: ["foo", "bar"] },
        { id: 2, name: "Item B", tags: ["baz"] },
      ],
      total: 2,
    };
    return {
      content: [
        {
          type: "text",
          text: "Found 2 items.",
        },
      ],
      structuredContent: result,
    };
  },
);
{
  "items": [
    { "id": 1, "name": "Item A", "tags": ["foo", "bar"] },
    { "id": 2, "name": "Item B", "tags": ["baz"] }
  ],
  "total": 2
}

Expected behavior
The result panel should display both:

The content[] text block: "Found 2 items."
A dedicated "Structured Output" section rendering structuredContent
as a collapsible / inspectable JSON tree, e.g.:

Actual behavior
Only the content[] text block ("Found 2 items.") is shown in the result
panel. structuredContent is not rendered anywhere. There is no label,
section, or hint that structured output was returned at all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions