External Publication
Visit Post

MCP Apps open standard migration: still needing OpenAI extensions for CSP and widget state — expected?

OpenAI Developer Community February 17, 2026
Source

Hello everyone,

I recently migrated from an Apps SDK implementation to the MCP Apps open standard (Docs > MCP Apps compatibility in ChatGPT).

My goal is to avoid any extra OpenAI extensions and stick purely to the MCP Apps spec, but I ran into two cases where that wasn’t possible:


Issue 1 – Resources not shown after publishing

I had to add the OpenAI-specific openai/widgetCSP declaration on top of the standard ui.csp block:

"openai/widgetCSP": {
  // For ChatGPT's built-in widget hosting
  resource_domains: ["https://*.domain.com"]
}

…in addition to:

ui: {
  csp: {
    resourceDomains: ["https://*.domain.com"]
  }
}

Without the openai/widgetCSP declaration, my resources were not displayed after publishing.


Issue 2 – Widget loses state on page reload

My widget did not render previously fetched results after a page reload. To fix this, I had to use the OpenAI setState extension:

if (hasOpenAIExtensions()) {
  getOpenAIExtensions()?.setWidgetState({ toolOutput: data });
}

Questions:

(A) Is there a better way to solve these two issues without relying on OpenAI-specific extensions?

(B) Has anyone else noticed misalignments between the Apps SDK and the MCP Apps open standard?

Discussion in the ATmosphere

Loading comments...