Skip to content

Goose 1.25.0 does not pass toolResult._meta to MCP Apps #7435

@billyjanitsch

Description

@billyjanitsch

Describe the bug

Per this section of the MCP Apps spec, the host is supposed to forward the entire tool execution result to the MCP App view, including the _meta property.

Goose 1.24.0 did this correctly, but Goose 1.25.0 no longer includes _meta. The regression was introduced in #7013, specifically here:

return {
content: toolResult.content as unknown as CallToolResult['content'],
structuredContent: toolResult.structuredContent as { [key: string]: unknown } | undefined,
};


To Reproduce
Steps to reproduce the behavior:

// server
registerAppTool(
  server,
  "show-mcp-app",
  {
    title: "Show MCP App",
    description: "Show MCP App",
    _meta: { ui: { resourceUri: MCP_APP_URI } },
  },
  async () => {
    return {
      content: [{ type: "text", text: "App" }],
      _meta: { message: "hello world" },
    };
  },
);

// client
app.ontoolresult = (result) => {
  console.log(result);
}

Expected behavior
When the MCP App renders in the host, it should print an object containing "hello world" to the console.


Screenshots
n/a


Please provide the following information

  • OS & Arch: macOS 15.7.4. arm64
  • Interface: UI
  • Version: 1.25.0
  • Extensions enabled: MCP Apps
  • Provider & Model: n/a

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions