{"ok":true,"name":"upload_asset","description":"Upload a binary asset (image, font, audio, …) to the project's hosted storage. This uploads bytes you actually hold — a file you generated, downloaded, or read yourself. Chat attachments don't qualify: the user's attachments never reach MCP servers (you see attached images through vision only; there is no file, id, or URL behind them you can read), so for those use request_user_upload instead and the user re-picks the file in a card that uploads from their browser. Three modes. ChatGPT conversat","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["projectId","file_name"],"properties":{"file":{"type":"object","properties":{"file_id":{"type":"string"},"file_name":{"type":"string"},"mime_type":{"type":"string"},"download_url":{"type":"string"}},"description":"ChatGPT only: a file from this conversation (e.g. a generated image). The ChatGPT host fills download_url/file_id when you reference the file; the values are host-issued and cannot be constructed by hand — on clients without file-parameter support, leave this unset and use the other modes.","additionalProperties":false},"file_name":{"type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9._-]{0,80}\\.[a-zA-Z0-9]{1,10}$"},"projectId":{"type":"string"},"size_bytes":{"type":"integer","minimum":1,"description":"Required unless `file` is set. Exact byte count of the file, as measured from the file itself (e.g. stat/ls -l). With content_base64 it must equal the decoded length; in presigned mode the PUT must send exactly this many bytes."},"content_type":{"type":"string","maxLength":100,"minLength":3,"description":"Required unless `file` is set (in that mode the type is derived from the downloaded bytes; pass this only as a hint)."},"content_base64":{"type":"string","minLength":1,"description":"The file's bytes, base64-encoded (≤3 MB decoded). When set, the upload completes in this call."}},"additionalProperties":false},"serverUrl":"https://mcp.floot.com/mcp","transport":"http","handshake":"ok","host":"floot.com","score":38,"grade":"D","auth":"oauth","lastScannedAt":"2026-10-30T13:09:37.977Z","stale":false,"permalink":"https://agentboardai.app/mcp/floot.com/upload_asset","page":"https://agentboardai.app/site/floot.com"}