Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
meta_list_pagesA

Lists all Facebook Pages managed by the authenticated user.

IMPORTANT: Call this tool first before any page or Instagram operations — it caches the page access tokens needed for subsequent calls.

Returns:

  • id: Page ID (needed for other tools)

  • name: Page name

  • category: Page category

  • fan_count: Number of likes

  • followers_count: Number of followers

  • link: Page URL

  • instagram_business_account.id: Linked Instagram account ID (if any)

Tip: The page tokens are cached automatically. You do not need to manage them manually.

meta_get_pageA

Gets detailed information about a specific Facebook Page.

Args:

  • page_id (string): The Facebook Page ID

Returns page details including name, category, description, follower counts, and linked Instagram account.

meta_create_postA

Creates a new post on a Facebook Page.

Requires: meta_list_pages must be called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID to post to

  • message (string): Text content of the post

  • link (string, optional): URL to attach to the post (creates a link preview)

  • published (boolean, optional): If false, saves as draft. Default true.

  • scheduled_publish_time (number, optional): Unix timestamp for scheduling (must be 10 min to 30 days in future; published must be false)

Returns: Post ID of the created post.

Notes:

  • Maximum post length: ~63,206 characters

  • Scheduling requires the page to have Page Publishing Authorization

meta_get_postsA

Lists posts from a Facebook Page feed.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max posts to return (1–100, default 20)

  • after (string, optional): Cursor for next page of results

Returns: List of posts with message, permalink, created time, and post ID.

meta_delete_postA

Deletes a post from a Facebook Page. This action is permanent and cannot be undone.

Args:

  • post_id (string): The post ID to delete (format: {page_id}_{post_id})

  • page_id (string): The Page ID (for authentication)

meta_create_photo_postB

Publishes a photo post to a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • url (string): Public URL of the image

  • caption (string, optional): Photo caption/message

  • published (boolean): Default true

meta_create_video_postA

Publishes a video post to a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • file_url (string): Public URL of the video file

  • title (string, optional): Video title

  • description (string, optional): Video description

meta_get_page_conversationsA

Lists conversations (messages) in a Facebook Page inbox.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max conversations (1–100, default 20)

  • after (string, optional): Pagination cursor

Requires pages_messaging permission.

meta_get_conversation_messagesA

Gets messages from a specific Page conversation.

Args:

  • page_id (string): Facebook Page ID (for auth)

  • conversation_id (string): Conversation ID (from meta_get_page_conversations)

  • limit (number): Max messages (1–100, default 20)

meta_send_page_messageA

Sends a message from a Facebook Page to a user (in an existing conversation).

Args:

  • page_id (string): Facebook Page ID

  • recipient_id (string): PSID (page-scoped user ID) of the recipient

  • message (string): Message text

Requires pages_messaging permission. Only works within the 24-hour messaging window.

meta_get_page_insightsA

Gets analytics/insights for a Facebook Page.

Requires: meta_list_pages called first.

Args:

  • page_id (string): Facebook Page ID

  • metrics (string[]): Metrics to retrieve. Full options: Impressions: page_impressions, page_impressions_unique, page_impressions_organic, page_impressions_organic_unique, page_impressions_paid, page_impressions_paid_unique, page_impressions_viral, page_impressions_viral_unique, page_impressions_nonviral, page_impressions_nonviral_unique Post Impressions: page_posts_impressions, page_posts_impressions_unique, page_posts_impressions_organic, page_posts_impressions_organic_unique, page_posts_impressions_paid, page_posts_impressions_paid_unique, page_posts_impressions_viral, page_posts_impressions_viral_unique Engagement: page_engaged_users, page_post_engagements, page_total_actions, page_negative_feedback Reactions: page_actions_post_reactions_total, page_actions_post_reactions_like_total, page_actions_post_reactions_love_total, page_actions_post_reactions_wow_total, page_actions_post_reactions_haha_total, page_actions_post_reactions_sorry_total, page_actions_post_reactions_anger_total Fans: page_fans, page_fan_adds, page_fan_adds_unique, page_fan_adds_by_paid_non_paid_unique, page_fan_removes, page_fan_removes_unique, page_daily_follows, page_daily_follows_unique, page_daily_unfollows_unique Views: page_views_total, page_tab_views_login_top, page_tab_views_login_top_unique, page_tab_views_logout_top Video: page_video_views, page_video_views_unique, page_video_views_paid, page_video_views_organic, page_video_views_autoplayed, page_video_views_click_to_play, page_video_complete_views_30s, page_video_complete_views_30s_unique, page_video_complete_views_30s_paid, page_video_complete_views_30s_organic, page_video_repeat_views, page_video_view_time, page_video_views_10s, page_video_views_10s_unique, page_video_views_10s_paid, page_video_views_10s_organic Content: page_media_view, page_lifetime_engaged_followers_unique

  • period (string): Aggregation period: 'day', 'week', 'days_28', 'month'

  • since (string, optional): Start date YYYY-MM-DD

  • until (string, optional): End date YYYY-MM-DD

Returns: Time-series data for each metric.

meta_get_post_insightsA

Gets performance metrics for a specific Facebook Page post.

Requires: meta_list_pages called first.

Args:

  • post_id (string): Post ID (e.g., "page_id_post_id")

  • page_id (string): Page ID (for authentication)

  • metrics (string[]): Metrics to retrieve. Options: Performance: post_impressions, post_impressions_unique, post_impressions_paid, post_impressions_paid_unique, post_impressions_fan, post_impressions_fan_unique, post_impressions_organic, post_impressions_organic_unique, post_impressions_viral, post_impressions_viral_unique Engagement: post_clicks, post_clicks_by_type, post_engaged_users, post_negative_feedback, post_negative_feedback_by_type, post_engaged_fan Reactions: post_reactions_by_type_total, post_reactions_like_total, post_reactions_love_total, post_reactions_wow_total, post_reactions_haha_total, post_reactions_sorry_total, post_reactions_anger_total Media: post_media_view, post_total_media_view_unique Video: post_video_avg_time_watched, post_video_complete_views_organic, post_video_complete_views_paid, post_video_views_organic, post_video_views_paid, post_video_view_time Activity: post_activity_by_action_type, post_activity_by_action_type_unique

All post metrics use 'lifetime' period (cumulative from post creation).

meta_update_pageA

Updates a Facebook Page's profile information.

Args:

  • page_id (string): Facebook Page ID

  • about (string, optional): Short description (max 255 chars)

  • description (string, optional): Long description

  • website (string, optional): Website URL

  • phone (string, optional): Phone number

  • emails (string[], optional): Contact emails

  • hours (object, optional): Business hours as key-value pairs (e.g., {"mon_1_open":"09:00","mon_1_close":"17:00"})

  • category (string, optional): Page category (e.g., "Restaurant")

  • username (string, optional): Page username/vanity URL

  • contact_address (object, optional): Mailing address with street, city, state, zip, country

Requires pages_manage_metadata permission.

meta_get_post_commentsA

Gets comments on a Facebook Page post.

Args:

  • post_id (string): Post ID (format: {page_id}_{post_id})

  • page_id (string): Page ID (for authentication — call meta_list_pages first)

  • limit (number): Max comments (1–100, default 25)

  • order (string): 'chronological' or 'reverse_chronological'

  • after (string, optional): Pagination cursor

  • filter (string): 'toplevel' (default), 'stream' (all including replies)

meta_reply_post_commentB

Replies to a comment on a Facebook Page post.

Args:

  • comment_id (string): Comment ID to reply to

  • page_id (string): Page ID (for token lookup)

  • message (string): Reply text

meta_delete_commentA

Deletes a comment on a Facebook Page post. Permanent action.

Args:

  • comment_id (string): Comment ID to delete

  • page_id (string): Page ID (for authentication)

meta_like_objectA

Likes or removes a like from a page post or comment, acting as the Page.

Args:

  • object_id (string): Post ID or Comment ID

  • page_id (string): Page ID (for token)

  • unlike (boolean): If true, removes the like instead

meta_get_scheduled_postsA

Lists scheduled (unpublished) posts for a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_page_albumsC

Lists photo albums on a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_page_eventsA

Lists events created by a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

  • time_filter (string): 'upcoming' or 'past'

meta_get_page_taggedB

Gets posts that tag this Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_page_fan_demographicsB

Gets fan/follower demographic breakdowns for a Facebook Page via insights.

