social_* — Social posting

The cross-platform social posting tool namespace — accounts and profiles, the draft → approve → publish/schedule flow, post listing and metrics, and comment replies.

The social_* family is a normalized cross-platform posting surface — the same tools work across providers (provider defaults to meta). The intended path is draft → approve → publish/schedule, with a built-in review step. Posts and comment replies are public actions, so the approval gate exists for a reason.

Accounts & profiles

social_list_accounts(provider="meta")
social_list_profiles(provider="meta", account_id="")

social_list_profiles returns the publishable profiles — the profile_id values the post tools need.

The draft → approve → publish flow

social_create_post_draft

social_create_post_draft(profile_id, provider="meta", text="", title="",
                         body="", call_to_action="", link_url="",
                         hashtags=None, media_urls=None, scheduled_for="",
                         approval_required=True)

Composes a post and returns a preview plus a review_url where it can be approved, rejected, or revised. approval_required=True (default) keeps the human gate in place.

social_get_draft / social_approve_draft

social_get_draft(draft_id, provider="meta")
social_approve_draft(draft_id, provider="meta", approved=True)

Fetch the normalized draft, then approve (or set approved=False to un-approve).

social_publish_post / social_schedule_post

social_publish_post(provider="meta", draft_id="", profile_id="", approved=False,
                    text="", title="", body="", call_to_action="",
                    link_url="", hashtags=None, media_urls=None)

social_schedule_post(publish_at, provider="meta", draft_id="", profile_id="",
                     approved=False, text="", ...)

Either reference an approved draft_id or pass the content inline. social_schedule_post requires publish_at (the future time); publish_post goes out now.

Reading & engagement

social_list_posts(provider="meta", profile_id="", status="", limit=10)
social_get_post_metrics(post_id, provider="meta")
social_list_comments(post_id, provider="meta", limit=25)
social_snapshot(provider="meta", profile_id="", limit=5)

social_snapshot is the quick cross-platform overview; social_get_post_metrics returns normalized engagement for one post.

social_reply_to_comment

social_reply_to_comment(comment_id, message, provider="meta")

A public reply — same confirm-before-send caution as publishing applies.