Summary
The downloadFile method documented in the MCP ext-apps SDK throws MCP error -32601: Method not found when called from a widget running inside ChatGPT.
Expected behavior
app.downloadFile() should trigger a file download for the user, as documented in the ext-apps API reference.
Actual behavior
The call rejects with:
Uncaught (in promise) McpError: MCP error -32601: Method not found
Code
await app.downloadFile({
contents: [
{
type: "resource",
resource: {
uri: "file:///file.txt",
mimeType: "text/plain",
text: "content here...",
},
},
],
});
Environment
- @modelcontextprotocol/ext-apps: ^1.3.1
- @modelcontextprotocol/sdk: ^1.27.1
- Host: ChatGPT (web)
- The same method works on Claude/Anthropic’s host
Notes
The method is defined in the SDK and appears in the API docs, but the ChatGPT host does not
seem to implement it. The ChatGPT-specific window.openai API only exposes uploadFile,
getFileDownloadUrl, selectFiles, and requestClose — there is no equivalent for generating
and downloading a file from the widget.
Is downloadFile planned for ChatGPT, or is there an alternative approach?