AutoPoster AI
Multi-platform social media post creation, scheduling, and publishing.
使うべきか
品質と安全性
検出事項(1)
- LOWautoposter_get_media_upload_url 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"autoposter": {
"url": "https://agent.autoposter.ai/mcp"
}
}
}リモートエンドポイント
https://agent.autoposter.ai/mcpstreamable-httpできること
ツール一覧
ツール(14)
🟢autoposter_list_accounts
Lists all connected social media accounts (X, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky, Pinterest, Facebook) in the current Autoposter workspace.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "Default timezone for the workspace."
},
"accounts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Account ID."
},
"platform": {
"type": "string",
"description": "Platform name (e.g. twitter, linkedin, instagram)."
},
"name": {
"type": "string",
"description": "Account display name."
},
"username": {
"type": "string",
"description": "Account username or handle."
}
},
"required": [
"id",
"platform",
"name"
]
},
"description": "List of active connected accounts in the workspace."
}
},
"required": [
"accounts"
]
}🟢autoposter_get_rules
Returns platform publishing constraints including character limits, media format requirements, and guidelines.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"type": "object",
"properties": {
"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."
},
"postFormats": {
"type": "object",
"description": "Supported post format variants per platform (post, reel, story, shorts)."
},
"guidelines": {
"type": "array",
"items": {
"type": "string"
},
"description": "Publishing guidelines and tips."
}
},
"required": [
"captionLimits",
"mediaRequirements",
"guidelines"
]
}🟡autoposter_upload_media(file, url, name)
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.
入力スキーマ
{
"type": "object",
"properties": {
"file": {
"$ref": "#/$defs/MediaFile",
"description": "File object provided by ChatGPT for AI-generated images or uploaded files."
},
"url": {
"type": "string",
"description": "Optional public image or video URL or data URI to upload into media library."
},
"name": {
"type": "string",
"description": "Optional display name or title for the media file."
}
},
"$defs": {
"MediaFile": {
"type": "object",
"properties": {
"download_url": {
"type": "string"
},
"file_id": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"mediaId": {
"type": "string",
"description": "ID of the newly uploaded media item."
},
"url": {
"type": "string",
"description": "Public URL of the media file."
},
"mediaUrl": {
"type": "string",
"description": "Public URL of the media file to pass in posts."
},
"type": {
"type": "string",
"description": "Media type ('image' or 'video')."
},
"name": {
"type": "string",
"description": "Display name or file name."
},
"message": {
"type": "string",
"description": "Upload status message."
},
"usage": {
"type": "string",
"description": "Guidance on using the media item in posts."
}
},
"required": [
"mediaId",
"url"
]
}🟡autoposter_get_media_upload_url(fileName, contentType)
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.
入力スキーマ
{
"type": "object",
"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')."
}
},
"required": [
"fileName",
"contentType"
]
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the upload URL was successfully created."
},
"key": {
"type": "string",
"description": "S3 object key for the media file."
},
"cdnUrl": {
"type": "string",
"description": "Public CDN URL after upload."
},
"directPutUrl": {
"type": "string",
"description": "Presigned S3 PUT URL for direct upload."
},
"uploadPost": {
"type": "object",
"description": "Presigned POST fields if using multipart upload."
},
"instructions": {
"type": "string",
"description": "Instructions for completing the direct upload."
}
},
"required": [
"success",
"key",
"cdnUrl",
"directPutUrl"
]
}🟡autoposter_create_upload_link
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.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"type": "object",
"properties": {
"uploadUrl": {
"type": "string",
"description": "Link to give to the user."
},
"expiresInMinutes": {
"type": "number",
"description": "Minutes until the link expires."
},
"maxFileSizeMb": {
"type": "number",
"description": "Maximum size per image in MB."
},
"instructions": {
"type": "string",
"description": "What to tell the user and what to do next."
}
},
"required": [
"uploadUrl",
"expiresInMinutes",
"instructions"
]
}🟡autoposter_draft_post(accountIds, content, platformContent, mediaUrls, mediaIds, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"accountIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of account IDs from autoposter_list_accounts."
},
"content": {
"type": "string",
"description": "Base text content of the post."
},
"platformContent": {
"type": "object",
"description": "Optional platform-specific content overrides (e.g. twitter, linkedin)."
},
"mediaUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional public image or video URLs to attach (e.g. from autoposter_upload_media)."
},
"mediaIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of existing media IDs from workspace media library (from autoposter_list_media)."
},
"files": {
"type": "array",
"items": {
"$ref": "#/$defs/MediaFile"
},
"description": "Optional files generated in chat or uploaded by user to attach to the post."
},
"postType": {
"type": "string",
"enum": [
"post",
"reel",
"story",
"shorts"
],
"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."
}
},
"required": [
"accountIds",
"content"
],
"$defs": {
"MediaFile": {
"type": "object",
"properties": {
"download_url": {
"type": "string"
},
"file_id": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Status message indicating draft creation."
},
"draftPosts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Draft post ID."
},
"platform": {
"type": "string",
"description": "Target social media platform."
},
"status": {
"type": "string",
"description": "Current post status (drafts or pending_approval)."
},
"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."
}
},
"required": [
"id",
"platform",
"status"
]
},
"description": "List of created draft posts per account."
},
"instructions": {
"type": "string",
"description": "Instructions for approving or viewing the draft."
}
},
"required": [
"message",
"draftPosts"
]
}🟡autoposter_schedule_post(accountIds, content, scheduledAt, timezone, platformContent, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"accountIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of account IDs from autoposter_list_accounts."
},
"content": {
"type": "string",
"description": "Base text content of the post."
},
"scheduledAt": {
"type": "string",
"description": "Scheduled ISO timestamp or local datetime string, e.g. '2026-10-05T14:00:00'."
},
"timezone": {
"type": "string",
"description": "Optional IANA timezone (e.g. 'America/New_York'). If omitted, defaults to workspace or user timezone."
},
"platformContent": {
"type": "object",
"description": "Optional platform-specific content overrides (e.g. twitter, linkedin)."
},
"mediaUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional public image or video URLs to attach (e.g. from autoposter_upload_media)."
},
"mediaIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of existing media IDs from workspace media library (from autoposter_list_media)."
},
"files": {
"type": "array",
"items": {
"$ref": "#/$defs/MediaFile"
},
"description": "Optional files generated in chat or uploaded by user to attach to the post."
},
"postType": {
"type": "string",
"enum": [
"post",
"reel",
"story",
"shorts"
],
"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."
}
},
"required": [
"accountIds",
"content",
"scheduledAt"
],
"$defs": {
"MediaFile": {
"type": "object",
"properties": {
"download_url": {
"type": "string"
},
"file_id": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the post was successfully scheduled."
},
"status": {
"type": "string",
"description": "Status of the scheduled post ('scheduled' or 'pending_approval')."
},
"scheduledAt": {
"type": "string",
"description": "Scheduled time in UTC."
},
"timezone": {
"type": "string",
"description": "Timezone applied."
},
"message": {
"type": "string",
"description": "Status message."
},
"scheduledPosts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Post ID."
},
"platform": {
"type": "string",
"description": "Target platform."
},
"status": {
"type": "string",
"description": "Post status."
},
"postType": {
"type": "string",
"description": "Target format ('post', 'reel', 'story', or 'shorts')."
},
"accountName": {
"type": "string",
"description": "Target account name."
},
"scheduledAt": {
"type": "string",
"description": "Scheduled timestamp."
}
},
"required": [
"id",
"platform",
"status",
"scheduledAt"
]
},
"description": "List of scheduled posts per target account."
}
},
"required": [
"success",
"status",
"scheduledAt",
"scheduledPosts"
]
}🟡autoposter_publish_draft(postId)
Approves and immediately publishes an existing draft or pending post. Requires an API key with direct publish permission.
入力スキーマ
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID returned by autoposter_draft_post."
}
},
"required": [
"postId"
]
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the draft was approved and queued/published."
},
"status": {
"type": "string",
"description": "Target status ('queued' or 'scheduled')."
},
"message": {
"type": "string",
"description": "Status message or confirmation."
}
},
"required": [
"success",
"status"
]
}🟢autoposter_get_post_status(postId)
Checks delivery status of a post and returns live platform links/receipts once published.
入力スキーマ
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to query."
}
},
"required": [
"postId"
]
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Post ID."
},
"state": {
"type": "string",
"description": "Current status: drafts, pending_approval, queued, posted, or failed."
},
"postedAt": {
"type": "string",
"description": "ISO timestamp when the post was published."
},
"postLink": {
"type": "string",
"description": "Live URL link to the published post on the platform."
},
"errorMessage": {
"type": "string",
"description": "Error message if post failed."
}
},
"required": [
"id",
"state"
]
}🟢autoposter_get_post(postId)
Retrieves a single post by ID including its state (drafts, pending_approval, queued, posted) and live link receipts.
入力スキーマ
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to fetch."
}
},
"required": [
"postId"
]
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Post ID."
},
"state": {
"type": "string",
"description": "Current post state."
},
"postedAt": {
"type": "string",
"description": "ISO timestamp when post was published."
},
"postLink": {
"type": "string",
"description": "Live platform URL link if posted."
},
"errorMessage": {
"type": "string",
"description": "Failure error message if any."
}
},
"required": [
"id",
"state"
]
}🔴autoposter_delete_post(postId)
Deletes or cancels a draft, scheduled, or pending post by ID.
入力スキーマ
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to delete or cancel."
}
},
"required": [
"postId"
]
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the post was deleted successfully."
},
"message": {
"type": "string",
"description": "Confirmation message."
},
"postId": {
"type": "string",
"description": "Deleted post ID."
}
},
"required": [
"success",
"postId"
]
}🟢autoposter_list_posts(state, limit, search)
Lists posts in the workspace. Supports filtering by state ('drafts', 'scheduled', 'queued', 'posted', 'failed', 'pending_approval'), caption text search, and limit.
入力スキーマ
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"drafts",
"draft",
"scheduled",
"queued",
"posted",
"failed",
"pending_approval"
],
"description": "Optional filter by post state."
},
"limit": {
"type": "number",
"description": "Maximum number of posts to return (default 20, max 50)."
},
"search": {
"type": "string",
"description": "Optional keyword to search in post captions."
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of posts returned."
},
"posts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Post ID."
},
"accountId": {
"type": "string",
"description": "Target account ID."
},
"text": {
"type": "string",
"description": "Post caption or content."
},
"state": {
"type": "string",
"description": "Current post state."
},
"scheduledAt": {
"type": "string",
"description": "Scheduled time if scheduled."
},
"postedAt": {
"type": "string",
"description": "Publish time if posted."
},
"postLink": {
"type": "string",
"description": "Live link receipt if posted."
},
"errorMessage": {
"type": "string",
"description": "Failure reason if failed."
},
"createdAt": {
"type": "string",
"description": "Creation ISO timestamp."
}
},
"required": [
"id",
"state"
]
},
"description": "List of matching posts."
}
},
"required": [
"count",
"posts"
]
}🟢autoposter_list_media(type, limit)
Lists media files (images and videos) stored in the workspace media library with public CDN URLs.
入力スキーマ
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"image",
"video"
],
"description": "Optional filter by media type ('image' or 'video')."
},
"limit": {
"type": "number",
"description": "Maximum number of media items to return (default 20, max 50)."
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of media items returned."
},
"media": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Media ID."
},
"name": {
"type": "string",
"description": "File name or title."
},
"type": {
"type": "string",
"description": "Media type ('image' or 'video')."
},
"url": {
"type": "string",
"description": "Public URL of media file."
},
"thumbnailUrl": {
"type": "string",
"description": "Thumbnail image URL if available."
}
},
"required": [
"id",
"name",
"type",
"url"
]
},
"description": "List of media items in workspace."
}
},
"required": [
"count",
"media"
]
}🟢get_profile
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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"pattern": "\\S",
"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."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}コミュニティ
エビデンス