{"server":"ai.autoposter/autoposter","count":14,"tools":[{"name":"autoposter_create_upload_link","title":"Create Image Upload Link","description":"Creates a short-lived link where the user can upload images from their device into the Auto Poster media library. Use this when the user wants to attach an image that exists only in the chat or on their device (no public URL) and your client cannot send file contents. Give the link to the user, wait until they say the upload is done, then call autoposter_list_media (newest first) and attach the image with mediaIds in autoposter_draft_post or autoposter_schedule_post.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["uploadUrl","expiresInMinutes","instructions"],"properties":{"uploadUrl":{"type":"string","description":"Link to give to the user."},"instructions":{"type":"string","description":"What to tell the user and what to do next."},"maxFileSizeMb":{"type":"number","description":"Maximum size per image in MB."},"expiresInMinutes":{"type":"number","description":"Minutes until the link expires."}}},"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_delete_post","title":"Delete Post","description":"Deletes or cancels a draft, scheduled, or pending post by ID.","input_schema":{"type":"object","required":["postId"],"properties":{"postId":{"type":"string","description":"The post ID to delete or cancel."}}},"output_schema":{"type":"object","required":["success","postId"],"properties":{"postId":{"type":"string","description":"Deleted post ID."},"message":{"type":"string","description":"Confirmation message."},"success":{"type":"boolean","description":"Whether the post was deleted successfully."}}},"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_draft_post","title":"Create Post Draft","description":"Creates a draft post for human review. If API key lacks direct publish, post is saved as pending_approval and notifications are sent to workspace approvers. Accepts mediaUrls (public URLs) or files (AI-generated images or uploaded files from chat up to 100MB). For large video files over 100MB, tell the user to provide a direct public file URL or use autoposter_get_media_upload_url.","input_schema":{"type":"object","$defs":{"MediaFile":{"type":"object","required":["download_url","file_id"],"properties":{"file_id":{"type":"string"},"file_name":{"type":"string"},"mime_type":{"type":"string"},"download_url":{"type":"string"}},"additionalProperties":false}},"required":["accountIds","content"],"properties":{"files":{"type":"array","items":{"$ref":"#/$defs/MediaFile"},"description":"Optional files generated in chat or uploaded by user to attach to the post."},"content":{"type":"string","description":"Base text content of the post."},"mediaIds":{"type":"array","items":{"type":"string"},"description":"Optional list of existing media IDs from workspace media library (from autoposter_list_media)."},"postType":{"enum":["post","reel","story","shorts"],"type":"string","description":"Optional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants."},"mediaUrls":{"type":"array","items":{"type":"string"},"description":"Optional public image or video URLs to attach (e.g. from autoposter_upload_media)."},"accountIds":{"type":"array","items":{"type":"string"},"description":"List of account IDs from autoposter_list_accounts."},"platformContent":{"type":"object","description":"Optional platform-specific content overrides (e.g. twitter, linkedin)."}}},"output_schema":{"type":"object","required":["message","draftPosts"],"properties":{"message":{"type":"string","description":"Status message indicating draft creation."},"draftPosts":{"type":"array","items":{"type":"object","required":["id","platform","status"],"properties":{"id":{"type":"string","description":"Draft post ID."},"status":{"type":"string","description":"Current post status (drafts or pending_approval)."},"platform":{"type":"string","description":"Target social media platform."},"postType":{"type":"string","description":"Target format ('post', 'reel', 'story', or 'shorts')."},"accountName":{"type":"string","description":"Target account name."},"scheduledAt":{"type":"string","description":"Scheduled timestamp if any."}}},"description":"List of created draft posts per account."},"instructions":{"type":"string","description":"Instructions for approving or viewing the draft."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_get_media_upload_url","title":"Get Direct S3 Upload URL","description":"Only for clients that can perform an HTTP PUT or multipart POST (not chat-only clients such as Gemini): if you cannot make that request yourself, use autoposter_create_upload_link instead. Generates a presigned S3 upload URL for direct, high-speed upload of videos or images up to 5GB without size limits or timeouts. Returns direct PUT url, POST upload fields, and public CDN URL.","input_schema":{"type":"object","required":["fileName","contentType"],"properties":{"fileName":{"type":"string","description":"Name of the file including extension (e.g. 'promo_video.mp4', 'photo.jpg')."},"contentType":{"type":"string","description":"MIME type of the media (e.g. 'video/mp4', 'image/jpeg', 'image/png')."}}},"output_schema":{"type":"object","required":["success","key","cdnUrl","directPutUrl"],"properties":{"key":{"type":"string","description":"S3 object key for the media file."},"cdnUrl":{"type":"string","description":"Public CDN URL after upload."},"success":{"type":"boolean","description":"Whether the upload URL was successfully created."},"uploadPost":{"type":"object","description":"Presigned POST fields if using multipart upload."},"directPutUrl":{"type":"string","description":"Presigned S3 PUT URL for direct upload."},"instructions":{"type":"string","description":"Instructions for completing the direct upload."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_get_post","title":"Get Post Details","description":"Retrieves a single post by ID including its state (drafts, pending_approval, queued, posted) and live link receipts.","input_schema":{"type":"object","required":["postId"],"properties":{"postId":{"type":"string","description":"The post ID to fetch."}}},"output_schema":{"type":"object","required":["id","state"],"properties":{"id":{"type":"string","description":"Post ID."},"state":{"type":"string","description":"Current post state."},"postLink":{"type":"string","description":"Live platform URL link if posted."},"postedAt":{"type":"string","description":"ISO timestamp when post was published."},"errorMessage":{"type":"string","description":"Failure error message if any."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_get_post_status","title":"Get Post Status","description":"Checks delivery status of a post and returns live platform links/receipts once published.","input_schema":{"type":"object","required":["postId"],"properties":{"postId":{"type":"string","description":"The post ID to query."}}},"output_schema":{"type":"object","required":["id","state"],"properties":{"id":{"type":"string","description":"Post ID."},"state":{"type":"string","description":"Current status: drafts, pending_approval, queued, posted, or failed."},"postLink":{"type":"string","description":"Live URL link to the published post on the platform."},"postedAt":{"type":"string","description":"ISO timestamp when the post was published."},"errorMessage":{"type":"string","description":"Error message if post failed."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_get_rules","title":"Get Platform Rules and Limits","description":"Returns platform publishing constraints including character limits, media format requirements, and guidelines.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["captionLimits","mediaRequirements","guidelines"],"properties":{"guidelines":{"type":"array","items":{"type":"string"},"description":"Publishing guidelines and tips."},"postFormats":{"type":"object","description":"Supported post format variants per platform (post, reel, story, shorts)."},"captionLimits":{"type":"object","description":"Character limits per platform."},"mediaRequirements":{"type":"object","description":"Platform media requirements and constraints."},"automatedSafeguards":{"type":"object","description":"Automated media and caption processing safeguards."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_list_accounts","title":"List Connected Accounts","description":"Lists all connected social media accounts (X, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky, Pinterest, Facebook) in the current Autoposter workspace.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["accounts"],"properties":{"accounts":{"type":"array","items":{"type":"object","required":["id","platform","name"],"properties":{"id":{"type":"string","description":"Account ID."},"name":{"type":"string","description":"Account display name."},"platform":{"type":"string","description":"Platform name (e.g. twitter, linkedin, instagram)."},"username":{"type":"string","description":"Account username or handle."}}},"description":"List of active connected accounts in the workspace."},"timezone":{"type":"string","description":"Default timezone for the workspace."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_list_media","title":"List Media Library","description":"Lists media files (images and videos) stored in the workspace media library with public CDN URLs.","input_schema":{"type":"object","properties":{"type":{"enum":["image","video"],"type":"string","description":"Optional filter by media type ('image' or 'video')."},"limit":{"type":"number","description":"Maximum number of media items to return (default 20, max 50)."}}},"output_schema":{"type":"object","required":["count","media"],"properties":{"count":{"type":"number","description":"Number of media items returned."},"media":{"type":"array","items":{"type":"object","required":["id","name","type","url"],"properties":{"id":{"type":"string","description":"Media ID."},"url":{"type":"string","description":"Public URL of media file."},"name":{"type":"string","description":"File name or title."},"type":{"type":"string","description":"Media type ('image' or 'video')."},"thumbnailUrl":{"type":"string","description":"Thumbnail image URL if available."}}},"description":"List of media items in workspace."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_list_posts","title":"List Posts","description":"Lists posts in the workspace. Supports filtering by state ('drafts', 'scheduled', 'queued', 'posted', 'failed', 'pending_approval'), caption text search, and limit.","input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Maximum number of posts to return (default 20, max 50)."},"state":{"enum":["drafts","draft","scheduled","queued","posted","failed","pending_approval"],"type":"string","description":"Optional filter by post state."},"search":{"type":"string","description":"Optional keyword to search in post captions."}}},"output_schema":{"type":"object","required":["count","posts"],"properties":{"count":{"type":"number","description":"Number of posts returned."},"posts":{"type":"array","items":{"type":"object","required":["id","state"],"properties":{"id":{"type":"string","description":"Post ID."},"text":{"type":"string","description":"Post caption or content."},"state":{"type":"string","description":"Current post state."},"postLink":{"type":"string","description":"Live link receipt if posted."},"postedAt":{"type":"string","description":"Publish time if posted."},"accountId":{"type":"string","description":"Target account ID."},"createdAt":{"type":"string","description":"Creation ISO timestamp."},"scheduledAt":{"type":"string","description":"Scheduled time if scheduled."},"errorMessage":{"type":"string","description":"Failure reason if failed."}}},"description":"List of matching posts."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_publish_draft","title":"Publish Draft Post","description":"Approves and immediately publishes an existing draft or pending post. Requires an API key with direct publish permission.","input_schema":{"type":"object","required":["postId"],"properties":{"postId":{"type":"string","description":"The post ID returned by autoposter_draft_post."}}},"output_schema":{"type":"object","required":["success","status"],"properties":{"status":{"type":"string","description":"Target status ('queued' or 'scheduled')."},"message":{"type":"string","description":"Status message or confirmation."},"success":{"type":"boolean","description":"Whether the draft was approved and queued/published."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_schedule_post","title":"Schedule Post","description":"Schedules a post for a future date/time. Automatically converts local time using workspace/user timezone into UTC. Accepts mediaUrls (public URLs) or files (AI-generated images or uploaded files from chat up to 100MB). For large video files over 100MB, tell the user to provide a direct public file URL or use autoposter_get_media_upload_url.","input_schema":{"type":"object","$defs":{"MediaFile":{"type":"object","required":["download_url","file_id"],"properties":{"file_id":{"type":"string"},"file_name":{"type":"string"},"mime_type":{"type":"string"},"download_url":{"type":"string"}},"additionalProperties":false}},"required":["accountIds","content","scheduledAt"],"properties":{"files":{"type":"array","items":{"$ref":"#/$defs/MediaFile"},"description":"Optional files generated in chat or uploaded by user to attach to the post."},"content":{"type":"string","description":"Base text content of the post."},"mediaIds":{"type":"array","items":{"type":"string"},"description":"Optional list of existing media IDs from workspace media library (from autoposter_list_media)."},"postType":{"enum":["post","reel","story","shorts"],"type":"string","description":"Optional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants."},"timezone":{"type":"string","description":"Optional IANA timezone (e.g. 'America/New_York'). If omitted, defaults to workspace or user timezone."},"mediaUrls":{"type":"array","items":{"type":"string"},"description":"Optional public image or video URLs to attach (e.g. from autoposter_upload_media)."},"accountIds":{"type":"array","items":{"type":"string"},"description":"List of account IDs from autoposter_list_accounts."},"scheduledAt":{"type":"string","description":"Scheduled ISO timestamp or local datetime string, e.g. '2026-10-05T14:00:00'."},"platformContent":{"type":"object","description":"Optional platform-specific content overrides (e.g. twitter, linkedin)."}}},"output_schema":{"type":"object","required":["success","status","scheduledAt","scheduledPosts"],"properties":{"status":{"type":"string","description":"Status of the scheduled post ('scheduled' or 'pending_approval')."},"message":{"type":"string","description":"Status message."},"success":{"type":"boolean","description":"Whether the post was successfully scheduled."},"timezone":{"type":"string","description":"Timezone applied."},"scheduledAt":{"type":"string","description":"Scheduled time in UTC."},"scheduledPosts":{"type":"array","items":{"type":"object","required":["id","platform","status","scheduledAt"],"properties":{"id":{"type":"string","description":"Post ID."},"status":{"type":"string","description":"Post status."},"platform":{"type":"string","description":"Target platform."},"postType":{"type":"string","description":"Target format ('post', 'reel', 'story', or 'shorts')."},"accountName":{"type":"string","description":"Target account name."},"scheduledAt":{"type":"string","description":"Scheduled timestamp."}}},"description":"List of scheduled posts per target account."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"autoposter_upload_media","title":"Upload Media File","description":"Uploads an image or video to Auto Poster media library. Accepts files generated in ChatGPT (e.g. DALL-E images in /mnt/data/), uploaded files, or public image URLs. Direct chat download limit is 100MB. For larger videos or files (>100MB), tell the user to provide a direct public file URL or use autoposter_get_media_upload_url for direct S3 upload up to 5GB. If the image exists only in the chat or on the user's device and cannot be sent here, use autoposter_create_upload_link instead.","input_schema":{"type":"object","$defs":{"MediaFile":{"type":"object","required":["download_url","file_id"],"properties":{"file_id":{"type":"string"},"file_name":{"type":"string"},"mime_type":{"type":"string"},"download_url":{"type":"string"}},"additionalProperties":false}},"properties":{"url":{"type":"string","description":"Optional public image or video URL or data URI to upload into media library."},"file":{"$ref":"#/$defs/MediaFile","description":"File object provided by ChatGPT for AI-generated images or uploaded files."},"name":{"type":"string","description":"Optional display name or title for the media file."}}},"output_schema":{"type":"object","required":["mediaId","url"],"properties":{"url":{"type":"string","description":"Public URL of the media file."},"name":{"type":"string","description":"Display name or file name."},"type":{"type":"string","description":"Media type ('image' or 'video')."},"usage":{"type":"string","description":"Guidance on using the media item in posts."},"mediaId":{"type":"string","description":"ID of the newly uploaded media item."},"message":{"type":"string","description":"Upload status message."},"mediaUrl":{"type":"string","description":"Public URL of the media file to pass in posts."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"},{"name":"get_profile","title":null,"description":"Return the profile represented by this request's authenticated credentials. The opaque id is unique within this app and remains unchanged across token refresh, reconnection, and display-metadata changes.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"properties":{"id":{"type":"string","pattern":"\\S","minLength":1,"description":"Opaque profile identifier, unique within this app and unchanged across token refresh, reconnection, and display-metadata changes. Never reassigned to another profile."},"name":{"type":"string","description":"Display name for the authenticated profile."},"nickname":{"type":"string","description":"A useful label that helps users distinguish connected profiles."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:11:19.404Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/ai.autoposter%2Fautoposter/connection?target=mcpServers","arguments":{"name":"ai.autoposter/autoposter","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/ai.autoposter%2Fautoposter","arguments":{"name":"ai.autoposter/autoposter"}}]}