Skip to main content
Glama

Server Details

Facebook & Instagram data for AI agents: pages, posts, groups, ads, Marketplace, profiles, reels.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
SocialAPIsHub/mcp-server
GitHub Stars
1
Server Listing
SocialAPIs MCP Server

TDQS

A4.3/5.0

Scored across 12 tools

Disambiguation4/5

Each top-level tool targets a distinct resource (ads, groups, marketplace, pages, posts, search, plus Instagram entities), and descriptions add explicit cross-references (e.g. 'for one page's posts use facebook_page instead'). There is mild overlap between facebook_search posts/videos and facebook_page posts/videos, and between facebook_post details vs details_extended, but the 'Start here / use instead' guidance keeps selection clear.

Naming Consistency5/5

All tool names follow a strict snake_case platform_entity pattern (facebook_page, facebook_group, instagram_profile, instagram_reels, etc.), and action values use a predictable verb/noun vocabulary (search, details, id, posts, videos, albums). No mixed conventions anywhere.

Tool Count5/5

12 tools is well within the healthy range, and each maps to a coherent resource rather than fragmenting into dozens of single-action endpoints. The action-based sub-dispatch folds related operations (e.g. the six marketplace actions) into one tool without bloat.

Completeness4/5

Coverage is broad for a read-only social scraper: ad discovery, pages, groups, marketplace listings/sellers, posts with comments and replies, media resolution, and Instagram profiles, reels, locations and search, with ID-resolution steps that unblock downstream calls. Gaps are minor (no follower/following lists, no ad-creation or write operations, and 'SocialAPIs' implies more than Facebook/Instagram).

Available Tools

12 tools
facebook_adsFacebook: AdsA
Read-only
Inspect

Meta Ads Library: search ads, find advertisers by keyword, advertiser page details, single ad details and supported countries.

Actions:

  • action=search: Search ads in the Meta Ad Library. Pass a keyword (query) to find ads about a topic, or ad_page_id to list one advertiser's ads; filter by country, active status and date range, sort by impressions or recency. Returns ads with creative, body text, dates, platforms and snapshot URL, plus an end_cursor. Get an advertiser's ad_page_id from action=keywords or facebook_page (action=details). Pricing: 1 credit per call. Inputs: query (optional), ad_page_id (optional), country (optional), activeStatus (optional), after_time (optional), before_time (optional), sort_data (optional), end_cursor (optional).

  • action=keywords: Find advertisers running ads that match a keyword: returns Facebook pages with their page_id and ad count. Use it to discover who advertises on a topic, then pass a page_id to action=search (as ad_page_id) or action=page_details. To get the ads for a keyword directly, use action=search. Pricing: 1 credit per call. Inputs: query (required), country (optional).

  • action=page_details: Get an advertiser's Ads Library profile: page name, verification status, category, location and total ad count. Needs the page ID (ad_page_id from facebook_page (action=details) or page_id from action=keywords). To list the ads themselves, use action=search with ad_page_id. Pricing: 1 credit per call. Inputs: page_id (required).

  • action=archive_details: Get one Ad Library ad in full: creative, body text, CTA, platforms, countries, date range, and spend and impression estimates where Meta publishes them. Needs the ad_archive_id from a action=search result. Pricing: 1 credit per call. Inputs: ad_archive_id (required), page_id (optional), country (optional), is_ad_non_political (optional), is_ad_not_aaa_eligible (optional).

  • action=countries: List the country codes the Ads Library tools accept in their country parameter. Pricing: 1 credit per call. Inputs: none.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoKeyword. search: words in the ads (or pass ad_page_id instead) · keywords: a topic to find advertisers for, e.g. running shoes. Required for: keywords. Optional for: search.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
countryNoISO country code or "ALL". Optional for: search, keywords, archive_details.
page_idNoAdvertiser page ID: ad_page_id from facebook_page (action=details), or page_id from action=keywords. Required for: page_details. Optional for: archive_details.
sort_dataNoSort by "impressions" or "recent". Optional for: search.
ad_page_idNoFacebook AD Page ID (alternative to query). Optional for: search.
after_timeNoFilter ads after this date (YYYY-MM-DD). Optional for: search.
end_cursorNoPagination cursor. Optional for: search.
before_timeNoFilter ads before this date (YYYY-MM-DD). Optional for: search.
activeStatusNoFilter: ALL, Active, or Inactive. Optional for: search.
ad_archive_idNoAd Library archive ID of the ad (ad_archive_id from a action=search result). Required for: archive_details.
is_ad_non_politicalNoFilter non-political ads. Optional for: archive_details.
is_ad_not_aaa_eligibleNoFilter AAA eligibility. Optional for: archive_details.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: a cost model ('Pricing: 1 credit per call') on every action, the presence of an end_cursor for pagination on search, and the caveat that spend/impression estimates are only returned 'where Meta publishes them'. It does not discuss rate limits or auth, but the annotations carry the safety burden.

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

Conciseness4/5

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

Well front-loaded with the overall scope, then cleanly organized as one bullet per action with a consistent 'Pricing/Inputs' footer, which makes scanning easy. It loses a point for redundancy: the identical 'Pricing: 1 credit per call' line is repeated five times, and the 'Inputs:' lines duplicate what the 100%-covered schema already states.

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

Completeness5/5

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

For a 13-parameter, 5-action multiplexed tool, the description covers every action, its inputs, its return shape in brief, its cost, and the cross-tool workflow to obtain each required ID. An output schema exists, so return-value detail is correctly left out, and nothing an agent needs to invoke a given action successfully is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already marks each parameter with 'Required for: X / Optional for: Y', so the description's per-action 'Inputs:' lines largely restate structured data. It does add a small amount of meaning (ad_page_id described as 'an alternative to query', and derivation of ad_archive_id from search results), but the baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description names the resource (Meta Ads Library) and enumerates five distinct actions with a specific verb+output for each: search ads, find advertisers, advertiser page details, single ad details, supported countries. It also disambiguates from siblings by naming facebook_page (action=details) as the source of ad_page_id. An agent can tell exactly what each action does without opening the schema.

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

Usage Guidelines5/5

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

Explicit routing is given for every fork: action=keywords to discover advertisers then feed the page_id into action=search or action=page_details, and conversely 'To get the ads for a keyword directly, use action=search' rather than keywords. Prerequisites are stated per action (archive_details 'Needs the ad_archive_id from a action=search result'). Nothing is left to inference.

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

facebook_groupFacebook: GroupA
Read-only
Inspect

Public Facebook groups: details, group ID, posts, videos and photo albums.

Actions:

  • action=details: Get a public Facebook group's profile: name, description, member count, privacy, rules and activity stats. Use action=posts for its posts. Pricing: 1 credit per call. Inputs: link (required).

  • action=id: Resolve a Facebook group URL to its numeric group ID. Use action=details for the group's data. Pricing: 1 credit per call. Inputs: link (required).

  • action=posts: List recent posts from a public Facebook group, with text, media, author, reactions and comment counts. Returns 3-9 posts per call plus an end_cursor for the next page; filter by date with after_time / before_time. Pricing: ceil(posts_returned / 3) credits per call, minimum 1. Inputs: link (required), limit (optional), end_cursor (optional), after_time (optional), before_time (optional), timezone (optional).

  • action=videos: List videos posted in a public Facebook group, with video_id, title, duration, view count and thumbnail. Returns an end_cursor for the next page. Pricing: 1 credit per call. Inputs: link (required), end_cursor (optional).

  • action=albums: List the photo albums of a public Facebook group, with album_id, album_title, url, thumbnail_uri, photos_count and videos_count. Returns an end_cursor for the next page. Needs the numeric group ID (group_id) from action=id. To get the photos in an album, pass its album_id to action=album_items. Pricing: 1 credit per call. Inputs: group_id (required), limit (optional).

  • action=album_items: Get the photos and videos inside a Facebook album (from a page or a group): media_id, media_type, url, thumbnail_uri and timestamp (Unix seconds). Needs an album_id from facebook_page (action=albums) or action=albums. Returns an end_cursor for the next page. Pricing: 1 credit per call. Inputs: album_id (required), end_cursor (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoFacebook group URL. Required for: details, id, posts, videos.
limitNoResults per call. posts: 3-9 (default 3) · albums: 8-16 (default 8). Optional for: posts, albums.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
album_idNoAlbum ID, from facebook_page (action=albums) or action=albums. Required for: album_items.
group_idNoFacebook group ID, from action=id. Required for: albums.
timezoneNoIANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC. Optional for: posts.
after_timeNoISO 8601 timestamp. Optional for: posts.
end_cursorNoPagination cursor. Optional for: posts, videos, album_items.
before_timeNoISO 8601 timestamp. Optional for: posts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, open-world, non-destructive behavior, so the description need not cover safety. It goes further by disclosing per-action credit pricing, return sizes (3-9 posts per call), pagination via end_cursor, and timezone handling — genuinely useful operational context. It stops short of noting failure modes for private/inaccessible groups or any rate limits beyond pricing, keeping it out of 5 territory.

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

Conciseness4/5

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

One lead sentence plus a clean per-action bullet format that groups purpose, pricing, and inputs consistently, so the agent can scan to a single action. It is somewhat long and repeats 'Pricing: 1 credit per call' across actions, but no sentence is empty of content and the purpose is front-loaded.

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

Completeness5/5

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

For a six-action tool with an output schema, the description supplies everything an agent needs: what each action returns, which inputs it requires, the inter-action dependencies (id before albums, albums before album_items), and cross-tool links to facebook_page. Return-value details are covered by the output schema, so nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning: it maps each parameter to the actions that require it (link for details/id/posts/videos, group_id for albums, album_id for album_items) and explains that group_id comes from action=id and album_id from a prior albums call. The after_time/before_time date-filtering intent is also clarified beyond the bare ISO-8601 schema note.

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

Purpose5/5

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

The opening line names a specific resource (public Facebook groups) and its scope (details, group ID, posts, videos, photo albums), then each action is spelled out with the exact data it returns. It clearly differentiates itself from siblings like facebook_page by explicitly noting that album_items works for both, and by restricting the domain to groups.

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

Usage Guidelines5/5

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

Every action carries explicit routing guidance: 'Use action=posts for its posts', 'Use action=details for the group's data', and 'To get the photos in an album, pass its album_id to action=album_items'. Prerequisites are stated (albums needs the numeric group ID from action=id), so the agent knows the correct call sequence rather than guessing.

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

facebook_marketplaceFacebook: MarketplaceA
Read-only
Inspect

Facebook Marketplace: search listings, vehicles and rentals, listing and seller details, categories and city coordinates.

Actions:

  • action=search: Search general Facebook Marketplace listings (items for sale) by keyword or category near a location, with price, condition, radius and sort filters. Returns listings with their listing_id, plus an end_cursor. For cars and other vehicles use action=vehicles; for homes and rooms to rent use action=rentals. Get coordinates from action=city_coordinates. Pricing: 1 credit per call. Inputs: query (optional), category_url (optional), commerce_search_sort_by (optional), commerce_search_and_rp_condition (optional), filter_location_latitude (optional), filter_location_longitude (optional), filter_price_lower_bound (optional), filter_price_upper_bound (optional), filter_radius_km (optional), posted_today (optional), exact_match (optional), limit (optional), end_cursor (optional).

  • action=vehicles: Search Facebook Marketplace vehicle listings (cars, trucks, motorcycles) near a location, with price, radius and seller-type filters. Returns listings with title, price, mileage, year and listing_id, plus an end_cursor. For non-vehicle items, use action=search. Pricing: 1 credit per call. Inputs: sort_by (optional), filter_location_latitude (optional), filter_location_longitude (optional), filter_price_lower_bound (optional), filter_price_upper_bound (optional), filter_radius_km (optional), is_c2c_listing_only (optional), end_cursor (optional).

  • action=rentals: Search Facebook Marketplace rental listings (apartments, houses, rooms) near a location, with price, bedroom, bathroom and radius filters. Returns rental listings with their listing_id, plus an end_cursor. For items for sale, use action=search. Pricing: 1 credit per call. Inputs: sort_by (optional), filter_location_latitude (optional), filter_location_longitude (optional), filter_price_lower_bound (optional), filter_price_upper_bound (optional), filter_radius_km (optional), filter_bedrooms_min (optional), filter_bedrooms_max (optional), filter_bathrooms_min (optional), filter_bathrooms_max (optional), end_cursor (optional).

  • action=listing: Get one Marketplace listing in full: title, price, description, condition, all photos, location and seller. Needs the listing_id from a Marketplace search result. Pricing: 1 credit per call. Inputs: listing_id (required).

  • action=seller: Get a Marketplace seller's profile: name, join date, rating, review count and badges. Needs the seller_id from action=listing. Pricing: 1 credit per call. Inputs: seller_id (required).

  • action=categories: List Marketplace categories with their IDs and category_url values. Use a category_url to filter action=search. Pricing: 1 credit per call. Inputs: none.

  • action=city_coordinates: Convert a city name to the latitude and longitude that the Marketplace search tools expect in filter_location_latitude / filter_location_longitude. Pricing: 1 credit per call. Inputs: city (required), country (optional), exactly_one (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name, e.g. Austin. Required for: city_coordinates.
limitNoMaximum number of items to return. Default: 24. Optional for: search.
queryNoKeyword to search listings for, e.g. iphone 15. Optional for: search.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
countryNoCountry name or code. Optional for: city_coordinates.
sort_byNoSort order. vehicles: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, … · rentals: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH. Optional for: vehicles, rentals.
seller_idNoSeller ID, from the seller field of action=listing. Required for: seller.
end_cursorNoPagination cursor. Optional for: search, vehicles, rentals.
listing_idNoMarketplace listing ID, from a Marketplace search result. Required for: listing.
exact_matchNoWhen "true", exact match search. Optional for: search.
exactly_oneNoWhen "true", return exactly one result. Optional for: city_coordinates.
category_urlNoCategory URL slug. Optional for: search.
posted_todayNoWhen "true", limit to items posted today. Optional for: search.
filter_radius_kmNoSearch radius around the center in kilometres, e.g. 40. Optional for: search, vehicles, rentals.
filter_bedrooms_maxNoMaximum number of bedrooms. Optional for: rentals.
filter_bedrooms_minNoMinimum number of bedrooms, e.g. 2. Optional for: rentals.
is_c2c_listing_onlyNoIndividual sellers only. Optional for: vehicles.
filter_bathrooms_maxNoMaximum number of bathrooms. Optional for: rentals.
filter_bathrooms_minNoMinimum number of bathrooms, e.g. 1. Optional for: rentals.
commerce_search_sort_byNoSort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc. Optional for: search.
filter_location_latitudeNoLatitude of the search center, e.g. 30.2672 (from action=city_coordinates). Optional for: search, vehicles, rentals.
filter_price_lower_boundNoMinimum price in the local currency, whole number, e.g. 100. Optional for: search, vehicles, rentals.
filter_price_upper_boundNoMaximum price in the local currency, whole number, e.g. 2000. Optional for: search, vehicles, rentals.
filter_location_longitudeNoLongitude of the search center, e.g. -97.7431 (from action=city_coordinates). Optional for: search, vehicles, rentals.
commerce_search_and_rp_conditionNoCondition: new, used_like_new, used_good, used_fair. Optional for: search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. Beyond that, the description discloses per-call credit pricing, pagination via end_cursor, and the required upstream identifiers for listing/seller calls, which are genuinely useful operational facts the annotations do not carry. It stops short of auth or rate-limit detail, so a 4 rather than 5.

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

Conciseness4/5

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

The length is justified by seven actions and 25 parameters, and structure is strong: a front-loaded overview followed by one labeled block per action with purpose, returns, alternatives, and inputs. The repeated 'Pricing: 1 credit per call' line is mildly redundant but earns its place by informing cost decisions per action.

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

Completeness5/5

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

For a high-complexity, multi-action tool the description covers every action's purpose, alternatives, prerequisites, and returns, and an output schema exists to handle response shape. Nothing an agent needs in order to pick the right action and supply the right arguments is missing.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter already carries its own 'Required for:'/'Optional for:' tagging, so the schema does the heavy lifting. The per-action 'Inputs:' lists in the description mirror that mapping but add no syntax, format, or constraint detail beyond what the schema states (e.g., condition values, coordinate examples). Baseline 3 is appropriate.

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

Purpose5/5

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

The opening sentence names the resource (Facebook Marketplace) and enumerates every operation it covers: listings, vehicles, rentals, listing/seller details, categories, and city coordinates. Each action entry begins with a specific verb+resource (e.g., 'Search Facebook Marketplace vehicle listings'), and the Marketplace scope clearly separates it from sibling tools like facebook_search or facebook_post.

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

Usage Guidelines5/5

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

Routing is explicit at every decision point: 'For cars and other vehicles use action=vehicles; for homes and rooms to rent use action=rentals. Get coordinates from action=city_coordinates,' and the reverse guards ('For non-vehicle items, use action=search'). It also states the dependency chain (listing needs listing_id from a search; seller needs seller_id from listing), so an agent never has to infer the correct action.

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

facebook_media_downloadFacebook: Media DownloadA
Read-only
Inspect

Resolve a Facebook media URL (image, video or audio, e.g. from a post or reel) to direct downloadable file URLs. Returns URLs, not file bytes. Pricing: 1 credit per call. Inputs: url (required).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFacebook media URL to download

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond that: it returns URLs rather than file bytes (so the agent must fetch the file separately), and it costs 1 credit per call.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action and return semantics before the pricing and input notes. No filler or repetition of the title.

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

Completeness5/5

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

For a one-parameter resolver with an output schema and full annotation coverage, the description supplies everything needed: what it resolves, that the output is URLs not bytes, and the cost. Nothing material is missing.

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

Parameters3/5

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

There is a single required parameter with 100% schema description coverage, so the schema already documents it fully. The description only restates that url is required and adds no syntax, format, or constraint detail beyond the schema; the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Resolve a Facebook media URL ... to direct downloadable file URLs') and enumerates accepted media types (image, video, audio) with example sources (post, reel). This clearly separates it from the sibling listing/search tools like facebook_post or facebook_search.

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

Usage Guidelines3/5

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

Usage is implied by the scope statement ('e.g. from a post or reel') and by the explicit note that it returns URLs rather than bytes, which tells the agent when this is the right call. However, there is no explicit when-to-use/when-not guidance and no named alternative among the sibling tools.

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

facebook_pageFacebook: PageA
Read-only
Inspect

Facebook pages: profile details, page ID, posts, videos, reels and photo albums.

Actions:

  • action=details: Get a Facebook page's profile: name, category, follower and like counts, bio, contact info (email, phone, website, address), rating and the ad_page_id used by the Ads Library tools. Use it when you have the page URL; to find a page by name, use facebook_search (action=pages) first. Pricing: 1 credit per call; 5 credits when exact_followers_count=true. Inputs: link (required), exact_followers_count (optional).

  • action=id: Resolve a Facebook page URL to its numeric page ID. Use it when another tool needs a page or profile ID; use action=details for the page's data. Pricing: 1 credit per call. Inputs: link (required).

  • action=posts: List a Facebook page's recent posts, newest first, with text, media, reactions, comment and share counts. Returns 3-9 posts per call plus an end_cursor for the next page; filter by date with after_time / before_time. For reels or videos only, use action=reels or action=videos. Pricing: ceil(posts_returned / 3) credits per call, minimum 1. Inputs: link (required), limit (optional), end_cursor (optional), after_time (optional), before_time (optional), timezone (optional).

  • action=videos: List videos uploaded to a Facebook page, with video_id, title, duration, view count and thumbnail. Provide the page URL (link) or its numeric profile_id. Returns an end_cursor for the next page. For short-form reels, use action=reels. Pricing: 1 credit per call. Inputs: link (optional), profile_id (optional), limit (optional), end_cursor (optional).

  • action=reels: List a Facebook page's reels (short-form videos). Returns an end_cursor for the next page. For long-form videos, use action=videos. Pricing: 1 credit per call. Inputs: link (required), end_cursor (optional).

  • action=albums: List the photo albums of a Facebook page, with album_id, album_title, url, thumbnail_uri and album_items_count (text, e.g. "400 items"). Needs the numeric page ID (profile_id) from action=id. Returns an end_cursor for the next page. To get the photos in an album, pass its album_id to action=album_items. Pricing: 1 credit per call. Inputs: profile_id (required), limit (optional), end_cursor (optional).

  • action=album_items: Get the photos and videos inside a Facebook album (from a page or a group): media_id, media_type, url, thumbnail_uri and timestamp (Unix seconds). Needs an album_id from action=albums or facebook_group (action=albums). Returns an end_cursor for the next page. Pricing: 1 credit per call. Inputs: album_id (required), end_cursor (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoFacebook page URL, e.g. https://facebook.com/nike. For videos you can pass profile_id instead. Required for: details, id, posts, reels. Optional for: videos.
limitNoResults per call. posts: 3-9 (default 3) · videos: 6-12 (default 6) · albums: 8-16 (default 8). Optional for: posts, videos, albums.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
album_idNoAlbum ID, from action=albums or facebook_group (action=albums). Required for: album_items.
timezoneNoTimezone for timestamps (e.g., UTC, America/New_York). Optional for: posts.
after_timeNoISO 8601 timestamp - only return posts after this time. Optional for: posts.
end_cursorNoPagination cursor from the previous response. Optional for: posts, videos, reels, albums, album_items.
profile_idNoNumeric Facebook page ID, from action=id. For videos, an alternative to link. Required for: albums. Optional for: videos.
before_timeNoISO 8601 timestamp - only return posts before this time. Optional for: posts.
exact_followers_countNoWhen true, performs a deeper scrape to return the exact follower count (e.g. 38,493,217 instead of "38M"). Charges 5 credits when true, 1 credit otherwise. Default: false. Optional for: details.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare the read-only/non-destructive/open-world safety profile, and the description adds a great deal beyond that: per-action credit pricing (including the 5-credit surcharge for exact_followers_count and ceil(posts_returned/3) for posts), per-action return volumes (3-9 posts, 6-12 videos, 8-16 albums), and pagination via end_cursor. The deeper-scrape behavior behind exact_followers_count ('38,493,217 instead of "38M"') is disclosed before the agent spends the credits.

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

Conciseness4/5

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

Front-loaded summary sentence followed by one consistently formatted block per action, which is the right structure for a 7-action tool. It is dense with no filler, though the repeated 'Pricing: N credit per call' lines and a few Inputs lines restate what the schema already lists, adding mild redundancy.

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

Completeness5/5

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

For a 10-parameter, 7-action tool with an output schema, this definition covers everything an agent needs to choose an action, satisfy its parameter requirements, chain calls (id -> albums -> album_items), and anticipate cost and pagination. Return values are described as a bonus even though the output schema already carries them.

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

Parameters5/5

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

Schema description coverage is already 100%, so the baseline is 3, but the description adds workflow semantics the schema cannot express: which parameters each action needs, that profile_id is the numeric ID obtained from action=id, that album_id must come from action=albums or facebook_group, and that link/profile_id are interchangeable for videos. It also explains the effect of after_time/before_time and timezone on the posts action.

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

Purpose5/5

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

The opening sentence names the resource (Facebook pages) and the data surface (profile details, page ID, posts, videos, reels, photo albums), then enumerates all seven actions with a specific verb+object for each. Sibling boundaries are made explicit: facebook_search (action=pages) to find a page by name, facebook_group (action=albums) as another album_id source, and action=videos vs action=reels vs action=posts.

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

Usage Guidelines5/5

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

Every action carries a when-to-use clause plus a named alternative: 'use it when you have the page URL; to find a page by name, use facebook_search (action=pages) first', 'use action=details for the page's data', 'For reels or videos only, use action=reels or action=videos', 'For long-form videos, use action=videos'. Cross-action dependencies (album_id comes from action=albums, profile_id from action=id) are spelled out rather than left to inference.

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

facebook_postFacebook: PostA
Read-only
Inspect

Facebook posts, videos and comments: post details, attachments, comments and replies.

Actions:

  • action=details: Get a Facebook post's text, author, timestamp, media, and reaction, comment and share counts. Start here for any post. If you need view counts, video download URLs or audio metadata (common for reels and videos), use action=details_extended instead. Pricing: 1 credit per call. Inputs: link (required).

  • action=details_extended: Get everything action=details returns plus view counts, HD/SD video URLs, music/audio metadata and author verification status. Use it for reels and video posts, or when the standard details lack view_count, video_hd_src or attached_track. Pricing: 1 credit per call. Inputs: link (required).

  • action=id: Extract the numeric post ID from a Facebook post URL. Use it to get the post_id that action=attachments needs. Pricing: 1 credit per call. Inputs: link (required).

  • action=attachments: List every media attachment (images and videos, with URLs and dimensions) on a Facebook post, including all items in multi-photo posts. Needs the numeric post_id from action=id. For the post's text and engagement, use action=details. Pricing: 5 credits per call (deeper scrape than standard post details). Inputs: post_id (required).

  • action=video: Get a Facebook video post's metadata: title, message text and hashtags, owner, reactions and view count. Needs the numeric video_id (the number in a facebook.com/.../videos/ URL, or from facebook_page (action=videos)). Pricing: 1 credit per call. Inputs: video_id (required).

  • action=comments: List top-level comments on a Facebook post or reel, with author, text, timestamp and reaction count. Returns up to 30 per call plus an end_cursor for the next page. Set include_reply_info=true to get the comment_feedback_id and expansion_token that action=comment_replies needs. Pricing: 1 credit per call. Inputs: link (required), limit (optional), end_cursor (optional), include_reply_info (optional).

  • action=comment_replies: List replies to one Facebook comment. Needs comment_feedback_id and expansion_token, which action=comments returns when called with include_reply_info=true. Pricing: 1 credit per call. Inputs: comment_feedback_id (required), expansion_token (required).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoFacebook post or reel URL (regular posts, video posts and reels). Required for: details, details_extended, id, comments.
limitNoMaximum number of comments to return. Default: 10. Maximum: 30. Optional for: comments.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
post_idNoNumeric Facebook post ID, from action=id. Required for: attachments.
video_idNoNumeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL. Required for: video.
end_cursorNoPagination cursor for next page of comments. Optional for: comments.
expansion_tokenNoExpansion token from the comments endpoint with include_reply_info=true. Required for: comment_replies.
include_reply_infoNoWhen "true", includes comment_feedback_id and expansion_token for fetching replies. Optional for: comments.
comment_feedback_idNoFeedback ID from the comments endpoint with include_reply_info=true. Required for: comment_replies.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare read-only, open-world, non-destructive behavior, and the description adds substantial context beyond them: per-action credit costs, comment pagination (up to 30 plus end_cursor), token prerequisites, and extra fields returned by details_extended. Nothing contradicts the annotations.

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

Conciseness4/5

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

The description is front-loaded with a summary and organized as a scannable action list, which suits a seven-action tool. It is somewhat verbose because 'Pricing: 1 credit per call' and 'Inputs:' are repeated for each action.

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

Completeness5/5

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

Given the multi-action complexity, nine-parameter schema, and presence of an output schema, the description covers all operations, required inputs, pagination, prerequisites, and pricing. An agent has enough information to invoke each action correctly without return-value details.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all nine parameters and their action-specific requirements. The description reinforces the action-to-parameter mapping and workflow dependencies (e.g. action=id produces post_id for attachments; include_reply_info produces tokens for comment_replies), adding useful consolidation beyond the schema.

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

Purpose4/5

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

The opening sentence and action breakdown state a specific resource (Facebook posts, videos, comments) and the operations available, so the tool's general purpose is clear. It differentiates its internal actions but does not explicitly distinguish this tool from sibling tools such as facebook_page or facebook_media_download.

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

Usage Guidelines5/5

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

Each action has explicit when-to-use guidance: 'Start here for any post' for details, 'Use it for reels and video posts' for details_extended, and clear prerequisites for attachments and comment_replies. It also names alternatives within the action set, e.g. details_extended when view_count or video_hd_src is missing.

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

instagram_locationInstagram: LocationA
Read-only
Inspect

Instagram locations: posts tagged at a place, and nearby places.

Actions:

  • action=posts: List Instagram posts tagged at a location: top posts (tab=ranked) or most recent (tab=recent). Needs a location_id, e.g. from a place in instagram_search (action=search). Returns an end_cursor for the next page. Pricing: 1 credit per call. Inputs: location_id (required), tab (optional), end_cursor (optional).

  • action=nearby: List Instagram places near a given location, with name, category, coordinates and post count. Needs a location_id, e.g. from a place in instagram_search (action=search). Pricing: 1 credit per call. Inputs: location_id (required).

ParametersJSON Schema
NameRequiredDescriptionDefault
tabNoFilter: "recent" or "ranked". Optional for: posts.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
end_cursorNoPagination cursor for next page. Optional for: posts.
location_idNoInstagram location ID. Required for: posts, nearby.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that: per-call pricing (1 credit), pagination via end_cursor, and the shape of nearby results (name, category, coordinates, post count). It does not discuss rate limits or auth requirements, which are the remaining behavioral gaps.

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

Conciseness4/5

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

The action-bulleted layout is front-loaded and easy to scan, and each action states its purpose, inputs, and cost. It loses a point for redundancy: 'Pricing: 1 credit per call' and 'Needs a location_id' are each repeated verbatim across both actions.

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

Completeness5/5

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

An output schema exists, so return values need not be exhaustively explained, yet the description still summarizes what nearby returns and flags the pagination cursor for posts. Both actions, their required vs optional parameters, the location_id prerequisite, and cost are all covered, leaving nothing an agent needs to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond the flat schema by mapping parameters to actions ('Inputs: location_id (required), tab (optional), end_cursor (optional)') and by clarifying tab semantics as 'top posts (tab=ranked)' vs 'most recent (tab=recent)', which the schema only labels as 'recent' or 'ranked'.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Instagram locations: posts tagged at a place, and nearby places') and breaks the tool into two clearly delineated actions, posts and nearby. It distinguishes itself from siblings by explicitly pointing to instagram_search (action=search) as the source of location_id, so an agent can route between the two without opening schemas.

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

Usage Guidelines4/5

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

Each action carries its own usage context: posts offers tab=ranked for top posts vs tab=recent for recency, and the prerequisite location_id is named along with where to obtain it (instagram_search action=search). What's missing is explicit when-not guidance, e.g. when to prefer instagram_post over this tool for a single post.

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

instagram_postInstagram: PostA
Read-only
Inspect

Instagram posts: full post details, or the shortcode from a post URL.

Actions:

  • action=details: Get one Instagram post or reel in full: caption, media URLs, engagement counts, timestamp and owner. Needs the shortcode (the part after /p/ or /reel/ in the URL, or from action=id). Pricing: 1 credit per call. Inputs: shortcode (required).

  • action=id: Extract the shortcode from an Instagram post or reel URL. action=details needs the shortcode. Pricing: 1 credit per call. Inputs: link (required).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoInstagram post URL. Required for: id.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
shortcodeNoInstagram post shortcode (e.g., DMF-GjGO0-q). Required for: details.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds real value beyond that: per-call pricing ('1 credit per call'), the specific fields returned for details (caption, media URLs, engagement counts, timestamp, owner), and the accepted shortcode source. No behavioral contradiction with the annotations.

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

Conciseness4/5

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

The action-by-action structure with Actions/Inputs/Pricing lines is front-loaded and scannable, and every line carries information. It loses a little to redundancy, restating that action=details needs the shortcode in both action entries.

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

Completeness4/5

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

Both enum actions are covered with required inputs, the chaining between them is explained, and pricing is disclosed. An output schema exists, so return values need not be spelled out, and the description's brief note about the details payload is a bonus rather than a gap-filler.

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

Parameters4/5

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

Schema coverage is 100% and the schema already states 'Required for: details/id' per parameter, so the baseline is 3. The description goes further by explaining where the shortcode comes from ('the part after /p/ or /reel/ in the URL, or from action=id'), which the schema only partially hints at with an example value.

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

Purpose4/5

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

States specific verbs and resources per action: 'Get one Instagram post or reel in full' and 'Extract the shortcode from an Instagram post or reel URL'. An agent can tell exactly what each action produces. However, it never distinguishes itself from siblings like instagram_reels or instagram_search, so the boundary between this tool and those is left to inference.

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

Usage Guidelines3/5

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

The description gives useful internal routing: action=details needs a shortcode, and action=id produces that shortcode from a URL. That is implied workflow guidance rather than explicit when-to-use versus alternatives — there is no indication of when to prefer instagram_reels, instagram_search, or instagram_profile instead.

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

instagram_profileInstagram: ProfileA
Read-only
Inspect

Instagram profiles: details, user ID, posts, reels, highlights and highlight stories.

Actions:

  • action=details: Get an Instagram profile by username: bio, follower and post counts, verification status and related profiles. Pricing: 1 credit per call. Inputs: username (required), link (optional).

  • action=id: Resolve an Instagram username or profile URL to its two IDs: user_id (long, e.g. 17841401474538262), used by action=posts and action=reels, and pk (short, e.g. 528817151), used by action=highlights. Pricing: 1 credit per call. Inputs: link (optional), username (optional).

  • action=posts: List an Instagram profile's posts (photos, videos, carousels) with captions, like and comment counts and media URLs. Pass username (returns more results) or user_id (the long user_id from action=id, not the pk). Returns an end_cursor for the next page. For reels only, use action=reels. Pricing: 1 credit per call. Inputs: username (optional), user_id (optional), end_cursor (optional).

  • action=reels: List an Instagram profile's reels with play counts, captions, video URLs and audio metadata. Needs the long user_id from action=id (not the pk). Returns an end_cursor for the next page. Pricing: 1 credit per call. Inputs: user_id (required), end_cursor (optional).

  • action=highlights: List an Instagram profile's story highlights with titles, cover images and highlight IDs. Needs the profile's pk from action=id, passed as user_id (not the long user_id). Use action=highlight_details to get the stories in one highlight. Pricing: 1 credit per call. Inputs: user_id (required).

  • action=highlight_details: Get the stories inside one Instagram highlight. Needs a highlight_id from action=highlights. Pricing: 1 credit per call. Inputs: highlight_id (required).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoInstagram profile URL (alternative to username). Optional for: details, id.
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
user_idNoInstagram profile ID from action=id. posts, reels: its long user_id (e.g. 17841401474538262) · highlights: its pk (e.g. 528817151). For posts, an alternative to username. Required for: reels, highlights. Optional for: posts.
usernameNoInstagram username, without the @. For posts it returns more results than user_id. Required for: details. Optional for: id, posts.
end_cursorNoPagination cursor for next page. Optional for: posts, reels.
highlight_idNoHighlight ID (from profile highlights endpoint). Required for: highlight_details.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld/non-destructive; the description goes well beyond them by disclosing per-call credit pricing, pagination via end_cursor on posts and reels, and the critical trap that highlights need the short pk while posts/reels need the long user_id. That is exactly the operational context an agent cannot get from the structured fields.

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

Conciseness4/5

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

Front-loads the resource then organizes everything as a scannable per-action list, so the length is justified by six actions. The repeated 'Inputs:' lines per action partially duplicate the schema descriptions, which is the only waste.

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

Completeness5/5

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

For a six-action tool with an output schema present, the description covers what each action returns, its inputs, its pricing and its pagination behavior. Nothing needed to invoke an action correctly is missing, and return-value detail is appropriately left to the output schema.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning: it explains the two-ID model (user_id vs pk), which action consumes which, that username returns more posts than user_id, and that highlight_id must come from action=highlights. It reinforces rather than merely restating the schema.

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

Purpose5/5

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

States the resource (Instagram profiles) and enumerates the six concrete operations with specific verbs (get details, resolve ID, list posts/reels/highlights, get highlight stories). An agent can distinguish this from siblings like instagram_post, instagram_reels and instagram_search because the description covers the whole profile surface plus highlight stories, which the siblings do not.

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

Usage Guidelines4/5

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

Gives clear in-tool routing: 'For reels only, use action=reels', 'Use action=highlight_details to get the stories in one highlight', and per-action required/optional inputs. It does not, however, tell the agent when to pick this tool over the sibling instagram_post or instagram_reels tools, so sibling differentiation is left to inference.

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

instagram_reelsInstagram: ReelsA
Read-only
Inspect

Instagram Reels: the trending feed, or reels that use a given audio track.

Actions:

  • action=feed: Get Instagram's recommended and trending reels. Pass clips_media_id from a previous result to continue the feed or get similar reels by the same author. Not tied to a user; for one profile's reels use instagram_profile (action=reels). Pricing: 1 credit per call. Inputs: clips_media_id (optional).

  • action=by_audio: List Instagram reels that use a given sound. Needs the audio_id (music/audio cluster ID) found in reel results' audio metadata. Pass max_id from the previous response for the next page. Pricing: 1 credit per call. Inputs: audio_id (required), max_id (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhich operation to run. See the tool description for what each action returns and which parameters it needs.
max_idNoPagination cursor for next page. Optional for: by_audio.
audio_idNoAudio cluster ID (music ID). Required for: by_audio.
clips_media_idNoClip media ID for chaining/pagination (from previous response). Optional for: feed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesJSON response from the SocialAPIs REST endpoint, unchanged. Object or array depending on the endpoint; most include a `meta` block (statusCode, duration, creditsCharged, creditsRemaining).
creditsChargedNoCredits charged for this call, or null if the endpoint did not report it.
creditsRemainingNoCredits left on the API key after this call, or null if not reported.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnly/openWorld/destructive, so the bar is lower, yet the description still adds real context: 1-credit pricing per action, pagination chaining via clips_media_id/max_id, and that audio_id comes from reel results' audio metadata. It does not mention auth or rate-limit traits, but the operational disclosure is strong.

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

Conciseness4/5

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

Front-loaded with a one-line summary, then a clean per-action bullet structure with inputs and pricing. Slightly verbose with repeated pricing lines, but every sentence carries actionable information.

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

Completeness4/5

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

With an output schema present, return values need not be restated, and the description covers both actions, their inputs, chaining, and cost. It is complete enough for correct invocation, with only minor room to note result-shape differences between actions.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining where each ID originates (audio_id from audio metadata, clips_media_id from a previous result) and what each enables (continuing the feed vs. paging results). This adds sourcing semantics beyond the schema's terse field notes.

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

Purpose5/5

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

The description names a precise resource (Instagram Reels) and splits it into two clearly-stated operations, feed and by_audio, each with a specific verb and scope. It also distinguishes itself from instagram_profile (action=reels), so an agent can route correctly without opening the schema.

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

Usage Guidelines5/5

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

Each action states its use case and required inputs, and the feed action explicitly excludes the profile case by pointing to instagram_profile (action=reels). The condition selecting each branch is unambiguous, leaving nothing to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedinstagram_profile1 field changed
      • changedInput schema / properties / user_id / description
        Previous value: -"Numeric Instagram user ID, from action=id. For posts, an alternative to username.\nRequired for: reels, highlights. Optional for: posts."New value: +"Instagram profile ID from action=id. posts, reels: its long user_id (e.g. 17841401474538262) · highlights: its pk (e.g. 528817151). For posts, an alternative to username.\nRequired for: reels, highlights. Optional for: posts."
  2. 2 tool updates
    • Changedfacebook_group6 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "details",
        -  "id",
        -  "posts",
        -  "videos"
        -]New value: +[
        +  "details",
        +  "id",
        +  "posts",
        +  "videos",
        +  "albums",
        +  "album_items"
        +]
      • addedInput schema / properties / album_id
        Added value: +{
        +  "description": "Album ID, from facebook_page (action=albums) or action=albums.\nRequired for: album_items.",
        +  "type": "string"
        +}
      • changedInput schema / properties / end_cursor / description
        Previous value: -"Pagination cursor.\nOptional for: posts, videos."New value: +"Pagination cursor.\nOptional for: posts, videos, album_items."
      • addedInput schema / properties / group_id
        Added value: +{
        +  "description": "Facebook group ID, from action=id.\nRequired for: albums.",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9.\nOptional for: posts."New value: +"Results per call. posts: 3-9 (default 3) · albums: 8-16 (default 8).\nOptional for: posts, albums."
      • changedInput schema / properties / limit / maximum
        Previous value: -9New value: +16
    • Changedfacebook_page6 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "details",
        -  "id",
        -  "posts",
        -  "videos",
        -  "reels"
        -]New value: +[
        +  "details",
        +  "id",
        +  "posts",
        +  "videos",
        +  "reels",
        +  "albums",
        +  "album_items"
        +]
      • addedInput schema / properties / album_id
        Added value: +{
        +  "description": "Album ID, from action=albums or facebook_group (action=albums).\nRequired for: album_items.",
        +  "type": "string"
        +}
      • changedInput schema / properties / end_cursor / description
        Previous value: -"Pagination cursor from the previous response.\nOptional for: posts, videos, reels."New value: +"Pagination cursor from the previous response.\nOptional for: posts, videos, reels, albums, album_items."
      • changedInput schema / properties / limit / description
        Previous value: -"Results per call. posts: 3-9 (default 3) · videos: 6-12 (default 6).\nOptional for: posts, videos."New value: +"Results per call. posts: 3-9 (default 3) · videos: 6-12 (default 6) · albums: 8-16 (default 8).\nOptional for: posts, videos, albums."
      • changedInput schema / properties / limit / maximum
        Previous value: -12New value: +16
      • changedInput schema / properties / profile_id / description
        Previous value: -"Facebook profile ID (alternative to link).\nOptional for: videos."New value: +"Numeric Facebook page ID, from action=id. For videos, an alternative to link.\nRequired for: albums. Optional for: videos."
  3. 10 tool updates
    • Changedfacebook_ads12 fields changed
      • changedInput schema / properties / activeStatus / description
        Previous value: -"search (optional): Filter: ALL, Active, or Inactive."New value: +"Filter: ALL, Active, or Inactive.\nOptional for: search."
      • changedInput schema / properties / ad_archive_id / description
        Previous value: -"archive_details (required): Ad Library archive ID of the ad (ad_archive_id from a action=search result)."New value: +"Ad Library archive ID of the ad (ad_archive_id from a action=search result).\nRequired for: archive_details."
      • changedInput schema / properties / ad_page_id / description
        Previous value: -"search (optional): Facebook AD Page ID (alternative to query)."New value: +"Facebook AD Page ID (alternative to query).\nOptional for: search."
      • changedInput schema / properties / after_time / description
        Previous value: -"search (optional): Filter ads after this date (YYYY-MM-DD)."New value: +"Filter ads after this date (YYYY-MM-DD).\nOptional for: search."
      • changedInput schema / properties / before_time / description
        Previous value: -"search (optional): Filter ads before this date (YYYY-MM-DD)."New value: +"Filter ads before this date (YYYY-MM-DD).\nOptional for: search."
      • changedInput schema / properties / country / description
        Previous value: -"search, keywords, archive_details (optional): ISO country code or \"ALL\"."New value: +"ISO country code or \"ALL\".\nOptional for: search, keywords, archive_details."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"search (optional): Pagination cursor."New value: +"Pagination cursor.\nOptional for: search."
      • changedInput schema / properties / is_ad_non_political / description
        Previous value: -"archive_details (optional): Filter non-political ads."New value: +"Filter non-political ads.\nOptional for: archive_details."
      • changedInput schema / properties / is_ad_not_aaa_eligible / description
        Previous value: -"archive_details (optional): Filter AAA eligibility."New value: +"Filter AAA eligibility.\nOptional for: archive_details."
      • changedInput schema / properties / page_id / description
        Previous value: -"page_details (required): Advertiser page ID: ad_page_id from facebook_page (action=details), or page_id from action=keywords. archive_details (optional): Facebook Page ID."New value: +"Advertiser page ID: ad_page_id from facebook_page (action=details), or page_id from action=keywords.\nRequired for: page_details. Optional for: archive_details."
      • changedInput schema / properties / query / description
        Previous value: -"search (optional): Search keyword for ads. keywords (required): Keyword to find advertisers for, e.g. running shoes."New value: +"Keyword. search: words in the ads (or pass ad_page_id instead) · keywords: a topic to find advertisers for, e.g. running shoes.\nRequired for: keywords. Optional for: search."
      • changedInput schema / properties / sort_data / description
        Previous value: -"search (optional): Sort by \"impressions\" or \"recent\"."New value: +"Sort by \"impressions\" or \"recent\".\nOptional for: search."
    • Changedfacebook_group6 fields changed
      • changedInput schema / properties / after_time / description
        Previous value: -"posts (optional): ISO 8601 timestamp."New value: +"ISO 8601 timestamp.\nOptional for: posts."
      • changedInput schema / properties / before_time / description
        Previous value: -"posts (optional): ISO 8601 timestamp."New value: +"ISO 8601 timestamp.\nOptional for: posts."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"posts, videos (optional): Pagination cursor."New value: +"Pagination cursor.\nOptional for: posts, videos."
      • changedInput schema / properties / limit / description
        Previous value: -"posts (optional): Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9."New value: +"Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9.\nOptional for: posts."
      • changedInput schema / properties / link / description
        Previous value: -"details, id, posts, videos (required): Facebook group URL."New value: +"Facebook group URL.\nRequired for: details, id, posts, videos."
      • changedInput schema / properties / timezone / description
        Previous value: -"posts (optional): IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC."New value: +"IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC.\nOptional for: posts."
    • Changedfacebook_marketplace24 fields changed
      • changedInput schema / properties / category_url / description
        Previous value: -"search (optional): Category URL slug."New value: +"Category URL slug.\nOptional for: search."
      • changedInput schema / properties / city / description
        Previous value: -"city_coordinates (required): City name, e.g. Austin."New value: +"City name, e.g. Austin.\nRequired for: city_coordinates."
      • changedInput schema / properties / commerce_search_and_rp_condition / description
        Previous value: -"search (optional): Condition: new, used_like_new, used_good, used_fair."New value: +"Condition: new, used_like_new, used_good, used_fair.\nOptional for: search."
      • changedInput schema / properties / commerce_search_sort_by / description
        Previous value: -"search (optional): Sort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc."New value: +"Sort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc.\nOptional for: search."
      • changedInput schema / properties / country / description
        Previous value: -"city_coordinates (optional): Country name or code."New value: +"Country name or code.\nOptional for: city_coordinates."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"search, vehicles, rentals (optional): Pagination cursor."New value: +"Pagination cursor.\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / exact_match / description
        Previous value: -"search (optional): When \"true\", exact match search."New value: +"When \"true\", exact match search.\nOptional for: search."
      • changedInput schema / properties / exactly_one / description
        Previous value: -"city_coordinates (optional): When \"true\", return exactly one result."New value: +"When \"true\", return exactly one result.\nOptional for: city_coordinates."
      • changedInput schema / properties / filter_bathrooms_max / description
        Previous value: -"rentals (optional): Maximum number of bathrooms."New value: +"Maximum number of bathrooms.\nOptional for: rentals."
      • changedInput schema / properties / filter_bathrooms_min / description
        Previous value: -"rentals (optional): Minimum number of bathrooms, e.g. 1."New value: +"Minimum number of bathrooms, e.g. 1.\nOptional for: rentals."
      • changedInput schema / properties / filter_bedrooms_max / description
        Previous value: -"rentals (optional): Maximum number of bedrooms."New value: +"Maximum number of bedrooms.\nOptional for: rentals."
      • changedInput schema / properties / filter_bedrooms_min / description
        Previous value: -"rentals (optional): Minimum number of bedrooms, e.g. 2."New value: +"Minimum number of bedrooms, e.g. 2.\nOptional for: rentals."
      • changedInput schema / properties / filter_location_latitude / description
        Previous value: -"search, vehicles, rentals (optional): Latitude of the search center, e.g. 30.2672 (from action=city_coordinates)."New value: +"Latitude of the search center, e.g. 30.2672 (from action=city_coordinates).\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / filter_location_longitude / description
        Previous value: -"search, vehicles, rentals (optional): Longitude of the search center, e.g. -97.7431 (from action=city_coordinates)."New value: +"Longitude of the search center, e.g. -97.7431 (from action=city_coordinates).\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / filter_price_lower_bound / description
        Previous value: -"search, vehicles, rentals (optional): Minimum price in the local currency, whole number, e.g. 100."New value: +"Minimum price in the local currency, whole number, e.g. 100.\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / filter_price_upper_bound / description
        Previous value: -"search, vehicles, rentals (optional): Maximum price in the local currency, whole number, e.g. 2000."New value: +"Maximum price in the local currency, whole number, e.g. 2000.\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / filter_radius_km / description
        Previous value: -"search, vehicles, rentals (optional): Search radius around the center in kilometres, e.g. 40."New value: +"Search radius around the center in kilometres, e.g. 40.\nOptional for: search, vehicles, rentals."
      • changedInput schema / properties / is_c2c_listing_only / description
        Previous value: -"vehicles (optional): Individual sellers only."New value: +"Individual sellers only.\nOptional for: vehicles."
      • changedInput schema / properties / limit / description
        Previous value: -"search (optional): Maximum number of items to return. Default: 24."New value: +"Maximum number of items to return. Default: 24.\nOptional for: search."
      • changedInput schema / properties / listing_id / description
        Previous value: -"listing (required): Marketplace listing ID, from a Marketplace search result."New value: +"Marketplace listing ID, from a Marketplace search result.\nRequired for: listing."
      • changedInput schema / properties / posted_today / description
        Previous value: -"search (optional): When \"true\", limit to items posted today."New value: +"When \"true\", limit to items posted today.\nOptional for: search."
      • changedInput schema / properties / query / description
        Previous value: -"search (optional): Keyword to search listings for, e.g. iphone 15."New value: +"Keyword to search listings for, e.g. iphone 15.\nOptional for: search."
      • changedInput schema / properties / seller_id / description
        Previous value: -"seller (required): Seller ID, from the seller field of action=listing."New value: +"Seller ID, from the seller field of action=listing.\nRequired for: seller."
      • changedInput schema / properties / sort_by / description
        Previous value: -"vehicles (optional): Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, etc. rentals (optional): Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH."New value: +"Sort order. vehicles: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, … · rentals: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH.\nOptional for: vehicles, rentals."
    • Changedfacebook_page8 fields changed
      • changedInput schema / properties / after_time / description
        Previous value: -"posts (optional): ISO 8601 timestamp - only return posts after this time."New value: +"ISO 8601 timestamp - only return posts after this time.\nOptional for: posts."
      • changedInput schema / properties / before_time / description
        Previous value: -"posts (optional): ISO 8601 timestamp - only return posts before this time."New value: +"ISO 8601 timestamp - only return posts before this time.\nOptional for: posts."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"posts (optional): Pagination cursor for next page of results. videos, reels (optional): Pagination cursor."New value: +"Pagination cursor from the previous response.\nOptional for: posts, videos, reels."
      • changedInput schema / properties / exact_followers_count / description
        Previous value: -"details (optional): When true, performs a deeper scrape to return the exact follower count (e.g. 38,493,217 instead of \"38M\"). Charges 5 credits when true, 1 credit otherwise. Default: false."New value: +"When true, performs a deeper scrape to return the exact follower count (e.g. 38,493,217 instead of \"38M\"). Charges 5 credits when true, 1 credit otherwise. Default: false.\nOptional for: details."
      • changedInput schema / properties / limit / description
        Previous value: -"posts (optional): Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9. videos (optional): Maximum number of videos to return. Default: 6. Minimum: 6. Maximum: 12."New value: +"Results per call. posts: 3-9 (default 3) · videos: 6-12 (default 6).\nOptional for: posts, videos."
      • changedInput schema / properties / link / description
        Previous value: -"details, posts, reels (required): Facebook page URL. id (required): Facebook page URL (e.g., https://facebook.com/nike). videos (optional): Facebook page URL."New value: +"Facebook page URL, e.g. https://facebook.com/nike. For videos you can pass profile_id instead.\nRequired for: details, id, posts, reels. Optional for: videos."
      • changedInput schema / properties / profile_id / description
        Previous value: -"videos (optional): Facebook profile ID (alternative to link)."New value: +"Facebook profile ID (alternative to link).\nOptional for: videos."
      • changedInput schema / properties / timezone / description
        Previous value: -"posts (optional): Timezone for timestamps (e.g., UTC, America/New_York)."New value: +"Timezone for timestamps (e.g., UTC, America/New_York).\nOptional for: posts."
    • Changedfacebook_post8 fields changed
      • changedInput schema / properties / comment_feedback_id / description
        Previous value: -"comment_replies (required): Feedback ID from the comments endpoint with include_reply_info=true."New value: +"Feedback ID from the comments endpoint with include_reply_info=true.\nRequired for: comment_replies."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"comments (optional): Pagination cursor for next page of comments."New value: +"Pagination cursor for next page of comments.\nOptional for: comments."
      • changedInput schema / properties / expansion_token / description
        Previous value: -"comment_replies (required): Expansion token from the comments endpoint with include_reply_info=true."New value: +"Expansion token from the comments endpoint with include_reply_info=true.\nRequired for: comment_replies."
      • changedInput schema / properties / include_reply_info / description
        Previous value: -"comments (optional): When \"true\", includes comment_feedback_id and expansion_token for fetching replies."New value: +"When \"true\", includes comment_feedback_id and expansion_token for fetching replies.\nOptional for: comments."
      • changedInput schema / properties / limit / description
        Previous value: -"comments (optional): Maximum number of comments to return. Default: 10. Maximum: 30."New value: +"Maximum number of comments to return. Default: 10. Maximum: 30.\nOptional for: comments."
      • changedInput schema / properties / link / description
        Previous value: -"details, id (required): Facebook post URL. details_extended (required): Facebook post URL (works for reels, video posts, and regular posts). comments (required): Facebook post or reel URL."New value: +"Facebook post or reel URL (regular posts, video posts and reels).\nRequired for: details, details_extended, id, comments."
      • changedInput schema / properties / post_id / description
        Previous value: -"attachments (required): Numeric Facebook post ID, from action=id."New value: +"Numeric Facebook post ID, from action=id.\nRequired for: attachments."
      • changedInput schema / properties / video_id / description
        Previous value: -"video (required): Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL."New value: +"Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL.\nRequired for: video."
    • Changedfacebook_search9 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"pages, people, posts, videos (optional): Pagination cursor."New value: +"Pagination cursor.\nOptional for: pages, people, posts, videos."
      • changedInput schema / properties / end_time / description
        Previous value: -"posts (optional): Filter posts before this date (YYYY-MM-DD)."New value: +"Filter posts before this date (YYYY-MM-DD).\nOptional for: posts."
      • changedInput schema / properties / fields / description
        Previous value: -"videos (optional): Comma-separated list of response fields to include."New value: +"Comma-separated list of response fields to include.\nOptional for: videos."
      • changedInput schema / properties / location_uid / description
        Previous value: -"pages (optional): Location UID for filtering (from search/locations endpoint). people, posts (optional): Location UID for filtering."New value: +"Location UID from action=locations, to limit results to a place.\nOptional for: pages, people, posts."
      • changedInput schema / properties / most_recent / description
        Previous value: -"videos (optional): When \"true\", shows most recent videos first."New value: +"When \"true\", shows most recent videos first.\nOptional for: videos."
      • changedInput schema / properties / query / description
        Previous value: -"pages (required): Keyword to search for, e.g. a brand or business name. people (required): Name or keyword to search for. posts (required): Keyword or phrase to search post text for. videos (required): Keyword or phrase to search videos for. locations (required): Search query (city, place, landmark)."New value: +"Search keyword. pages: a brand or business name · people: a name · posts, videos: words in the text · locations: a city, place or landmark.\nRequired for: pages, people, posts, videos, locations."
      • changedInput schema / properties / recent_posts / description
        Previous value: -"posts (optional): When \"true\", shows only recent posts."New value: +"When \"true\", shows only recent posts.\nOptional for: posts."
      • changedInput schema / properties / start_time / description
        Previous value: -"posts (optional): Filter posts after this date (YYYY-MM-DD)."New value: +"Filter posts after this date (YYYY-MM-DD).\nOptional for: posts."
      • changedInput schema / properties / videos_live / description
        Previous value: -"videos (optional): When \"true\", filters for live videos only."New value: +"When \"true\", filters for live videos only.\nOptional for: videos."
    • Changedinstagram_location3 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"posts (optional): Pagination cursor for next page."New value: +"Pagination cursor for next page.\nOptional for: posts."
      • changedInput schema / properties / location_id / description
        Previous value: -"posts, nearby (required): Instagram location ID."New value: +"Instagram location ID.\nRequired for: posts, nearby."
      • changedInput schema / properties / tab / description
        Previous value: -"posts (optional): Filter: \"recent\" or \"ranked\"."New value: +"Filter: \"recent\" or \"ranked\".\nOptional for: posts."
    • Changedinstagram_post2 fields changed
      • changedInput schema / properties / link / description
        Previous value: -"id (required): Instagram post URL."New value: +"Instagram post URL.\nRequired for: id."
      • changedInput schema / properties / shortcode / description
        Previous value: -"details (required): Instagram post shortcode (e.g., DMF-GjGO0-q)."New value: +"Instagram post shortcode (e.g., DMF-GjGO0-q).\nRequired for: details."
    • Changedinstagram_profile5 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"posts, reels (optional): Pagination cursor for next page."New value: +"Pagination cursor for next page.\nOptional for: posts, reels."
      • changedInput schema / properties / highlight_id / description
        Previous value: -"highlight_details (required): Highlight ID (from profile highlights endpoint)."New value: +"Highlight ID (from profile highlights endpoint).\nRequired for: highlight_details."
      • changedInput schema / properties / link / description
        Previous value: -"details (optional): Instagram profile URL (alternative to username). id (optional): Instagram profile URL."New value: +"Instagram profile URL (alternative to username).\nOptional for: details, id."
      • changedInput schema / properties / user_id / description
        Previous value: -"posts (optional): Instagram user ID (alternative). reels, highlights (required): Instagram user ID."New value: +"Numeric Instagram user ID, from action=id. For posts, an alternative to username.\nRequired for: reels, highlights. Optional for: posts."
      • changedInput schema / properties / username / description
        Previous value: -"details (required): Instagram username. id (optional): Instagram username. posts (optional): Instagram username (recommended — returns more results)."New value: +"Instagram username, without the @. For posts it returns more results than user_id.\nRequired for: details. Optional for: id, posts."
    • Changedinstagram_reels3 fields changed
      • changedInput schema / properties / audio_id / description
        Previous value: -"by_audio (required): Audio cluster ID (music ID)."New value: +"Audio cluster ID (music ID).\nRequired for: by_audio."
      • changedInput schema / properties / clips_media_id / description
        Previous value: -"feed (optional): Clip media ID for chaining/pagination (from previous response)."New value: +"Clip media ID for chaining/pagination (from previous response).\nOptional for: feed."
      • changedInput schema / properties / max_id / description
        Previous value: -"by_audio (optional): Pagination cursor for next page."New value: +"Pagination cursor for next page.\nOptional for: by_audio."
  4. 10 tool updates
    • Changedfacebook_ads12 fields changed
      • changedInput schema / properties / activeStatus / description
        Previous value: -"For search: Filter: ALL, Active, or Inactive."New value: +"search (optional): Filter: ALL, Active, or Inactive."
      • changedInput schema / properties / ad_archive_id / description
        Previous value: -"For archive_details: Ad Library archive ID of the ad (ad_archive_id from a action=search result)."New value: +"archive_details (required): Ad Library archive ID of the ad (ad_archive_id from a action=search result)."
      • changedInput schema / properties / ad_page_id / description
        Previous value: -"For search: Facebook AD Page ID (alternative to query)."New value: +"search (optional): Facebook AD Page ID (alternative to query)."
      • changedInput schema / properties / after_time / description
        Previous value: -"For search: Filter ads after this date (YYYY-MM-DD)."New value: +"search (optional): Filter ads after this date (YYYY-MM-DD)."
      • changedInput schema / properties / before_time / description
        Previous value: -"For search: Filter ads before this date (YYYY-MM-DD)."New value: +"search (optional): Filter ads before this date (YYYY-MM-DD)."
      • changedInput schema / properties / country / description
        Previous value: -"For search, keywords, archive_details: ISO country code or \"ALL\"."New value: +"search, keywords, archive_details (optional): ISO country code or \"ALL\"."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For search: Pagination cursor."New value: +"search (optional): Pagination cursor."
      • changedInput schema / properties / is_ad_non_political / description
        Previous value: -"For archive_details: Filter non-political ads."New value: +"archive_details (optional): Filter non-political ads."
      • changedInput schema / properties / is_ad_not_aaa_eligible / description
        Previous value: -"For archive_details: Filter AAA eligibility."New value: +"archive_details (optional): Filter AAA eligibility."
      • changedInput schema / properties / page_id / description
        Previous value: -"For page_details: Advertiser page ID: ad_page_id from facebook_page (action=details), or page_id from action=keywords. For archive_details: Facebook Page ID."New value: +"page_details (required): Advertiser page ID: ad_page_id from facebook_page (action=details), or page_id from action=keywords. archive_details (optional): Facebook Page ID."
      • changedInput schema / properties / query / description
        Previous value: -"For search: Search keyword for ads. For keywords: Keyword to find advertisers for, e.g. running shoes."New value: +"search (optional): Search keyword for ads. keywords (required): Keyword to find advertisers for, e.g. running shoes."
      • changedInput schema / properties / sort_data / description
        Previous value: -"For search: Sort by \"impressions\" or \"recent\"."New value: +"search (optional): Sort by \"impressions\" or \"recent\"."
    • Changedfacebook_group6 fields changed
      • changedInput schema / properties / after_time / description
        Previous value: -"For posts: ISO 8601 timestamp."New value: +"posts (optional): ISO 8601 timestamp."
      • changedInput schema / properties / before_time / description
        Previous value: -"For posts: ISO 8601 timestamp."New value: +"posts (optional): ISO 8601 timestamp."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For posts, videos: Pagination cursor."New value: +"posts, videos (optional): Pagination cursor."
      • changedInput schema / properties / limit / description
        Previous value: -"For posts: Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9."New value: +"posts (optional): Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9."
      • changedInput schema / properties / link / description
        Previous value: -"For details, id, posts, videos: Facebook group URL."New value: +"details, id, posts, videos (required): Facebook group URL."
      • changedInput schema / properties / timezone / description
        Previous value: -"For posts: IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC."New value: +"posts (optional): IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC."
    • Changedfacebook_marketplace24 fields changed
      • changedInput schema / properties / category_url / description
        Previous value: -"For search: Category URL slug."New value: +"search (optional): Category URL slug."
      • changedInput schema / properties / city / description
        Previous value: -"For city_coordinates: City name, e.g. Austin."New value: +"city_coordinates (required): City name, e.g. Austin."
      • changedInput schema / properties / commerce_search_and_rp_condition / description
        Previous value: -"For search: Condition: new, used_like_new, used_good, used_fair."New value: +"search (optional): Condition: new, used_like_new, used_good, used_fair."
      • changedInput schema / properties / commerce_search_sort_by / description
        Previous value: -"For search: Sort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc."New value: +"search (optional): Sort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc."
      • changedInput schema / properties / country / description
        Previous value: -"For city_coordinates: Country name or code."New value: +"city_coordinates (optional): Country name or code."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For search, vehicles, rentals: Pagination cursor."New value: +"search, vehicles, rentals (optional): Pagination cursor."
      • changedInput schema / properties / exact_match / description
        Previous value: -"For search: When \"true\", exact match search."New value: +"search (optional): When \"true\", exact match search."
      • changedInput schema / properties / exactly_one / description
        Previous value: -"For city_coordinates: When \"true\", return exactly one result."New value: +"city_coordinates (optional): When \"true\", return exactly one result."
      • changedInput schema / properties / filter_bathrooms_max / description
        Previous value: -"For rentals: Maximum number of bathrooms."New value: +"rentals (optional): Maximum number of bathrooms."
      • changedInput schema / properties / filter_bathrooms_min / description
        Previous value: -"For rentals: Minimum number of bathrooms, e.g. 1."New value: +"rentals (optional): Minimum number of bathrooms, e.g. 1."
      • changedInput schema / properties / filter_bedrooms_max / description
        Previous value: -"For rentals: Maximum number of bedrooms."New value: +"rentals (optional): Maximum number of bedrooms."
      • changedInput schema / properties / filter_bedrooms_min / description
        Previous value: -"For rentals: Minimum number of bedrooms, e.g. 2."New value: +"rentals (optional): Minimum number of bedrooms, e.g. 2."
      • changedInput schema / properties / filter_location_latitude / description
        Previous value: -"For search, vehicles, rentals: Latitude of the search center, e.g. 30.2672 (from action=city_coordinates)."New value: +"search, vehicles, rentals (optional): Latitude of the search center, e.g. 30.2672 (from action=city_coordinates)."
      • changedInput schema / properties / filter_location_longitude / description
        Previous value: -"For search, vehicles, rentals: Longitude of the search center, e.g. -97.7431 (from action=city_coordinates)."New value: +"search, vehicles, rentals (optional): Longitude of the search center, e.g. -97.7431 (from action=city_coordinates)."
      • changedInput schema / properties / filter_price_lower_bound / description
        Previous value: -"For search, vehicles, rentals: Minimum price in the local currency, whole number, e.g. 100."New value: +"search, vehicles, rentals (optional): Minimum price in the local currency, whole number, e.g. 100."
      • changedInput schema / properties / filter_price_upper_bound / description
        Previous value: -"For search, vehicles, rentals: Maximum price in the local currency, whole number, e.g. 2000."New value: +"search, vehicles, rentals (optional): Maximum price in the local currency, whole number, e.g. 2000."
      • changedInput schema / properties / filter_radius_km / description
        Previous value: -"For search, vehicles, rentals: Search radius around the center in kilometres, e.g. 40."New value: +"search, vehicles, rentals (optional): Search radius around the center in kilometres, e.g. 40."
      • changedInput schema / properties / is_c2c_listing_only / description
        Previous value: -"For vehicles: Individual sellers only."New value: +"vehicles (optional): Individual sellers only."
      • changedInput schema / properties / limit / description
        Previous value: -"For search: Maximum number of items to return. Default: 24."New value: +"search (optional): Maximum number of items to return. Default: 24."
      • changedInput schema / properties / listing_id / description
        Previous value: -"For listing: Marketplace listing ID, from a Marketplace search result."New value: +"listing (required): Marketplace listing ID, from a Marketplace search result."
      • changedInput schema / properties / posted_today / description
        Previous value: -"For search: When \"true\", limit to items posted today."New value: +"search (optional): When \"true\", limit to items posted today."
      • changedInput schema / properties / query / description
        Previous value: -"For search: Keyword to search listings for, e.g. iphone 15."New value: +"search (optional): Keyword to search listings for, e.g. iphone 15."
      • changedInput schema / properties / seller_id / description
        Previous value: -"For seller: Seller ID, from the seller field of action=listing."New value: +"seller (required): Seller ID, from the seller field of action=listing."
      • changedInput schema / properties / sort_by / description
        Previous value: -"For vehicles: Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, etc. For rentals: Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH."New value: +"vehicles (optional): Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, etc. rentals (optional): Sort: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH."
    • Changedfacebook_page8 fields changed
      • changedInput schema / properties / after_time / description
        Previous value: -"For posts: ISO 8601 timestamp - only return posts after this time."New value: +"posts (optional): ISO 8601 timestamp - only return posts after this time."
      • changedInput schema / properties / before_time / description
        Previous value: -"For posts: ISO 8601 timestamp - only return posts before this time."New value: +"posts (optional): ISO 8601 timestamp - only return posts before this time."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For posts: Pagination cursor for next page of results. For videos, reels: Pagination cursor."New value: +"posts (optional): Pagination cursor for next page of results. videos, reels (optional): Pagination cursor."
      • changedInput schema / properties / exact_followers_count / description
        Previous value: -"For details: When true, performs a deeper scrape to return the exact follower count (e.g. 38,493,217 instead of \"38M\"). Charges 5 credits when true, 1 credit otherwise. Default: false."New value: +"details (optional): When true, performs a deeper scrape to return the exact follower count (e.g. 38,493,217 instead of \"38M\"). Charges 5 credits when true, 1 credit otherwise. Default: false."
      • changedInput schema / properties / limit / description
        Previous value: -"For posts: Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9. For videos: Maximum number of videos to return. Default: 6. Minimum: 6. Maximum: 12."New value: +"posts (optional): Maximum number of posts to return. Default: 3. Minimum: 3. Maximum: 9. videos (optional): Maximum number of videos to return. Default: 6. Minimum: 6. Maximum: 12."
      • changedInput schema / properties / link / description
        Previous value: -"For details, posts, videos, reels: Facebook page URL. For id: Facebook page URL (e.g., https://facebook.com/nike)."New value: +"details, posts, reels (required): Facebook page URL. id (required): Facebook page URL (e.g., https://facebook.com/nike). videos (optional): Facebook page URL."
      • changedInput schema / properties / profile_id / description
        Previous value: -"For videos: Facebook profile ID (alternative to link)."New value: +"videos (optional): Facebook profile ID (alternative to link)."
      • changedInput schema / properties / timezone / description
        Previous value: -"For posts: Timezone for timestamps (e.g., UTC, America/New_York)."New value: +"posts (optional): Timezone for timestamps (e.g., UTC, America/New_York)."
    • Changedfacebook_post8 fields changed
      • changedInput schema / properties / comment_feedback_id / description
        Previous value: -"For comment_replies: Feedback ID from the comments endpoint with include_reply_info=true."New value: +"comment_replies (required): Feedback ID from the comments endpoint with include_reply_info=true."
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For comments: Pagination cursor for next page of comments."New value: +"comments (optional): Pagination cursor for next page of comments."
      • changedInput schema / properties / expansion_token / description
        Previous value: -"For comment_replies: Expansion token from the comments endpoint with include_reply_info=true."New value: +"comment_replies (required): Expansion token from the comments endpoint with include_reply_info=true."
      • changedInput schema / properties / include_reply_info / description
        Previous value: -"For comments: When \"true\", includes comment_feedback_id and expansion_token for fetching replies."New value: +"comments (optional): When \"true\", includes comment_feedback_id and expansion_token for fetching replies."
      • changedInput schema / properties / limit / description
        Previous value: -"For comments: Maximum number of comments to return. Default: 10. Maximum: 30."New value: +"comments (optional): Maximum number of comments to return. Default: 10. Maximum: 30."
      • changedInput schema / properties / link / description
        Previous value: -"For details, id: Facebook post URL. For details_extended: Facebook post URL (works for reels, video posts, and regular posts). For comments: Facebook post or reel URL."New value: +"details, id (required): Facebook post URL. details_extended (required): Facebook post URL (works for reels, video posts, and regular posts). comments (required): Facebook post or reel URL."
      • changedInput schema / properties / post_id / description
        Previous value: -"For attachments: Numeric Facebook post ID, from action=id."New value: +"attachments (required): Numeric Facebook post ID, from action=id."
      • changedInput schema / properties / video_id / description
        Previous value: -"For video: Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL."New value: +"video (required): Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL."
    • Changedfacebook_search9 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For pages, people, posts, videos: Pagination cursor."New value: +"pages, people, posts, videos (optional): Pagination cursor."
      • changedInput schema / properties / end_time / description
        Previous value: -"For posts: Filter posts before this date (YYYY-MM-DD)."New value: +"posts (optional): Filter posts before this date (YYYY-MM-DD)."
      • changedInput schema / properties / fields / description
        Previous value: -"For videos: Comma-separated list of response fields to include."New value: +"videos (optional): Comma-separated list of response fields to include."
      • changedInput schema / properties / location_uid / description
        Previous value: -"For pages: Location UID for filtering (from search/locations endpoint). For people, posts: Location UID for filtering."New value: +"pages (optional): Location UID for filtering (from search/locations endpoint). people, posts (optional): Location UID for filtering."
      • changedInput schema / properties / most_recent / description
        Previous value: -"For videos: When \"true\", shows most recent videos first."New value: +"videos (optional): When \"true\", shows most recent videos first."
      • changedInput schema / properties / query / description
        Previous value: -"For pages: Keyword to search for, e.g. a brand or business name. For people: Name or keyword to search for. For posts: Keyword or phrase to search post text for. For videos: Keyword or phrase to search videos for. For locations: Search query (city, place, landmark)."New value: +"pages (required): Keyword to search for, e.g. a brand or business name. people (required): Name or keyword to search for. posts (required): Keyword or phrase to search post text for. videos (required): Keyword or phrase to search videos for. locations (required): Search query (city, place, landmark)."
      • changedInput schema / properties / recent_posts / description
        Previous value: -"For posts: When \"true\", shows only recent posts."New value: +"posts (optional): When \"true\", shows only recent posts."
      • changedInput schema / properties / start_time / description
        Previous value: -"For posts: Filter posts after this date (YYYY-MM-DD)."New value: +"posts (optional): Filter posts after this date (YYYY-MM-DD)."
      • changedInput schema / properties / videos_live / description
        Previous value: -"For videos: When \"true\", filters for live videos only."New value: +"videos (optional): When \"true\", filters for live videos only."
    • Changedinstagram_location3 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For posts: Pagination cursor for next page."New value: +"posts (optional): Pagination cursor for next page."
      • changedInput schema / properties / location_id / description
        Previous value: -"For posts, nearby: Instagram location ID."New value: +"posts, nearby (required): Instagram location ID."
      • changedInput schema / properties / tab / description
        Previous value: -"For posts: Filter: \"recent\" or \"ranked\"."New value: +"posts (optional): Filter: \"recent\" or \"ranked\"."
    • Changedinstagram_post2 fields changed
      • changedInput schema / properties / link / description
        Previous value: -"For id: Instagram post URL."New value: +"id (required): Instagram post URL."
      • changedInput schema / properties / shortcode / description
        Previous value: -"For details: Instagram post shortcode (e.g., DMF-GjGO0-q)."New value: +"details (required): Instagram post shortcode (e.g., DMF-GjGO0-q)."
    • Changedinstagram_profile5 fields changed
      • changedInput schema / properties / end_cursor / description
        Previous value: -"For posts, reels: Pagination cursor for next page."New value: +"posts, reels (optional): Pagination cursor for next page."
      • changedInput schema / properties / highlight_id / description
        Previous value: -"For highlight_details: Highlight ID (from profile highlights endpoint)."New value: +"highlight_details (required): Highlight ID (from profile highlights endpoint)."
      • changedInput schema / properties / link / description
        Previous value: -"For details: Instagram profile URL (alternative to username). For id: Instagram profile URL."New value: +"details (optional): Instagram profile URL (alternative to username). id (optional): Instagram profile URL."
      • changedInput schema / properties / user_id / description
        Previous value: -"For posts: Instagram user ID (alternative). For reels, highlights: Instagram user ID."New value: +"posts (optional): Instagram user ID (alternative). reels, highlights (required): Instagram user ID."
      • changedInput schema / properties / username / description
        Previous value: -"For details, id: Instagram username. For posts: Instagram username (recommended — returns more results)."New value: +"details (required): Instagram username. id (optional): Instagram username. posts (optional): Instagram username (recommended — returns more results)."
    • Changedinstagram_reels3 fields changed
      • changedInput schema / properties / audio_id / description
        Previous value: -"For by_audio: Audio cluster ID (music ID)."New value: +"by_audio (required): Audio cluster ID (music ID)."
      • changedInput schema / properties / clips_media_id / description
        Previous value: -"For feed: Clip media ID for chaining/pagination (from previous response)."New value: +"feed (optional): Clip media ID for chaining/pagination (from previous response)."
      • changedInput schema / properties / max_id / description
        Previous value: -"For by_audio: Pagination cursor for next page."New value: +"by_audio (optional): Pagination cursor for next page."
  5. 59 tool updates
    • Addedfacebook_ads
    • Removedfacebook_ads_archive_details
    • Removedfacebook_ads_countries
    • Removedfacebook_ads_keywords
    • Removedfacebook_ads_page_details
    • Removedfacebook_ads_search
    • Removedfacebook_download_media
    • Removedfacebook_get_comment_replies
    • Removedfacebook_get_group_details
    • Removedfacebook_get_group_id
    • Removedfacebook_get_group_posts
    • Removedfacebook_get_group_videos
    • Removedfacebook_get_page_details
    • Removedfacebook_get_page_id
    • Removedfacebook_get_page_posts
    • Removedfacebook_get_page_reels
    • Removedfacebook_get_page_videos
    • Removedfacebook_get_post_attachments
    • Removedfacebook_get_post_comments
    • Removedfacebook_get_post_details
    • Removedfacebook_get_post_details_extended
    • Removedfacebook_get_post_id
    • Removedfacebook_get_video_details
    • Addedfacebook_group
    • Addedfacebook_marketplace
    • Removedfacebook_marketplace_categories
    • Removedfacebook_marketplace_city_coordinates
    • Removedfacebook_marketplace_listing
    • Removedfacebook_marketplace_rentals
    • Removedfacebook_marketplace_search
    • Removedfacebook_marketplace_seller
    • Removedfacebook_marketplace_vehicles
    • Addedfacebook_media_download
    • Addedfacebook_page
    • Addedfacebook_post
    • Addedfacebook_search
    • Removedfacebook_search_locations
    • Removedfacebook_search_pages
    • Removedfacebook_search_people
    • Removedfacebook_search_posts
    • Removedfacebook_search_videos
    • Removedinstagram_get_highlight_details
    • Removedinstagram_get_location_posts
    • Removedinstagram_get_nearby_locations
    • Removedinstagram_get_post_details
    • Removedinstagram_get_post_id
    • Removedinstagram_get_profile_details
    • Removedinstagram_get_profile_highlights
    • Removedinstagram_get_profile_posts
    • Removedinstagram_get_profile_reels
    • Removedinstagram_get_reels_by_audio
    • Removedinstagram_get_reels_feed
    • Removedinstagram_get_user_id
    • Addedinstagram_location
    • Removedinstagram_popular_search
    • Addedinstagram_post
    • Addedinstagram_profile
    • Addedinstagram_reels
    • Addedinstagram_search
  6. 16 tool updates
    • Changedfacebook_ads_archive_details1 field changed
      • changedInput schema / properties / ad_archive_id / description
        Previous value: -"Ad Archive ID"New value: +"Ad Library archive ID of the ad (ad_archive_id from a facebook_ads_search result)"
    • Changedfacebook_ads_keywords1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search keyword"New value: +"Keyword to find advertisers for, e.g. running shoes"
    • Changedfacebook_ads_page_details1 field changed
      • changedInput schema / properties / page_id / description
        Previous value: -"Facebook Page ID"New value: +"Advertiser page ID: ad_page_id from facebook_get_page_details, or page_id from facebook_ads_keywords"
    • Changedfacebook_get_group_posts1 field changed
      • changedInput schema / properties / timezone / description
        Previous value: -"Timezone"New value: +"IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC."
    • Changedfacebook_get_post_attachments1 field changed
      • changedInput schema / properties / post_id / description
        Previous value: -"Facebook post ID"New value: +"Numeric Facebook post ID, from facebook_get_post_id"
    • Changedfacebook_get_video_details1 field changed
      • changedInput schema / properties / video_id / description
        Previous value: -"Facebook video ID"New value: +"Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL"
    • Changedfacebook_marketplace_city_coordinates1 field changed
      • changedInput schema / properties / city / description
        Previous value: -"City name"New value: +"City name, e.g. Austin"
    • Changedfacebook_marketplace_listing1 field changed
      • changedInput schema / properties / listing_id / description
        Previous value: -"Marketplace Listing ID"New value: +"Marketplace listing ID, from a Marketplace search result"
    • Changedfacebook_marketplace_rentals9 fields changed
      • changedInput schema / properties / filter_bathrooms_max / description
        Previous value: -"Max bathrooms"New value: +"Maximum number of bathrooms"
      • changedInput schema / properties / filter_bathrooms_min / description
        Previous value: -"Min bathrooms"New value: +"Minimum number of bathrooms, e.g. 1"
      • changedInput schema / properties / filter_bedrooms_max / description
        Previous value: -"Max bedrooms"New value: +"Maximum number of bedrooms"
      • changedInput schema / properties / filter_bedrooms_min / description
        Previous value: -"Min bedrooms"New value: +"Minimum number of bedrooms, e.g. 2"
      • changedInput schema / properties / filter_location_latitude / description
        Previous value: -"GPS latitude"New value: +"Latitude of the search center, e.g. 30.2672 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_location_longitude / description
        Previous value: -"GPS longitude"New value: +"Longitude of the search center, e.g. -97.7431 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_price_lower_bound / description
        Previous value: -"Minimum price"New value: +"Minimum price in the local currency, whole number, e.g. 100"
      • changedInput schema / properties / filter_price_upper_bound / description
        Previous value: -"Maximum price"New value: +"Maximum price in the local currency, whole number, e.g. 2000"
      • changedInput schema / properties / filter_radius_km / description
        Previous value: -"Radius in km"New value: +"Search radius around the center in kilometres, e.g. 40"
    • Changedfacebook_marketplace_search6 fields changed
      • changedInput schema / properties / filter_location_latitude / description
        Previous value: -"GPS latitude"New value: +"Latitude of the search center, e.g. 30.2672 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_location_longitude / description
        Previous value: -"GPS longitude"New value: +"Longitude of the search center, e.g. -97.7431 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_price_lower_bound / description
        Previous value: -"Minimum price"New value: +"Minimum price in the local currency, whole number, e.g. 100"
      • changedInput schema / properties / filter_price_upper_bound / description
        Previous value: -"Maximum price"New value: +"Maximum price in the local currency, whole number, e.g. 2000"
      • changedInput schema / properties / filter_radius_km / description
        Previous value: -"Radius in km"New value: +"Search radius around the center in kilometres, e.g. 40"
      • changedInput schema / properties / query / description
        Previous value: -"Search term"New value: +"Keyword to search listings for, e.g. iphone 15"
    • Changedfacebook_marketplace_seller1 field changed
      • changedInput schema / properties / seller_id / description
        Previous value: -"Seller ID"New value: +"Seller ID, from the seller field of facebook_marketplace_listing"
    • Changedfacebook_marketplace_vehicles5 fields changed
      • changedInput schema / properties / filter_location_latitude / description
        Previous value: -"GPS latitude"New value: +"Latitude of the search center, e.g. 30.2672 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_location_longitude / description
        Previous value: -"GPS longitude"New value: +"Longitude of the search center, e.g. -97.7431 (from facebook_marketplace_city_coordinates)"
      • changedInput schema / properties / filter_price_lower_bound / description
        Previous value: -"Minimum price"New value: +"Minimum price in the local currency, whole number, e.g. 100"
      • changedInput schema / properties / filter_price_upper_bound / description
        Previous value: -"Maximum price"New value: +"Maximum price in the local currency, whole number, e.g. 2000"
      • changedInput schema / properties / filter_radius_km / description
        Previous value: -"Radius in km"New value: +"Search radius around the center in kilometres, e.g. 40"
    • Changedfacebook_search_pages1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search query"New value: +"Keyword to search for, e.g. a brand or business name"
    • Changedfacebook_search_people1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search query"New value: +"Name or keyword to search for"
    • Changedfacebook_search_posts1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search query"New value: +"Keyword or phrase to search post text for"
    • Changedfacebook_search_videos1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search query"New value: +"Keyword or phrase to search videos for"
  7. 47 tool updates
    • First observedfacebook_ads_archive_details
    • First observedfacebook_ads_countries
    • First observedfacebook_ads_keywords
    • First observedfacebook_ads_page_details
    • First observedfacebook_ads_search
    • First observedfacebook_download_media
    • First observedfacebook_get_comment_replies
    • First observedfacebook_get_group_details
    • First observedfacebook_get_group_id
    • First observedfacebook_get_group_posts
    • First observedfacebook_get_group_videos
    • First observedfacebook_get_page_details
    • First observedfacebook_get_page_id
    • First observedfacebook_get_page_posts
    • First observedfacebook_get_page_reels
    • First observedfacebook_get_page_videos
    • First observedfacebook_get_post_attachments
    • First observedfacebook_get_post_comments
    • First observedfacebook_get_post_details
    • First observedfacebook_get_post_details_extended
    • First observedfacebook_get_post_id
    • First observedfacebook_get_video_details
    • First observedfacebook_marketplace_categories
    • First observedfacebook_marketplace_city_coordinates
    • First observedfacebook_marketplace_listing
    • First observedfacebook_marketplace_rentals
    • First observedfacebook_marketplace_search
    • First observedfacebook_marketplace_seller
    • First observedfacebook_marketplace_vehicles
    • First observedfacebook_search_locations
    • First observedfacebook_search_pages
    • First observedfacebook_search_people
    • First observedfacebook_search_posts
    • First observedfacebook_search_videos
    • First observedinstagram_get_highlight_details
    • First observedinstagram_get_location_posts
    • First observedinstagram_get_nearby_locations
    • First observedinstagram_get_post_details
    • First observedinstagram_get_post_id
    • First observedinstagram_get_profile_details
    • First observedinstagram_get_profile_highlights
    • First observedinstagram_get_profile_posts
    • First observedinstagram_get_profile_reels
    • First observedinstagram_get_reels_by_audio
    • First observedinstagram_get_reels_feed
    • First observedinstagram_get_user_id
    • First observedinstagram_popular_search

Publisher details

Operator
SocialAPIs · Publisher source
Vendor relationship
Independent · Publisher source
Trust center
Not available
Restrictions
Requires a SocialAPIs API key (free plan: 200 credits/month, no card). Paid plans for higher volume. Most calls cost 1 credit. Public data only; no OAuth or Meta developer app needed. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI agents to automate Facebook lead generation and CRM tasks such as searching leads, sending friend requests, managing contacts, broadcasting messages, and tracking growth metrics.
    10
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects Facebook Business Pages to AI assistants so they can query page and post insights, engagement metrics and audience demographics, publish posts, photos, videos, reels and stories, and moderate comments through natural language. Supports granular, per-account read-only or read-and-write permissions with destructive actions disabled by default.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.