Skip to main content
Glama

manage_social_media

Destructive

Manage social media comments, publishing and scheduling on Instagram (ds_id IGI, default), LinkedIn pages (ds_id LIP) and Google Business Profile (GMB); writes may return a link the user must approve; to analyse, query ds_id IGI (get media_id there), IGPD2 or LIP (update_id is the number in a share- or ugcPost- media_id; include today, e.g. last_7_days_inc, for new posts). LinkedIn media_id: share-, ugcPost- or the post URN; comment ids come from list_comments. GMB account_id is a location from accounts_discovery; reviews are its comments; an owner reply shares its review's id, and delete removes only the reply. Workflows: supermetrics_guide mode social_publishing. AI images: always generate them in creative_picker first so the user reviews them, then publish its upload_ref; send media_prompt(s) only if the user explicitly said they don't need to review. Actions and their parameters (all take ds_id): list_comments(account_id, media_id (omit on GMB); limit, cursor) | comment(account_id, message; media_id OR comment_id to reply) | moderate_comment(account_id, comment_id; hidden true/false (Instagram) OR delete true) | publish(account_id, content_type IMAGE/VIDEO/CAROUSEL/STORY on Instagram, TEXT/LINK/IMAGE/CAROUSEL on LinkedIn, TEXT/IMAGE on GMB; caption, alt_text, title, link_url; media_url OR upload_ref (creative_picker uploads, or AI-generates with preview; existing saved images: campaign_and_resource_get resource_type assets, ds_id IGI, without opening the picker) OR media_prompt (only if the user declined to review AI images), CAROUSEL: media_urls/media_prompts, STORY sequence: frames, on_failure; style, reference_image; platform_options (Instagram, GMB); publish_at, timezone, spacing_minutes; best Instagram time: IGI online_followers by hour; space one account's scheduled posts 5+ minutes apart, as Instagram throttles bursts) | update_post(account_id, media_id, comments_enabled OR scheduled_id with publish_at/timezone/caption/alt_text/platform_options) | cancel_scheduled(scheduled_id) | status(job_id [+wait_seconds] OR scheduled_id OR approval_ref OR quota+account_id (Instagram); none lists scheduled posts, on every platform without ds_id: account_id, state, limit, cursor). Scheduled posts, jobs and approvals are found by id, without ds_id. publish and scheduled update_post take validate_only; repeating the same publish or comment within 15 minutes returns the first result instead of writing twice. Follow each result's next_action.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "manage_social_media"
  }
}

Input Schema

NameRequiredDescriptionDefault
ds_idNoIGI (Instagram, default), LIP (LinkedIn page) or GMB (Google Business Profile location)
limitNo1-50
quotaNostatus: publishing quota left (needs account_id)
stateNostatus listing filter; default scheduled. Lists posts made with publish_at only
styleNoShared look/subject for AI images
titleNoPost title, where the platform has one
actionYes
cursorNonext_cursor from the previous page
deleteNomoderate_comment: true deletes the comment
framesNoSTORY sequence, in order
hiddenNomoderate_comment: hide (true) or unhide (false)
job_idNo
captionNo
messageNocomment text
alt_textNoScreen-reader description; IMAGE posts (LinkedIn also CAROUSEL, on every image)
link_urlNoLINK: the URL to share
media_idNoPublished post id, as a string (LinkedIn: as returned, or update_id)
timezoneNoIANA zone for a publish_at without offset; ask the user
media_urlNoPublic https URL
account_idNoAccount id on the platform, as a string
comment_idNoComment id, as a string
media_urlsNoCAROUSEL
on_failureNoframes: if one fails; default stop
publish_atNoOmit on publish to post now; else 5 min to 75 days ahead, allowing for approval: e.g. 2026-11-20T09:00 with timezone, or with offset
upload_refNoFrom creative_picker; comma-separated for CAROUSEL
approval_refNoapr_… from an approval_required result
content_typeNoInstagram: IMAGE, VIDEO (reel), CAROUSEL, STORY; LinkedIn: TEXT, LINK, IMAGE, CAROUSEL; GMB: TEXT, IMAGE
media_promptNoAI image skipping review: only if the user explicitly declined review; else creative_picker
scheduled_idNo
wait_secondsNostatus of a job: wait up to this for it
media_promptsNoCAROUSEL AI images; only if the user declined review, else creative_picker upload_refs
validate_onlyNoRun every check without creating anything
reference_imageNohttps URL or upload_ref of a subject AI images keep
spacing_minutesNoframes: minutes between scheduled frames
comments_enabledNoupdate_post on a published post
platform_optionsNoIGI IMAGE/VIDEO: user_tags (x, y: 0-1), collaborators, location_id; CAROUSEL: collaborators; STORY: user_tags; VIDEO only: the other IGI keys. GMB: topic_type, event (EVENT/OFFER), offer (OFFER), call_to_action (not OFFER)
consistent_charactersNoframes: reuse frame 1 as reference (default on)

Output Schema

NameRequiredDescriptionDefault
dataNo
errorNo
notesNo
successYes
business_contextNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint, openWorldHint, non-idempotent), the description discloses that writes may return a link the user must approve, that repeating the same publish or comment within 15 minutes returns the first result instead of double-writing, that Instagram throttles bursts, and that on GMB delete removes only the owner reply. It also notes validate_only and that results carry a next_action to follow — all behavior an agent could not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and platform codes are front-loaded, followed by action-by-action parameter mapping, so the structure is logical and every clause carries information for a 37-parameter tool. It is still a dense semicolon-chained wall of text that is harder to scan than it needs to be, which is the only thing holding it below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given seven actions, three platforms, 37 parameters and a mutation-heavy annotation profile, the description covers the decision points that matter: platform selection, id formats, approval flow, dedup window, throttling, and the follow-next_action convention. Return values are covered by the output schema, so the description need not explain them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 89%, so the baseline is 3, but the description goes further by mapping parameters to actions (all take ds_id; media_id vs comment_id to reply; hidden/delete only for moderate_comment) and by explaining LinkedIn id formats (share-<n>, ugcPost-<n>, post URN, update_id) and where GMB account_id and comment ids come from. It stops short of covering every field (e.g. job_id, wait_seconds are only implied), which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete domain (comments, publishing, scheduling) and enumerates the seven actions it dispatches (list_comments, comment, moderate_comment, publish, update_post, cancel_scheduled, status) across three named platforms with their ds_id codes. It explicitly routes adjacent jobs elsewhere (creative_picker for AI images, accounts_discovery for GMB location ids), so an agent can separate it from siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to use each path rather than leaving it to inference: generate AI images in creative_picker first, use media_prompt only if the user declined review, omit ds_id for scheduled posts/jobs/approvals, and use campaign_and_resource_get for existing saved assets. It also gives a positive precondition (include today, e.g. last_7_days_inc, for new posts) and a scheduling constraint (space one account's posts 5+ minutes apart).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources