Skip to content

Widget vs Component #64

@glen-84

Description

@glen-84

I see that the spec mentions widget in multiple places. For the OpenAI Apps SDK, widget is used for things like settings, but the term component is used in other places in the documentation (f.e. Design components).

I asked Claude, FWIW:

If you were designing a UI framework for the model context protocol, would you refer to the UI elements as components or widgets?

I'd call them components.

Here's my thinking:

"Components" aligns better with:

  • Modern UI framework conventions (React, Vue, Svelte all use "component")
  • The composability that MCP emphasizes - servers expose resources and tools that compose together
  • Developer expectations in 2024/2025 - "component" is the dominant term
  • The protocol's forward-looking, integration-focused nature

"Widgets" feels:

  • More desktop-toolkit era (Qt, GTK, Tkinter)
  • Less compositional - implies self-contained UI pieces rather than building blocks
  • Potentially confusing given MCP's server/client model where you're often orchestrating multiple services

Since MCP is about connecting AI systems to data sources and tools in a structured way, the framework would likely need components that are highly composable and data-driven - things like <ResourceList>, <ToolInvocation>, <PromptTemplate>, etc. The term "component" better captures that these are building blocks that work together in a declarative tree, rather than standalone widgets.

That said, if you were specifically building desktop-style UI chrome (toolbars, panels, inspectors), "widgets" could work. But for a general MCP UI framework, I'd definitely go with components.

Metadata

Metadata

Assignees

No one assigned

    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