Tool Results

Loading "Tool Results 18put"
πŸ‘¨β€πŸ’Ό When users interact with our journal entries, they expect immediate feedback and reliable actions. If a user deletes an entry, they need to know it actually worked - not just hope for the best. The problem is: how do we get structured, validated data back from our MCP tools so we can build intelligent workflows that respond appropriately to different outcomes?
// Tool returns both human-readable and structured data
const result = await sendMcpMessage(
	'tool',
	{
		toolName: 'analyze_code',
		params: { filePath: 'src/utils/validation.ts' },
	},
	{ schema: codeAnalysisSchema },
)

// Client can access structured data and respond intelligently
const { metrics, suggestions, complexity } = result.structuredContent
if (complexity > 10) {
	showRefactorWarning(suggestions)
}
updateCodeMetrics(metrics)
To make this happen, we use Zod schemas to validate and type the structured content returned by MCP tools. This enables rich integrations where the client can understand and act on tool results programmatically, rather than requiring manual user intervention for every step.
The structured content is defined by the tool's outputSchema and validated using Zod schemas on the client side, ensuring type safety and reliable data flow between the MCP server and client applications.
With structured content, MCP clients can build sophisticated workflows where tools can trigger automatic actions based on their results, creating a more intelligent and responsive user experience.
MCPAppIframeUserMCPAppIframeUserClick "Delete Entry"Send tool message via postMessageCall delete_entry toolProcess deletionReturn structured resultSend result via postMessageValidate with Zod schemaCheck success statusUpdate UI based on result
The goal is to make tool interactions feel intelligent and responsive, so users can trust that their actions have real consequences and get immediate, accurate feedback about what happened.
Remember, our delete_entry tool returns structured content with a success boolean. You'll need to create a Zod schema to validate this data and use it in your sendMcpMessage call to get type-safe access to the result!
πŸ‘¨β€πŸ’Ό Thanks Kellie!
Now, start by creating the schema, implement the tool call, and handle both success and failure cases to make your journal deletion feel reliable and responsive.

Please set the playground first

Loading "Tool Results"
Loading "Tool Results"
Login to get access to the exclusive discord channel.
  • πŸ’»MCP UI
    MCP use case for average AI user
    hasan ⚑:
    Hey @Kent C. Dodds β—† πŸš€πŸ†πŸŒŒβš‘ while working with MCPs one concern keeps comint to me. Do you feel ave...
    • βœ…1
    3 Β· 4 hours ago
  • ⚑General
    Epic MCP Server
    Fede:
    Given the amount of questions around deployment and getting started, it would be cool to have an Epi...
    • βœ…1
    2 Β· 20 hours ago
  • ⚑General
    Cloudflare deployment
    Aaron Schwartz:
    Do you have any resources on deploying to a live cloudflare instance? I haven't dug through the work...
    • πŸ‘1
    • βœ…1
    4 Β· 21 hours ago
  • πŸ’»MCP UI
    MCP-UI UIResourceRenderer
    js.nz ⚑:
    Any comments on using UIResourceRenderer from @mcp-ui/client when building a client UI?
    • βœ…1
    1 Β· 19 hours ago
  • πŸ’»MCP UI
    Render data use cases
    Aaron Schwartz:
    I'm still wrapping my head around the Auth section, but I was confused during the UI render data sec...
    • βœ…1
    1 Β· 21 hours ago
  • πŸ’ͺAdv. MCP Features
    ⚑General
    Understanding Session and State Management for Remote MCP Server
    Kusten ⚑:
    I just completed the Advanced Features workshop, and the notifications/tools/list_changed section le...
    • βœ…1
    1 Β· a day ago
  • πŸ’»MCP UI
    nanobot questions
    Jangla ⚑:
    Anyone know how to change the db location? I've followed the idea of adding nanobot config to an ign...
    • βœ…1
    4 Β· 3 days ago
  • πŸ’»MCP UI
    nanobot fails to connect to mcp server in exercise MCP UI 3.1
    Dan:
    Had nanobot connecting successfully in previous exercises but I get the following error since moving...
    • βœ…1
    14 Β· 3 days ago
  • ⚑General
    Epic MCP server not initializing
    steve ⚑:
    I am attempting to configure the Epic MCP Server per Kent's instructions here: https://www.epicai.pr...
    • βœ…2
    3 Β· 4 days ago
  • πŸ’»MCP UI
    Issue: Goose not detecting MCP extension in UI Workshop exercise
    Nhalillo ⚑:
    Hi everyone! πŸ‘‹ Has anyone managed to properly configure Goose for the first exercise (Simple Raw H...
    • βœ…1
    5 Β· 5 days ago
  • πŸ’»MCP UI
    Issue: Goose not displaying HTML (remote DOM exercise)
    okram ⚑:
    Hi πŸ‘‹ Goose is not displaying the HTML. I have no diff between problem and solution and I enabled t...
    • βœ…1
    1 Β· 4 days ago
  • ⚑General
    What will tomorrows MCP hosts look like?
    Paul πŸš€:
    Hi Kent,

Thanks for putting together the course, I’m really enjoying it. Im interested if you have...
    • βœ…1
    2 Β· 5 days ago
  • πŸ’»MCP UI
    MCP UI repository - Unexpected option passed to `new Miniflare()` constructor?
    mark:
    So when I run the MCP UI repository and try start the first exercise I receive an error: "Unexpecte...
    • βœ…1
    11 Β· 5 days ago
  • ⚑General
    VS Code Copilot and Epic Workshop MCP Server
    Alexandre πŸš€:
    I might have missed something, but how do we install the Epic Workshop MCP Server so we can ask Copi...
    • βœ…1
    3 Β· 6 days ago
  • 🐣MCP Fundamentals
    πŸ’ͺAdv. MCP Features
    πŸ”MCP Auth
    πŸ’»MCP UI
    What about the usage of MCP Servers for some kind of chat interacting with a local LLM?
    frankfullstack ⚑:
    I would like to raise a general question about the usage of MCP Servers and how we could interact fr...
    • βœ…1
    5 Β· 11 days ago
  • 🐣MCP Fundamentals
    ⚑General
    It'd be really cool to have a basic deployment guide.
    BeyondLimits99 ⚑:
    The course has been amazing so far! I'd love to have a basic deployment guide just so I can practice...
    • βœ…2
    3 Β· 8 days ago
  • ⚑General
    non-related question: how do you rollout updates?
    mark:
    I'm very curious to hear: How do you roll-out new updates? do you use some kind of libary?
    • βœ…1
    5 Β· 13 days ago
  • 🐣MCP Fundamentals
    ⚑General
    How do you teach the LLMs to use ResourceTemplates and ResourceTemplatesList?
    frontendwizard:
    I'm playing around with building an mcp with claude and he has a tendency to go for json for everyth...
    • βœ…1
    8 Β· 11 days ago