> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcp-use.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps SDK compatibility

> Understand how MCP Apps run in ChatGPT and how mcp-use handles Apps SDK compatibility.

ChatGPT supports MCP Apps. That means a widget built with the MCP Apps bridge can run in ChatGPT and in other MCP Apps-compatible hosts.

`mcp-use` handles the compatibility details for you. Build the widget with the standard `mcp-use` server and React APIs; `mcp-use` emits the metadata ChatGPT needs and maps host behavior through the same hooks you use everywhere else.

## How ChatGPT fits in

OpenAI's Apps SDK remains supported, and ChatGPT also implements the MCP Apps UI standard. `mcp-use` generates MCP Apps metadata and ChatGPT compatibility metadata from the same widget definitions.

In practice:

* Bind the tool with `view: { name }`, declare `outputSchema`, and return raw `content` plus `structuredContent`.
* Use `useToolContext()`, `useViewState()`, and `useCallTool()` in React views.
* Let `mcp-use` translate compatibility metadata for ChatGPT.
* Reach for Apps SDK extensions only when a ChatGPT-specific capability has no shared MCP Apps equivalent yet.

## What mcp-use abstracts

The same widget code should work across supported hosts:

| Widget behavior | mcp-use API |
| - | - |
| Read tool input, structured output, content, and metadata | `useToolContext()` |
| Read host environment data | `useHostContext()` |
| Call MCP tools from the widget | `useCallTool()` |
| Update model-visible view state | `useViewState()` |
| Describe visible UI | `ModelContext` |
| Send a follow-up user message | `useSendFollowUp()` |
| Request inline, fullscreen, or picture-in-picture display | `useDisplayMode()` |

These APIs keep widget code focused on behavior instead of host-specific bridge details.

## Next steps

* Use [Build widgets](https://docs.mcp-use.com/v1/typescript/mcp-apps/widgets.md) for the normal MCP Apps workflow.
* Use [Model context](https://docs.mcp-use.com/v1/typescript/mcp-apps/model-context.md) to decide what the model and widget should see.
* Use [Interactivity](https://docs.mcp-use.com/v1/typescript/mcp-apps/interactivity.md) for tool calls, state, follow-up messages, and display controls.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.