Args:

  • page_id (string): Facebook Page ID

  • metric (string): Demographic metric — 'page_fans_city', 'page_fans_country', 'page_fans_gender_age', 'page_fans_locale'

meta_get_post_reactionsB

Gets reaction counts (like, love, haha, wow, sad, angry) on a post.

Args:

  • post_id (string): Post ID

meta_update_postA

Updates an existing Facebook Page post's message text.

Args:

  • post_id (string): Post ID

  • page_id (string): Page ID (for token)

  • message (string): New message text

meta_get_page_videosB

Lists videos uploaded to a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_visitor_postsC

Gets posts published by visitors on the Facebook Page wall.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_published_postsA

Gets posts published by the Page itself (excludes visitor posts, unlike the feed edge).

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (1–100, default 20)

meta_get_blocked_usersB

Lists users blocked by the Facebook Page.

Args:

  • page_id (string): Facebook Page ID

meta_block_userA

Blocks or unblocks a user from a Facebook Page. Blocked users cannot post or comment.

Args:

  • page_id (string): Facebook Page ID

  • user_id (string): User ID to block/unblock

  • unblock (boolean): If true, unblocks the user instead

meta_get_page_tabsA

Lists custom tabs on a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

meta_get_page_pictureA

Gets the profile picture URL for a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • size (string): Picture size — small, normal, large, square (default: large)

meta_get_postA

Gets detailed information about a specific Facebook post.

Args:

  • post_id (string): Post ID (format: {page_id}_{post_id})

meta_create_eventB

Creates an event on a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • name (string): Event name

  • start_time (string): ISO 8601 datetime (e.g., 2024-06-15T18:00:00-0400)

  • end_time (string, optional): ISO 8601 datetime

  • description (string, optional): Event description

  • place (string, optional): Location name

  • ticket_uri (string, optional): Ticket URL

meta_get_page_locationsB

Lists location pages for a business with multiple locations.

Args:

  • page_id (string): Parent Facebook Page ID

meta_get_page_ctaA

Gets the call-to-action button configured on a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

meta_get_page_photosB

Lists photos uploaded to a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • type (string): 'uploaded' (by page) or 'tagged' (photos page is tagged in)

  • limit (number): Max results (default 20)

meta_get_page_ratingsB

Gets ratings and reviews for a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (default 20)

meta_subscribe_page_webhooksA

Subscribes your app to receive webhook updates for a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • subscribed_fields (string[]): Fields to subscribe to, e.g., feed, messages, messaging_postbacks, conversations

Call without subscribed_fields to check current subscriptions.

meta_get_promotable_postsA

Gets posts that are eligible for boosting/promotion on a Facebook Page.

Args:

  • page_id (string): Facebook Page ID

  • limit (number): Max results (default 20)

meta_update_page_pictureA

Updates a Facebook Page's profile picture.

Args:

  • page_id (string): Facebook Page ID

  • picture_url (string): URL of the new profile picture

Requires pages_manage_metadata permission.

meta_update_page_coverA

Updates a Facebook Page's cover photo.

Args:

  • page_id (string): Facebook Page ID

  • cover_url (string, optional): URL of the new cover photo

  • photo_id (string, optional): ID of an existing photo to use as cover

  • offset_y (number, optional): Vertical offset of the cover photo (0–100)

  • no_feed_story (boolean, optional): If true, don't publish a feed story about the change

Provide either cover_url or photo_id. Requires pages_manage_metadata permission.

meta_hide_commentA

Hides or unhides a comment on a Facebook Page post.

Hidden comments are only visible to the comment author and their friends. This is a non-destructive alternative to deletion — useful for moderation.

Args:

  • comment_id (string): Comment ID to hide/unhide

  • page_id (string): Page ID (for authentication)

  • is_hidden (boolean): true to hide, false to unhide

Requires pages_manage_engagement permission.

meta_publish_page_storyB

Publishes a story (photo or video) to a Facebook Page.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • media_url (string): Public URL of the image or video

  • media_type (enum): "photo" or "video"

Returns the story ID on success.

meta_create_live_videoA

Creates a live video broadcast on a Facebook Page.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • title (string): Title of the live video

  • description (string, optional): Description of the broadcast

  • planned_start_time (string, optional): ISO 8601 datetime for scheduled broadcasts

If planned_start_time is provided, the broadcast is created as SCHEDULED_UNPUBLISHED; otherwise it goes LIVE_NOW.

