-
Notifications
You must be signed in to change notification settings - Fork 477
Open
Description
Summary
When users upload images from mobile devices using the ChatGPT native app (iOS/Android) and request to use them with MCP tools, the file references sent to the MCP server are incomplete, preventing the server from downloading and processing the files.
Environment
- Platform: ChatGPT native mobile app (iOS App Store / Android Play Store)
- Devices Tested: iOS (iPhone), Android
- MCP SDK Version: Latest (as of January 2025)
- File Types Affected: Images (PNG, JPEG, etc.)
Expected Behavior
When a user uploads a file from the ChatGPT mobile app and instructs ChatGPT to pass it to an MCP tool that uses fileParams, the tool should receive a complete file object with:
{
"file_id": "file-abc123",
"download_url": "https://files.oaiusercontent.com/...",
"name": "photo.jpg",
"mime_type": "image/jpeg",
"size": 123456
}Actual Behavior
Instead, the MCP server receives only a string reference:
{
"images": ["chat_upload"]
}Or sometimes:
{
"images": ["chat_upload://image_0"]
}This lacks:
- A valid
download_urlthat the server can fetch from - Complete file metadata (mime_type, size)
- A consistent format
Steps to Reproduce
- Open the ChatGPT mobile app on iOS or Android
- Upload an image from the device's photo library using the attachment button
- Instruct ChatGPT to process the image using an MCP tool with
fileParamsconfigured - On the MCP server side, log the received parameters
- Observe that only a string reference is received instead of a complete file object
Tool Configuration (Example)
{
name: "process_image",
description: "Process uploaded images",
parameters: {
images: {
type: "array",
items: {
type: "object",
properties: {
file_id: { type: "string" },
download_url: { type: "string" },
name: { type: "string" },
mime_type: { type: "string" },
size: { type: "number" }
}
}
}
},
_meta: {
"openai/fileParams": ["images"]
}
}Comparison: Web vs Mobile App
Web Upload (ChatGPT via browser) ✅ Works correctly:
{
"images": [{
"file_id": "file-abc123",
"download_url": "https://files.oaiusercontent.com/file-xyz/...",
"name": "screenshot.png",
"mime_type": "image/png",
"size": 245678
}]
}Mobile App Upload (iOS/Android) ❌ Incomplete:
{
"images": ["chat_upload"]
}Impact
This issue prevents MCP servers from:
- Downloading and processing files uploaded via the mobile app
- Implementing file upload features that work across all platforms
- Providing a consistent user experience between web and mobile app users
Workarounds Attempted
- Parsing file_id from string reference: The string "chat_upload" doesn't provide enough information to fetch the file
- Requesting base64 encoding: Breaks the user experience and doesn't work for ChatGPT-managed file uploads from the app
Proposed Solutions
- Ensure fileParams binding works in mobile app: Make the auto-binding mechanism populate complete file objects in the native app, just like on web
- Consistent file reference format: If the mobile app must use a different format, provide documentation on how to resolve these references server-side
- Document the limitation: If mobile app file access is intentionally restricted, document this limitation clearly
Additional Context
- This affects all MCP servers that need to process user-uploaded files from mobile devices
- The issue appears to be specific to the ChatGPT native mobile apps (both iOS and Android)
- Web uploads (via browser on any device) work perfectly with the same MCP tool configuration
- The inconsistency creates a poor user experience where features work on web but fail on mobile app
Related Documentation
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels