Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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_pageB

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_postC

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_commentA

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_postsB

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_taggedA

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_demographicsA

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_reactionsA

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

Args:

  • post_id (string): Post ID

meta_update_postB

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_videosC

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_postsA

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_usersA

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_pictureB

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_postB

Gets detailed information about a specific Facebook post.

Args:

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

meta_create_eventA

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_storyA

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_videoA

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_greetingA

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_storyC

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_commentsB

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_repliesA

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_tagsA

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_mediaB

Gets detailed information about a specific Instagram media object.

Args:

  • media_id (string): Instagram media ID

meta_get_instagram_conversationsB

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_messagesB

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_campaignsB

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_campaignC

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.

meta_create_adA

Creates a new ad within an ad set.

Args:

  • ad_account_id (string): Ad account ID

  • adset_id (string): Parent ad set ID

  • name (string): Ad name

  • creative_id (string): Ad creative ID (from meta_list_ad_creatives or meta_create_ad_creative)

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

Returns the new ad ID.

meta_update_adA

Updates an existing ad's status or name.

Args:

  • ad_id (string): Ad ID

  • name (string, optional): New name

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

meta_list_ad_creativesA

Lists ad creatives for an ad account.

Args:

  • ad_account_id (string): Ad account ID

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

  • after (string, optional): Pagination cursor

Returns creative IDs, names, and associated page post IDs.

meta_create_ad_creativeA

Creates an ad creative from an existing Facebook Page post.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Creative name

  • page_id (string): Facebook Page ID that owns the post

  • object_story_id (string, optional): Use an existing published post as creative (format: {page_id}_{post_id})

  • title (string, optional): Ad headline

  • body (string, optional): Ad body text

  • image_url (string, optional): Image URL for the creative

  • link_url (string, optional): Destination URL

Returns the new creative ID.

meta_get_ad_previewA

Generates a preview URL for an ad or creative.

Args:

  • ad_id (string, optional): Existing ad ID

  • creative_id (string, optional): Creative ID to preview

  • ad_format (string): Preview format — DESKTOP_FEED_STANDARD, MOBILE_FEED_STANDARD, INSTAGRAM_STANDARD, INSTAGRAM_STORY, RIGHT_COLUMN_STANDARD

Provide either ad_id or creative_id.

meta_delete_adA

Deletes an ad permanently.

Args:

  • ad_id (string): Ad ID to delete

meta_delete_adsetA

Deletes an ad set permanently.

Args:

  • adset_id (string): Ad set ID to delete

meta_get_ad_account_usersA

Lists users who have access to an ad account with their roles.

Args:

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

meta_upload_ad_imageA

Uploads an image to an ad account's image library for use in creatives.

Args:

  • ad_account_id (string): Ad account ID

  • url (string): Public URL of the image to upload

  • name (string, optional): Name for the uploaded image

Returns: Image hash (used when creating ad creatives).

meta_search_targeting_interestsA

Searches for interest-based targeting options for ad sets.

Args:

  • q (string): Search query (e.g., "yoga", "cooking")

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

Returns: Interest IDs and names to use in ad set targeting.

meta_search_targeting_geolocationsB

Searches for geographic targeting options (countries, regions, cities, zip codes).

Args:

  • q (string): Location search query (e.g., "New York", "United Kingdom")

  • type (string): Location type — country, region, city, zip, geo_market, electoral_district

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

Returns: Location keys to use in ad set targeting.

meta_search_targeting_demographicsB

Searches for demographic targeting options (job titles, employers, education).

Args:

  • q (string): Search query

  • type (string): adworkposition (job titles), adworkemployer (employers), adeducationschool (schools), adeducationmajor (majors)

meta_get_reach_estimateA

Estimates the potential reach for a targeting specification.

Args:

  • ad_account_id (string): Ad account ID

  • targeting_spec (object): Targeting specification (same format as ad set targeting)

  • optimization_goal (string, optional): e.g., REACH, LINK_CLICKS, IMPRESSIONS

Returns: Estimated daily reach and audience size.

meta_get_delivery_estimateA

Gets delivery estimate for an existing ad set.

Args:

  • adset_id (string): Ad set ID

Returns: Estimated daily outcomes (reach, impressions, actions) and bid suggestion.

meta_list_pixelsB

Lists all Meta Pixels for an ad account.

Args:

  • ad_account_id (string): Ad account ID

meta_create_pixelB

Creates a new Meta Pixel for conversion tracking.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Pixel name

meta_get_pixelC

Gets details for a single Meta Pixel.

Args:

  • pixel_id (string): Pixel ID

  • response_format (optional): "json" or "text"

meta_get_pixel_statsA

Gets event volume stats for a pixel (critical for verifying pixel is firing).

Args:

  • pixel_id (string): Pixel ID

  • start_time (string, optional): ISO date for start of range

  • end_time (string, optional): ISO date for end of range

  • aggregation (string, optional): "event" (default) or "device"

  • event (string, optional): Filter to specific event like "Purchase"

meta_update_pixelC

Updates pixel settings.

Args:

  • pixel_id (string): Pixel ID

  • name (string, optional): New pixel name

  • first_party_cookie_status (string, optional): "EMPTY", "FIRST_PARTY_COOKIE_ENABLED", or "FIRST_PARTY_COOKIE_DISABLED"

  • automatic_matching_fields (string[], optional): e.g. ["em","ph","fn","ln","ct","st","zp","country","db","ge","external_id"]

  • data_use_setting (string, optional): "EMPTY" or "DATA_USE_SETTING_LDU"

meta_delete_pixelA

Deletes a Meta Pixel.

Args:

  • pixel_id (string): Pixel ID to delete

meta_share_pixelB

Shares a pixel with another ad account.

Args:

  • pixel_id (string): Pixel ID

  • ad_account_id (string): Target ad account ID

  • business_id (string): Business ID

meta_get_pixel_eventsB

Gets recent events received by a pixel (for debugging).

Args:

  • pixel_id (string): Pixel ID

meta_list_custom_conversionsC

Lists custom conversions for an ad account.

Args:

  • ad_account_id (string): Ad account ID

meta_create_custom_conversionB

Creates a custom conversion for tracking specific actions.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Conversion name

  • pixel_id (string): Pixel ID to associate with

  • custom_event_type (string): Event type — CONTENT_VIEW, SEARCH, ADD_TO_CART, ADD_TO_WISHLIST, INITIATED_CHECKOUT, ADD_PAYMENT_INFO, PURCHASE, LEAD, COMPLETE_REGISTRATION, OTHER

  • rule (string): URL rule as JSON (e.g., {"url":{"i_contains":"thank-you"}})

meta_list_saved_audiencesC

Lists saved audiences (targeting presets) for an ad account.

Args:

  • ad_account_id (string): Ad account ID

meta_list_ad_rulesA

Lists automated rules for an ad account.

Args:

  • ad_account_id (string): Ad account ID

meta_list_ad_labelsA

Lists ad labels for an ad account. Labels help organize campaigns, ad sets, and ads.

Args:

  • ad_account_id (string): Ad account ID

meta_create_ad_labelB

Creates a label for organizing ads, ad sets, or campaigns.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Label name

meta_list_ad_videosA

Lists videos in an ad account's video library.

Args:

  • ad_account_id (string): Ad account ID

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

meta_upload_ad_videoB

Uploads a video to an ad account's video library for use in creatives.

Args:

  • ad_account_id (string): Ad account ID

  • file_url (string): Public URL of video file

  • title (string, optional): Video title

  • description (string, optional): Video description

meta_get_ad_account_activityA

Gets the activity/change log for an ad account.

Args:

  • ad_account_id (string): Ad account ID

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

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

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

meta_get_ad_accountA

Gets detailed information about a specific ad account.

Args:

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

meta_get_adsetC

Gets detailed information about a specific ad set.

Args:

  • adset_id (string): Ad set ID

meta_get_adC

Gets detailed information about a specific ad.

Args:

  • ad_id (string): Ad ID

meta_get_ad_creativeC

Gets detailed information about a specific ad creative.

Args:

  • creative_id (string): Creative ID

meta_create_ad_ruleA

Creates an automated rule for managing ads, ad sets, or campaigns.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Rule name

  • evaluation_spec (object): Conditions that trigger the rule (e.g., {"evaluation_type":"TRIGGER","trigger":{"type":"STATS_CHANGE","field":"cost_per_result","value":"5.00","operator":"GREATER_THAN"}})

  • execution_spec (object): Actions to take (e.g., {"execution_type":"PAUSE"})

  • schedule_spec (object, optional): When to evaluate (e.g., {"schedule_type":"DAILY"})

meta_delete_ad_ruleA

Deletes an automated ad rule.

Args:

  • rule_id (string): Ad rule ID

meta_list_ad_imagesB

Lists images in an ad account's image library.

Args:

  • ad_account_id (string): Ad account ID

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

meta_browse_targeting_categoriesC

Browses all available targeting category types for ad targeting.

Args:

  • type (string): Category type — adTargetingCategory, adcountry, adlocale, adlanguage

meta_create_saved_audienceC

Creates a saved audience (reusable targeting preset) for an ad account.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Audience name

  • targeting (object): Targeting spec object

meta_delete_saved_audienceC

Deletes a saved audience.

Args:

  • audience_id (string): Saved audience ID

meta_list_business_assetsB

Lists assets (pages, ad accounts, Instagram accounts, pixels) for a Business Manager.

Args:

  • business_id: Business Manager ID

  • asset_type: "owned_pages", "owned_ad_accounts", "owned_instagram_accounts", "owned_pixels"

  • limit (optional, default 25): Max results

Returns asset details including IDs, names, and type-specific metadata.

meta_create_ad_studyA

Creates an A/B test (ad study) to compare campaigns or ad sets.

Args:

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

  • name (string): Study name

  • description (string, optional): Study description

  • start_time (string): ISO 8601 start time

  • end_time (string): ISO 8601 end time

  • type (enum): SPLIT_TEST or HOLDOUT

  • cells (array): Test cells, each with name, treatment_percentage, and optional campaign_ids/adset_ids

  • confidence_level (number, default 95): Statistical confidence level (e.g., 90, 95, 99)

Returns: The created study ID.

meta_get_ad_studiesA

Lists A/B tests (ad studies) for a Meta ad account.

Args:

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

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

Returns: List of studies with name, type, status, dates, and results.

meta_get_ad_study_resultsA

Gets detailed results of a specific A/B test (ad study).

Args:

  • study_id (string): The ad study ID

Returns: Study details including winner, confidence level, and per-cell metrics.

meta_list_leadgen_formsA

Lists lead generation forms for a Facebook Page.

Lead forms are used with OUTCOME_LEADS campaigns to collect user information.

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

Args:

  • page_id (string): Facebook Page ID

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

Returns form IDs, names, status, and creation times.

meta_get_leadgen_leadsA

Gets submitted leads from a lead generation form.

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

Args:

  • form_id (string): Lead gen form ID (from meta_list_leadgen_forms)

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

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

  • after (string, optional): Pagination cursor

Returns lead data including field values, creation time, and ad info.

meta_get_ad_ruleA

Gets details for a specific automated ad rule.

Args:

  • rule_id (string): Ad rule ID

meta_get_minimum_budgetsA

Gets the minimum daily and lifetime budgets for an ad account by currency and bid strategy.

Essential to check before creating ad sets — using a budget below the minimum causes API errors.

Args:

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

Returns: Minimum budget requirements per bid strategy.

meta_list_offline_event_setsA

Lists offline conversion event sets for an ad account.

Offline event sets track conversions that happen outside of digital channels (in-store purchases, phone orders, etc.).

Args:

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

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

  • after (string, optional): Pagination cursor

Returns: Event set IDs, names, and configuration.

meta_send_offline_eventA

Sends an offline conversion event to a Meta offline event set.

Used for tracking in-store purchases, phone orders, or other offline conversions.

Args:

  • event_set_id (string): Offline event set ID (from meta_list_offline_event_sets)

  • event_name (string): Event name (e.g., "Purchase", "Lead")

  • event_time (number): Unix timestamp of the conversion

  • user_data (object): Customer match data — at least one of: email, phone, fn (first name), ln (last name), ct (city), st (state), zip, country, external_id. All PII must be SHA256 hashed.

  • custom_data (object, optional): { currency, value, content_name, order_id }

  • upload_tag (string, optional): Tag for grouping uploads

Returns: Number of events received.

meta_list_custom_audiencesA

Lists custom audiences in a Meta ad account.

Args:

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

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

  • after (string, optional): Pagination cursor

Returns audience names, types, size estimates, and delivery status.

meta_get_custom_audienceA

Gets details about a specific custom audience.

Args:

  • audience_id (string): Custom audience ID

meta_create_custom_audienceA

Creates a new custom audience in a Meta ad account.

Supported types:

  • CUSTOM: Website visitors (requires Pixel), app activity, or customer list

  • ENGAGEMENT: People who engaged with your content

  • VIDEO: People who watched your videos

Args:

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

  • name (string): Audience name

  • subtype (string): CUSTOM, ENGAGEMENT, VIDEO, WEBSITE, or APP

  • description (string, optional): Audience description

  • customer_file_source (string, optional): For CUSTOM type — USER_PROVIDED_ONLY, PARTNER_PROVIDED_ONLY, BOTH_USER_AND_PARTNER_PROVIDED

  • retention_days (number, optional): Days to retain audience members (1–180)

Returns the new audience ID.

Note: Populating the audience with users is a separate step requiring the Audiences API to upload hashed data or configure a rule.

meta_create_lookalike_audienceB

Creates a lookalike audience based on an existing custom audience or page.

Args:

  • ad_account_id (string): Ad account ID

  • name (string): Audience name

  • origin_audience_id (string): Source custom audience ID to base the lookalike on

  • country (string): ISO 3166-1 alpha-2 country code (e.g., "US", "GB")

  • ratio (number): Lookalike size as fraction of country population (0.01–0.20, i.e. 1%–20%)

Returns the new lookalike audience ID.

meta_delete_custom_audienceA

Deletes a custom audience permanently. This cannot be undone.

Args:

  • audience_id (string): Custom audience ID to delete

meta_get_account_insightsA

Gets performance insights for a Meta ad account.

Args:

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

  • date_preset (string): Date range preset (default: last_30d)

  • since (string, optional): Custom start date YYYY-MM-DD (overrides date_preset)

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

  • breakdowns (string[], optional): Segment by age, gender, country, device_platform, placement, etc.

Returns comprehensive metrics including: Performance: impressions, reach, clicks, spend, frequency, unique_clicks, unique_impressions Cost: cpm, cpc, cpp, ctr, cost_per_action_type, cost_per_conversion, cost_per_inline_link_click, cost_per_outbound_click, cost_per_thruplay Engagement: actions, inline_link_clicks, inline_link_click_ctr, inline_post_engagement, outbound_clicks, outbound_clicks_ctr, social_spend Conversions: conversions, conversion_values, purchase_roas Video: video_play_actions, video_avg_time_watched_actions, video_thruplay_watched_actions, video_p25/p50/p75/p95/p100_watched_actions Quality: quality_ranking, engagement_rate_ranking, conversion_rate_ranking

meta_get_campaign_insightsA

Gets performance insights for campaigns in a Meta ad account.

Args:

  • ad_account_id (string): Ad account ID

  • campaign_id (string, optional): Specific campaign ID (omit for all campaigns)

  • date_preset (string): Date range preset (default: last_30d)

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

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

  • breakdowns (string[], optional): Segment by age, gender, country, device_platform, etc.

Returns per-campaign spend, impressions, clicks, CTR, and actions.

meta_get_adset_insightsA

Gets performance insights for ad sets.

Args:

  • ad_account_id (string): Ad account ID (use for all ad sets)

  • adset_id (string, optional): Specific ad set ID

  • campaign_id (string, optional): All ad sets in a campaign

  • date_preset (string): Date range preset (default: last_30d)

  • since / until (string, optional): Custom date range YYYY-MM-DD

  • breakdowns (string[], optional): age, gender, country, device_platform, etc.

Provide ad_account_id or campaign_id or adset_id.

meta_get_ad_insightsA

Gets performance insights at the individual ad level.

Args:

  • ad_account_id (string, optional): All ads in account

  • campaign_id (string, optional): All ads in campaign

  • adset_id (string, optional): All ads in ad set

  • ad_id (string, optional): Specific ad

  • date_preset (string): Date range preset (default: last_30d)

  • since / until (string, optional): Custom date range YYYY-MM-DD

  • breakdowns (string[], optional): age, gender, country, device_platform, etc.

Provide one of: ad_id, adset_id, campaign_id, or ad_account_id.

threads_get_profileA

Gets the authenticated user's Threads profile.

Returns: User ID, username, name, bio, and profile picture URL.

Requires: THREADS_ACCESS_TOKEN env var.

threads_get_postsA

Lists the authenticated user's Threads posts.

Args:

  • threads_user_id (string): Threads user ID (from threads_get_profile)

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

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

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

  • after (string, optional): Pagination cursor

threads_publish_textA

Publishes a text-only post to Threads.

Two-step flow: creates a container, then publishes it.

Args:

  • threads_user_id (string): Threads user ID

  • text (string): Post text (up to 500 characters)

  • reply_to_id (string, optional): Thread ID to reply to

  • quote_post_id (string, optional): Thread ID to quote

Returns: Media ID of the published thread.

threads_publish_imageC

Publishes an image post to Threads.

Args:

  • threads_user_id (string): Threads user ID

  • image_url (string): Public URL of the image (JPEG or PNG)

  • text (string, optional): Caption text

threads_publish_videoA

Publishes a video post to Threads.

Args:

  • threads_user_id (string): Threads user ID

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

  • text (string, optional): Caption text

Note: Video processing may take time. Polls for up to 60 seconds.

threads_publish_carouselA

Publishes a carousel post (2–20 images/videos) to Threads.

Three-step flow:

  1. Create individual item containers

  2. Create carousel container referencing them

  3. Publish

Args:

  • threads_user_id (string): Threads user ID

  • items (array): 2–20 items, each with url (string) and type ('IMAGE' or 'VIDEO')

  • text (string, optional): Caption text

threads_delete_postB

Deletes a Threads post permanently.

Args:

  • media_id (string): Threads media ID to delete

threads_get_repliesB

Gets replies to a Threads post.

Args:

  • media_id (string): Threads media ID

  • reverse (boolean, optional): Reverse chronological order (default false)

threads_hide_replyA

Hides or unhides a reply on a Threads post.

Args:

  • reply_id (string): Reply media ID

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

threads_get_post_insightsA

Gets performance metrics for a specific Threads post.

Args:

  • media_id (string): Threads media ID

  • metrics (string[]): Metrics to retrieve. Options: views, likes, replies, reposts, quotes, shares, reach, saved

Returns: Metric values for the post.

threads_get_user_insightsA

Gets account-level metrics for the authenticated Threads user.

Args:

  • threads_user_id (string): Threads user ID

  • metrics (string[]): Options: Time-series: views, likes, replies, reposts, quotes, followers_count, reach Demographics: follower_demographics (breakdown by age, country, city, gender — requires 100+ followers)

  • since (string, optional): Start date YYYY-MM-DD (required for time-series metrics)

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

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

threads_check_rate_limitsB

Checks the current publishing rate limit usage for Threads.

Args:

  • threads_user_id (string): Threads user ID

Returns: Current usage and limit quota (250 posts per 24 hours).

threads_get_postC

Gets details for a single Threads post by ID.

Args:

  • media_id (string): Threads media ID

threads_get_conversationB

Gets the full conversation tree (all replies at all levels) for a Threads post.

Args:

  • media_id (string): Root thread media ID

  • reverse (boolean, optional): Reverse chronological order

threads_get_mentionsB

Gets posts where the authenticated user was @mentioned.

Args:

  • threads_user_id (string): Threads user ID

threads_get_media_childrenA

Gets individual items in a Threads carousel post.

Args:

  • media_id (string): Carousel media ID

threads_repostA

Reposts (shares) an existing thread to your profile.

Args:

  • threads_user_id (string): Your Threads user ID

  • media_id (string): Thread media ID to repost

threads_searchA

Searches Threads posts by keyword.

Args:

  • threads_user_id (string): Threads user ID (for auth context)

  • q (string): Search query

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

Note: Results are limited to the authenticated user's content and public threads.

threads_publish_gifA

Publishes a GIF post to Threads using a GIPHY URL.

Two-step flow: creates a container, then publishes it.

Args:

  • threads_user_id (string): Threads user ID

  • gif_url (string): GIPHY URL of the GIF

  • text (string, optional): Caption text

  • reply_to_id (string, optional): Thread ID to reply to

  • reply_control (enum, optional): Who can reply — everyone, accounts_you_follow, or mentioned_only

Returns: Media ID of the published thread.

threads_publish_linkC

Publishes a thread post with a link attachment.

Args:

  • threads_user_id (string): Threads user ID

  • text (string): Post text containing the URL

  • link_attachment (string): URL to attach as a link preview

threads_get_followersB

Lists followers of the authenticated Threads user.

Args:

  • threads_user_id (string): Threads user ID

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

  • after (string, optional): Pagination cursor

Returns: User IDs, usernames, and profile picture URLs of followers.

Note: Requires threads_basic scope. Only returns users who have allowed their followers list to be visible.

threads_get_followingA

Lists accounts that the authenticated Threads user is following.

Args:

  • threads_user_id (string): Threads user ID

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

  • after (string, optional): Pagination cursor

Returns: User IDs, usernames, and profile pictures of followed accounts.

meta_search_ad_libraryA

Searches the Meta Ad Library for ads from any advertiser. This is a transparency tool — no ad account access needed.

Args:

  • ad_reached_countries (string[]): Required. ISO country codes where ads were shown (e.g., ["US", "GB"])

  • search_terms (string, optional): Keywords to search ad text

  • search_page_ids (string[], optional): Specific Page IDs to search

  • ad_type (string): ALL, POLITICAL_AND_ISSUE_ADS, HOUSING_ADS, EMPLOYMENT_ADS, CREDIT_ADS (default: ALL)

  • ad_active_status (string): ALL, ACTIVE, INACTIVE (default: ALL)

  • ad_delivery_date_min (string, optional): Min delivery date YYYY-MM-DD

  • ad_delivery_date_max (string, optional): Max delivery date YYYY-MM-DD

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

  • after (string, optional): Pagination cursor

Returns: Ad creatives, spend ranges, impressions, demographics, and targeting info.

Note: Requires a valid access token but does NOT require ad account ownership.

meta_send_conversion_eventB

Sends a server-side conversion event to Meta via the Conversions API.

Args:

  • pixel_id: Meta Pixel ID

  • event_name: Standard events: Purchase, Lead, AddToCart, CompleteRegistration, ViewContent, Search, InitiateCheckout, AddPaymentInfo, AddToWishlist, Subscribe, StartTrial, Contact, CustomizeProduct, Donate, FindLocation, Schedule, SubmitApplication, PageView. Custom event names also accepted.

  • event_time: Unix timestamp

  • event_source_url (optional): URL where conversion happened

  • user_data: At minimum one of: em (hashed email), ph (hashed phone), fbc, fbp, client_ip_address, client_user_agent, external_id

  • custom_data (optional): { currency, value, content_name, content_ids, content_type, order_id, num_items }

  • event_id (optional): For deduplication with browser pixel

  • action_source: "website", "app", "email", "phone_call", "chat", "physical_store", "system_generated", "business_messaging", "other"

  • test_event_code (optional): For testing without affecting production data

meta_test_conversion_eventsA

Tests CAPI setup by sending a test event that won't affect production data.

Same args as meta_send_conversion_event but auto-sets a test_event_code if not provided. Use the test_event_code from Events Manager > Test Events tab.

meta_debug_tokenA

Inspects the current Meta access token to show its type, expiry, permissions, and associated app/user.

Useful for diagnosing "permission denied" errors or checking when a token expires.

No arguments needed — inspects the META_ACCESS_TOKEN configured in your MCP env.

meta_health_checkA

Checks the health of the Meta MCP server: token status, cached tokens, API connectivity.

Returns: Token validity, number of cached page tokens, Threads token status, and API reachability.

meta_search_placesA

Searches for Facebook Places (locations) by name or coordinates.

Use this to get a location_id for tagging posts, Instagram photos, or Threads.

Args:

  • q (string, optional): Search query (e.g., "Central Park", "Starbucks NYC")

  • center (string, optional): Latitude,longitude center point (e.g., "40.7829,-73.9654")

  • distance (number, optional): Search radius in meters (default: 1000, max: 50000)

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

  • categories (string[], optional): Filter by category — e.g., ["FOOD_BEVERAGE", "HOTEL_LODGING", "SHOPPING_RETAIL"]

Returns: Place IDs, names, addresses, and coordinates.

Note: Provide at least q or center. Both can be combined for location-aware name search.

meta_generate_chartA

Generates a chart image (PNG) from provided data. Uses QuickChart (Chart.js) to render.

Perfect for creating visual reports from Meta insights data. The chart is saved as a PNG file that can be inserted into Word docs, presentations, or shared directly.

Args:

  • chart_type (string): 'bar', 'line', 'pie', 'doughnut', 'radar', 'polarArea', 'horizontalBar'

  • title (string): Chart title

  • labels (string[]): X-axis labels or pie slice labels

  • datasets (array): One or more datasets, each with:

    • label (string): Dataset name (e.g., "Impressions")

    • data (number[]): Data values matching labels

    • color (string, optional): CSS color (e.g., "#1877F2", "rgba(24,119,242,0.5)")

  • width (number): Image width in pixels (default: 800)

  • height (number): Image height in pixels (default: 400)

  • output_path (string, optional): Save PNG to this path. If omitted, returns the chart URL.

  • stacked (boolean, optional): Stack bars/lines (default: false)

  • show_values (boolean, optional): Display data values on the chart (default: false)

Returns: Chart URL or file path. The URL can be opened in a browser or fetched as a PNG.

Example datasets for ad performance: labels: ["Mon","Tue","Wed","Thu","Fri"] datasets: [ { label: "Impressions", data: [1200,1800,1500,2100,1900], color: "#1877F2" }, { label: "Clicks", data: [45,62,51,78,65], color: "#42B72A" } ]

meta_generate_comparison_chartA

Generates a side-by-side comparison chart — perfect for comparing two time periods, two campaigns, or A/B test results.

Args:

  • title (string): Chart title

  • metrics (string[]): Metric names (y-axis labels)

  • group_a (object): { label: string, values: number[], color?: string }

  • group_b (object): { label: string, values: number[], color?: string }

  • chart_type (string): 'bar' or 'horizontalBar' (default: 'horizontalBar')

  • width (number): Width in pixels (default: 800)

  • height (number): Height in pixels (default: 400)

  • output_path (string, optional): Save PNG to this path

Example — comparing two weeks: title: "This Week vs Last Week" metrics: ["Impressions", "Reach", "Clicks", "Spend"] group_a: { label: "Last Week", values: [12000, 8000, 450, 150] } group_b: { label: "This Week", values: [15000, 10500, 620, 185] }

meta_list_product_catalogsA

Lists product catalogs for a Meta business.

Args:

  • business_id (string): The business ID

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

Returns catalog IDs, names, product counts, and verticals.

meta_get_product_catalogB

Gets details for a single product catalog.

Args:

  • catalog_id (string): The catalog ID

Returns catalog name, product count, vertical, business info, and store settings.

meta_list_productsA

Lists products in a product catalog.

Args:

  • catalog_id (string): The catalog ID

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

  • after (string, optional): Pagination cursor

  • filter (object, optional): Filter criteria (e.g., { availability: "in stock" })

Returns product IDs, names, prices, availability, and more.

meta_get_productA

Gets details for a single product.

Args:

  • product_id (string): The product ID

Returns full product details including price, availability, sale price, condition, and inventory.

meta_create_productA

Adds a product to a catalog.

Args:

  • catalog_id (string): The catalog ID

  • name (string): Product name

  • description (string): Product description

  • price (number): Price in cents

  • currency (string): Currency code (default "USD")

  • availability (enum): "in stock", "out of stock", "preorder", "available for order"

  • image_url (string): Product image URL

  • url (string): Product page URL

  • brand (string, optional): Brand name

  • category (string, optional): Product category

  • retailer_id (string): Your unique product ID

Returns the created product ID.

meta_update_productB

Updates a product's details.

Args:

  • product_id (string): The product ID

  • name, description, price, availability, image_url, url (all optional)

Returns confirmation of the update.

meta_delete_productA

Deletes a product from a catalog.

Args:

  • product_id (string): The product ID

This action is permanent and cannot be undone.

meta_list_product_setsA

Lists product sets (subgroups) in a catalog.

Args:

  • catalog_id (string): The catalog ID

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

Returns product set IDs, names, filters, and product counts.

meta_list_product_feedsA

Lists product feeds for a catalog. Feeds are automated data sources that keep catalogs up-to-date.

Args:

  • catalog_id (string): Product catalog ID

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

Returns feed IDs, names, schedules, and latest upload status.

meta_create_product_feedA

Creates a new product feed for a catalog to automatically sync products from a URL.

Args:

  • catalog_id (string): Product catalog ID

  • name (string): Feed name

  • schedule_url (string): URL of the product feed file (CSV, TSV, XML)

  • schedule_interval (string): How often to fetch — HOURLY, DAILY, WEEKLY, MONTHLY

Returns the new feed 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/open-work-org/open-mcp-servers'

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