Returns the stream URL and live video ID.

meta_get_live_videosA

Lists live videos on a Facebook Page.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • broadcast_status (enum, optional): Filter by status — "LIVE", "UNPUBLISHED", "SCHEDULED_UNPUBLISHED", or "VOD"

  • limit (number, optional): Max results (1–100, default 10)

  • after (string, optional): Pagination cursor

Returns live video details including title, status, views, and creation time.

meta_end_live_videoB

Ends an active live video broadcast.

Requires: meta_list_pages called first to load page tokens.

Args:

  • live_video_id (string): The live video ID to end

  • page_id (string): Facebook Page ID (needed for page token auth)

Ends the broadcast immediately.

meta_get_page_automated_responsesA

Gets the current automated messaging settings for a Facebook Page.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

Returns: Instant reply message, away message, greeting text, and ice breakers configuration.

meta_set_instant_replyA

Sets the instant reply message for a Facebook Page. This is the automatic message sent immediately when someone messages the page.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • message (string): The instant reply message text

  • enabled (boolean, default true): Whether instant reply is enabled

meta_set_away_messageA

Sets the away message for a Facebook Page. This is shown when the page is set to away mode.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • message (string): The away message text

  • enabled (boolean, default true): Whether away mode is enabled

meta_set_greetingB

Sets the Messenger greeting text for a Facebook Page. This is shown to users before they send their first message.

Requires: meta_list_pages called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • greeting_text (string): The greeting text (max 160 characters)

meta_publish_page_reelA

Publishes a Reel (short-form video) to a Facebook Page.

Requires: meta_list_pages must be called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • video_url (string): Public URL of the video file

  • description (string, optional): Reel description/caption

  • title (string, optional): Reel title

Returns: The reel/video ID on success.

Notes:

  • Video must be hosted on a publicly accessible server

  • FB Reels use a simpler single-step flow (no container polling needed)

meta_cross_postA

Publishes the same content to both a Facebook Page and Instagram simultaneously.

Requires: meta_list_pages must be called first to load page tokens.

Args:

  • page_id (string): Facebook Page ID

  • ig_account_id (string): Instagram professional account ID

  • message (string): Text content (used as FB post text and IG caption)

  • image_url (string, optional): Public image URL — creates photo posts on both platforms

  • video_url (string, optional): Public video URL — creates Reels on both platforms

