AutoPoster AI

Multi-platform social media post creation, scheduling, and publishing.

我该使用它吗

质量与安全性

A
描述质量
99%
模式完整度
77%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'autoposter_get_media_upload_url' name length outside 3-30 range在 autoposter_get_media_upload_url 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,229token 数(工具定义)
~2.9 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.30%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `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
}

社区

评价此服务器

证据

最近观测

已验证未记录版本14 个工具