Logic:

  • If image_url: FB photo post + IG photo post (parallel)

  • If video_url: FB Reel + IG Reel (parallel)

  • If text only: FB text post only (IG doesn't support text-only posts)

  • Uses Promise.allSettled so one platform failing doesn't block the other

Returns: Results from both platforms (which succeeded, which failed).

meta_list_instagram_accountsA

Lists all Instagram professional accounts linked to the user's Facebook Pages.

Requires: meta_list_pages must be called first.

Returns: Instagram account IDs, usernames, follower counts. The account ID is needed for all other Instagram tools.

meta_get_instagram_mediaA

Lists media (posts, reels, stories) from an Instagram professional account.

Args:

  • ig_account_id (string): Instagram account ID (from meta_list_instagram_accounts)

  • limit (number): Max items to return (1–100, default 20)

  • after (string, optional): Pagination cursor

meta_publish_instagram_photoA

Publishes a single image post to an Instagram professional account.

Two-step process: creates a media container then publishes it.

Args:

  • ig_account_id (string): Instagram account ID

  • image_url (string): Public URL of the JPEG image to post (must be publicly accessible)

  • caption (string, optional): Post caption (supports hashtags and @mentions)

  • alt_text (string, optional): Alt text for accessibility (screen readers)

  • location_id (string, optional): Facebook Place ID to tag location

Returns: Media ID of the published post.

Scheduling: Pass scheduled_publish_time (Unix timestamp, 10 min – 75 days in future) to schedule the post instead of publishing immediately.

Limitations:

  • JPEG only (no PNG, GIF, HEIC)

  • Max 100 posts per 24 hours

  • Image must be hosted on a public server

meta_publish_instagram_reelA

Publishes a video reel to an Instagram professional account.

Args:

  • ig_account_id (string): Instagram account ID

  • video_url (string): Public URL of the video file (MP4 recommended)

  • caption (string, optional): Reel caption

  • share_to_feed (boolean, optional): Also share to feed. Default true.

Returns: Media ID of the published reel.

Notes:

  • Video must be on a publicly accessible server

  • Check container status before publishing — video processing can take time

  • Use meta_check_instagram_container to check readiness

  • Scheduling: Pass scheduled_publish_time (Unix timestamp, 10 min – 75 days in future) to schedule instead of publishing immediately

meta_publish_instagram_storyA

Publishes an image or video story to an Instagram professional account.

Args:

  • ig_account_id (string): Instagram account ID

  • media_url (string): Public URL of the image or video

  • media_type (string): 'IMAGE' or 'VIDEO'

Returns: Media ID of the published story.

meta_publish_instagram_carouselA

Publishes a carousel post (2–10 images/videos) to Instagram.

Three-step process:

  1. Creates individual media containers for each item

  2. Creates a carousel container referencing them

  3. Publishes the carousel

Args:

  • ig_account_id (string): Instagram account ID

  • items (array): Array of up to 10 items, each with:

    • url (string): Public image URL (JPEG) or video URL

    • type (string): 'IMAGE' or 'VIDEO'

  • caption (string, optional): Carousel caption

Returns: Media ID of the published carousel.

Scheduling: Pass scheduled_publish_time (Unix timestamp, 10 min – 75 days in future) to schedule instead of publishing immediately.

meta_check_instagram_publishing_limitA

Checks how many of the 100 API-published posts per 24-hour limit have been used.

Args:

  • ig_account_id (string): Instagram account ID

Returns: Current usage and quota remaining.

meta_get_instagram_account_insightsA

Gets performance insights for an Instagram professional account.

Args:

  • ig_account_id (string): Instagram account ID

  • metrics (string[]): Metrics to retrieve. Options: Interactions: accounts_engaged, total_interactions, likes, comments, shares, saves, replies, reposts, reach, views, profile_links_taps, account_repost_count Legacy: impressions (deprecated v22.0+), follower_count, email_contacts, phone_call_clicks, text_message_clicks, get_directions_clicks, profile_views, website_clicks Demographics: engaged_audience_demographics, reached_audience_demographics, follower_demographics, online_followers

Note: account_repost_count (Dec 2025) returns the total number of reposts across the account for the given period.

  • period (string): 'day', 'week', 'days_28', 'month', 'lifetime' (lifetime only for demographic metrics)

  • since (string, optional): Start date YYYY-MM-DD

  • until (string, optional): End date YYYY-MM-DD

  • breakdown (string, optional): For demographic metrics: 'age', 'city', 'country', 'gender'

  • timeframe (string, optional): For demographic metrics: 'last_14_days', 'last_30_days', 'last_90_days', 'this_month', 'this_week'

Note: demographic metrics require 100+ followers. online_followers only available for last 30 days.

meta_get_instagram_media_insightsA

Gets performance metrics for a specific Instagram media object.

Args:

  • media_id (string): Instagram media ID (from meta_get_instagram_media)

  • metrics (string[]): Metrics vary by media type: Photos/Carousels: reach, likes, comments, shares, saved, total_interactions, follows, profile_visits, profile_activity, views, impressions (deprecated) Reels/Video: reach, likes, comments, shares, saved, total_interactions, follows, profile_visits, profile_activity, views, ig_reels_avg_watch_time, ig_reels_video_view_total_time, reels_skip_rate, repost_count, crossposted_views, facebook_views, impressions (deprecated), plays (deprecated), clips_replays_count (deprecated) Stories: reach, shares, follows, profile_visits, profile_activity, replies, navigation, total_interactions, views, impressions (deprecated)

New Reels metrics (Dec 2025): - reels_skip_rate: Percentage of viewers who skip within first 3 seconds - repost_count: Number of reposts of this media - crossposted_views: Total views across Instagram and Facebook (for crossposted content) - facebook_views: Facebook-specific views for crossposted Reels

  • breakdown (string, optional): 'action_type' (for profile_activity) or 'story_navigation_action_type' (for navigation)

meta_get_instagram_commentsC

Gets comments on an Instagram media object.

Args:

  • media_id (string): Instagram media ID

  • limit (number): Max comments to return (1–100, default 20)

meta_reply_instagram_commentA

Replies to a comment on an Instagram media object.

Args:

  • media_id (string): Instagram media ID (not the comment ID)

  • message (string): Reply text

  • comment_id (string, optional): If replying to a specific comment

Returns: Comment ID of the reply.

meta_search_instagram_hashtagA

Searches for a hashtag and gets its ID, then retrieves top or recent media.

Two-step process: first looks up the hashtag ID, then fetches media.

Args:

  • ig_account_id (string): Instagram account ID (required for auth context)

  • hashtag (string): Hashtag to search (without #)

  • edge (string): 'top_media' or 'recent_media' (default: top_media)

  • limit (number): Max results (1–50, default 20)

Note: Limited to 30 unique hashtag searches per 7 days per IG account.

meta_get_instagram_userA

Gets public profile info for any Instagram business/creator account by username.

Uses the Business Discovery API — no follow/connection required.

Args:

  • ig_account_id (string): Your Instagram account ID (for auth)

  • username (string): Instagram username to look up (without @)

Returns: Bio, follower/following counts, media count, profile picture, and recent media.

meta_get_instagram_storiesA

Gets currently active stories for an Instagram professional account.

Args:

  • ig_account_id (string): Instagram account ID

Returns: List of active story media objects. Stories expire after 24 hours.

meta_delete_instagram_mediaA

Deletes an Instagram media object (post, reel, story). This is permanent.

Args:

  • media_id (string): Instagram media ID to delete

meta_toggle_instagram_commentsA

Enables or disables comments on an Instagram media object.

Args:

  • media_id (string): Instagram media ID

  • enabled (boolean): true to enable comments, false to disable

meta_delete_instagram_commentA

Deletes a comment on an Instagram media object. This is permanent.

Args:

  • comment_id (string): The comment ID to delete

meta_get_instagram_comment_repliesB

Gets replies to a specific Instagram comment.

Args:

  • comment_id (string): Parent comment ID

  • limit (number): Max replies (1–50, default 20)

meta_get_instagram_media_childrenA

Gets individual media items in a carousel/album post.

Args:

  • media_id (string): Carousel media ID

meta_check_instagram_containerA

Checks the publishing status of an Instagram media container (used for reels/videos that need processing).

Args:

  • container_id (string): Container ID from a publish step

Returns: status_code — IN_PROGRESS, FINISHED, ERROR, EXPIRED.

meta_get_instagram_mentioned_mediaB

Gets media where the Instagram account was @mentioned in a caption or comment.

Args:

  • ig_account_id (string): Instagram account ID

  • limit (number): Max results (default 20)

Requires instagram_manage_comments permission.

meta_get_instagram_recent_hashtagsA

Gets hashtags recently searched by the Instagram account.

Args:

  • ig_account_id (string): Instagram account ID

Note: Limited to 30 unique hashtag searches per 7 days. This returns the recent searches.

meta_get_instagram_live_mediaB

Gets live video broadcasts from an Instagram account.

Args:

  • ig_account_id (string): Instagram account ID

meta_get_instagram_product_tagsB

Gets product tags on an Instagram media object. Requires Instagram Shopping.

Args:

  • media_id (string): Instagram media ID

meta_publish_instagram_containerA

Publishes a pre-created Instagram media container. Use after checking container status is FINISHED.

Useful for reels/videos where container creation and publishing are done in separate steps.

Args:

  • ig_account_id (string): Instagram account ID

  • container_id (string): Container ID (from a previous create step)

meta_get_instagram_single_mediaC

Gets detailed information about a specific Instagram media object.

Args:

  • media_id (string): Instagram media ID

meta_get_instagram_conversationsA

Lists Instagram Direct Message conversations.

Args:

  • ig_account_id (string): Instagram account ID

  • folder (string): 'inbox' (default), 'spam', or 'general'

  • limit (number): Max conversations (1–100, default 20)

  • after (string, optional): Pagination cursor

Requires instagram_manage_messages permission. Uses user token (not page token).

meta_get_instagram_messagesA

Gets messages in an Instagram Direct Message conversation.

Args:

  • conversation_id (string): Conversation ID (from meta_get_instagram_conversations)

  • limit (number): Max messages (1–100, default 20)

  • after (string, optional): Pagination cursor

Messages are returned in reverse chronological order from the API and displayed in chronological order.

meta_send_instagram_messageA

Sends a text DM to an Instagram user.

Args:

  • ig_account_id (string): Instagram account ID (sender)

  • recipient_id (string): Instagram-scoped user ID of the recipient

  • message (string): Text message to send

Note: Only works within the 24-hour human agent messaging window or 7-day standard messaging window. The recipient must have messaged the account first.

Returns: Message ID.

meta_send_instagram_media_messageA

Sends an image or link via Instagram Direct Message.

Args:

  • ig_account_id (string): Instagram account ID (sender)

  • recipient_id (string): Instagram-scoped user ID of recipient

  • image_url (string, optional): URL of image to send

  • link_url (string, optional): URL of link to send (as a generic template)

Provide either image_url or link_url (not both). Same messaging window restrictions as text DMs.

Returns: Message ID.

meta_get_instagram_broadcast_channelsA

Lists broadcast channels for an Instagram professional account.

Broadcast channels enable one-to-many messaging from creators/brands to subscribers.

Args:

  • ig_account_id (string): Instagram account ID

Returns: Channel IDs, names, descriptions, subscriber counts.

meta_get_broadcast_channel_messagesA

Gets messages in an Instagram broadcast channel.

Args:

  • channel_id (string): Broadcast channel ID

  • limit (number): Max messages (1–100, default 20)

  • after (string, optional): Pagination cursor

Returns: Paginated list of messages with type, content, and timestamps.

meta_send_broadcast_channel_messageA

Sends a message to an Instagram broadcast channel.

Args:

  • channel_id (string): Broadcast channel ID

  • message (string): Message text to send

  • link_url (string, optional): Clickable link to include with the message

Returns: Message ID of the sent message.

meta_create_broadcast_channel_pollA

Creates a poll in an Instagram broadcast channel.

Args:

  • channel_id (string): Broadcast channel ID

  • question (string): Poll question

  • options (string[]): Poll options (2–4 items)

Returns: Poll/message ID.

meta_hide_instagram_commentA

Hides or unhides a comment on an Instagram media object.

Hidden comments are only visible to the comment author. This is a non-destructive alternative to deletion — useful for moderation.

Args:

  • comment_id (string): Comment ID to hide/unhide

  • is_hidden (boolean): true to hide, false to unhide

meta_get_instagram_available_catalogsA

Lists product catalogs available for Instagram Shopping on a professional account.

Args:

  • ig_account_id (string): Instagram account ID

Returns: Catalog IDs and names that can be used for product tagging on this account.

Requires: instagram_shopping_tag_products permission.

meta_search_instagram_catalog_productsA

Searches for products in an Instagram Shopping catalog by name.

Args:

  • ig_account_id (string): Instagram account ID

  • catalog_id (string): Product catalog ID (from meta_get_instagram_available_catalogs)

  • q (string): Product search query

Returns: Matching products that can be tagged in Instagram posts.

meta_list_ad_accountsA

Lists all Meta ad accounts accessible to the authenticated user.

Returns ad account IDs (prefixed with act_), names, currency, status, and spend info.

Call this first to get ad account IDs needed for campaign and insights tools.

meta_list_campaignsA

Lists campaigns for a Meta ad account.

Args:

  • ad_account_id (string): Ad account ID (e.g., act_123456789)

  • status_filter (string[], optional): Filter by status: ACTIVE, PAUSED, ARCHIVED, DELETED

  • limit (number): Max results (1–100, default 20)

  • after (string, optional): Pagination cursor

Returns campaign names, objectives, status, and budget info.

meta_get_campaignB

Gets detailed information about a specific campaign.

Args:

  • campaign_id (string): Campaign ID

meta_create_campaignA

Creates a new campaign in a Meta ad account.

Args:

  • ad_account_id (string): Ad account ID (e.g., act_123456789)

  • name (string): Campaign name

  • objective (string): Campaign objective. Common values: OUTCOME_AWARENESS, OUTCOME_TRAFFIC, OUTCOME_ENGAGEMENT, OUTCOME_LEADS, OUTCOME_APP_PROMOTION, OUTCOME_SALES

  • status (string): ACTIVE or PAUSED (default PAUSED)

  • daily_budget (number, optional): Daily budget in account currency cents

  • lifetime_budget (number, optional): Lifetime budget in cents (requires stop_time)

  • stop_time (string, optional): ISO 8601 end date (required for lifetime budget)

  • special_ad_categories (string[], optional): Required for housing, employment, credit ads

Note: For OUTCOME_SALES objective, Advantage+ Shopping campaigns are available. These use Meta's AI to optimize targeting and placements automatically. Create a standard campaign first, then use meta_migrate_campaign_to_advantage_plus to convert it.

Returns the new campaign ID.

meta_update_campaignA

Updates an existing campaign. Only provided fields are changed.

Can also migrate a campaign to Advantage+ Shopping by setting migrate_to_advantage_plus to true.

Args:

  • campaign_id (string): Campaign ID to update

  • name (string, optional): New campaign name

  • status (string, optional): ACTIVE, PAUSED, or ARCHIVED

  • daily_budget (number, optional): New daily budget in cents

  • lifetime_budget (number, optional): New lifetime budget in cents

  • migrate_to_advantage_plus (boolean, optional): Migrate this campaign to Advantage+ Shopping (keeps original campaign ID)

meta_delete_campaignA

Deletes (archives) a campaign. This cannot be undone.

Args:

  • campaign_id (string): Campaign ID to delete

meta_migrate_campaign_to_advantage_plusA

Migrates an existing campaign to Advantage+ Shopping (formerly ASC).

Advantage+ Shopping campaigns use Meta's AI to automatically optimize targeting, placements, and creative delivery for online sales. After migration, Meta handles audience selection and budget allocation across placements for better ROAS.

The campaign keeps its original ID — this is an in-place conversion, not a new campaign.

Args:

  • campaign_id (string): Campaign ID to migrate

  • ad_account_id (string): Ad account ID (e.g., act_123456789)

meta_list_adsetsA

Lists ad sets for a campaign or ad account.

Args:

  • campaign_id (string, optional): Filter by campaign ID

  • ad_account_id (string, optional): Ad account ID (use if not filtering by campaign)

  • status_filter (string[], optional): ACTIVE, PAUSED, ARCHIVED, DELETED

  • limit (number): Max results (default 20)

  • after (string, optional): Pagination cursor

Provide either campaign_id or ad_account_id.

meta_create_adsetA

Creates a new ad set within a campaign.

Args:

  • ad_account_id (string): Ad account ID (e.g., act_123456789)

  • campaign_id (string): Parent campaign ID

  • name (string): Ad set name

  • daily_budget (number, optional): Daily budget in cents

  • lifetime_budget (number, optional): Lifetime budget in cents (requires end_time)

  • billing_event (string): How you're charged: IMPRESSIONS, LINK_CLICKS, etc.

  • optimization_goal (string): What to optimize for: REACH, LINK_CLICKS, CONVERSIONS, etc.

  • targeting (object): Targeting spec JSON. Example: {"geo_locations": {"countries": ["US"]}, "age_min": 18, "age_max": 65}

  • start_time (string, optional): ISO 8601 start time

  • end_time (string, optional): ISO 8601 end time (required with lifetime_budget)

  • status (string): ACTIVE or PAUSED (default PAUSED)

  • placement_soft_opt_out (string[], optional): Placements to soft opt-out (up to 5% spend may still go to these). Only for Sales/Leads objectives.

Returns the new ad set ID.

meta_update_adsetA

Updates an existing ad set. Only provided fields are changed.

Args:

  • adset_id (string): Ad set ID to update

  • name (string, optional): New name

  • status (string, optional): ACTIVE, PAUSED, or ARCHIVED

  • daily_budget (number, optional): New daily budget in cents

  • end_time (string, optional): New end time ISO 8601

  • placement_soft_opt_out (string[], optional): Placements to soft opt-out (up to 5% spend may still go to these). Only for Sales/Leads objectives.

meta_list_adsA

Lists ads for an ad set, campaign, or ad account.

Args:

  • adset_id (string, optional): Filter by ad set

  • campaign_id (string, optional): Filter by campaign

  • ad_account_id (string, optional): List all ads in account

  • status_filter (string[], optional): ACTIVE, PAUSED, ARCHIVED, DELETED

  • limit (number): Max results (default 20)

  • after (string, optional): Pagination cursor

Provide one of adset_id, campaign_id, or ad_account_id.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oliverames/meta-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server