addrbookFor publishers
← The evidence ledger

Evidence row 574330

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 09678844-7231-41d2-9659-a714a68359b3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
9603a87c2c9a0f8548fb64ee986fa93f266b85deb0b0625ba1efc953937f5603
Leaf
0x3c14cbd80a074aa0d99543a3529570dbe55764349f89f66ac6da551d5526a1a7

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "Meta Ads Library: search ads, find advertisers by keyword, advertiser page details, single ad details and supported countries.\n\nActions:\n- 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.\n  Inputs: query (optional), ad_page_id (optional), country (optional), activeStatus (optional), after_time (optional), before_time (optional), sort_data (optional), end_cursor (optional).\n- 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.\n  Inputs: query (required), country (optional).\n- 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.\n  Inputs: page_id (required).\n- 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.\n  Inputs: ad_archive_id (required), page_id (optional), country (optional), is_ad_non_political (optional), is_ad_not_aaa_eligible (optional).\n- action=countries: List the country codes the Ads Library tools accept in their country parameter. Pricing: 1 credit per call.\n  Inputs: none.",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "search",
              "keywords",
              "page_details",
              "archive_details",
              "countries"
            ],
            "type": "string"
          },
          "activeStatus": {
            "description": "Filter: ALL, Active, or Inactive.\nOptional for: search.",
            "type": "string"
          },
          "ad_archive_id": {
            "description": "Ad Library archive ID of the ad (ad_archive_id from a action=search result).\nRequired for: archive_details.",
            "type": "string"
          },
          "ad_page_id": {
            "description": "Facebook AD Page ID (alternative to query).\nOptional for: search.",
            "type": "string"
          },
          "after_time": {
            "description": "Filter ads after this date (YYYY-MM-DD).\nOptional for: search.",
            "type": "string"
          },
          "before_time": {
            "description": "Filter ads before this date (YYYY-MM-DD).\nOptional for: search.",
            "type": "string"
          },
          "country": {
            "description": "ISO country code or \"ALL\".\nOptional for: search, keywords, archive_details.",
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor.\nOptional for: search.",
            "type": "string"
          },
          "is_ad_non_political": {
            "description": "Filter non-political ads.\nOptional for: archive_details.",
            "type": "string"
          },
          "is_ad_not_aaa_eligible": {
            "description": "Filter AAA eligibility.\nOptional for: archive_details.",
            "type": "string"
          },
          "page_id": {
            "description": "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.",
            "type": "string"
          },
          "query": {
            "description": "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.",
            "type": "string"
          },
          "sort_data": {
            "description": "Sort by \"impressions\" or \"recent\".\nOptional for: search.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_ads"
    },
    {
      "description": "Public Facebook groups: details, group ID, posts, videos and photo albums.\n\nActions:\n- 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.\n  Inputs: link (required).\n- 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.\n  Inputs: link (required).\n- 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.\n  Inputs: link (required), limit (optional), end_cursor (optional), after_time (optional), before_time (optional), timezone (optional).\n- 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.\n  Inputs: link (required), end_cursor (optional).\n- 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.\n  Inputs: group_id (required), limit (optional).\n- 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.\n  Inputs: album_id (required), end_cursor (optional).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "details",
              "id",
              "posts",
              "videos",
              "albums",
              "album_items"
            ],
            "type": "string"
          },
          "after_time": {
            "description": "ISO 8601 timestamp.\nOptional for: posts.",
            "type": "string"
          },
          "album_id": {
            "description": "Album ID, from facebook_page (action=albums) or action=albums.\nRequired for: album_items.",
            "type": "string"
          },
          "before_time": {
            "description": "ISO 8601 timestamp.\nOptional for: posts.",
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor.\nOptional for: posts, videos, album_items.",
            "type": "string"
          },
          "group_id": {
            "description": "Facebook group ID, from action=id.\nRequired for: albums.",
            "type": "string"
          },
          "limit": {
            "description": "Results per call. posts: 3-9 (default 3) · albums: 8-16 (default 8).\nOptional for: posts, albums.",
            "maximum": 16,
            "minimum": 3,
            "type": "number"
          },
          "link": {
            "description": "Facebook group URL.\nRequired for: details, id, posts, videos.",
            "type": "string"
          },
          "timezone": {
            "description": "IANA timezone for returned timestamps, e.g. UTC or America/New_York. Default: UTC.\nOptional for: posts.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_group"
    },
    {
      "description": "Facebook Marketplace: search listings, vehicles and rentals, listing and seller details, categories and city coordinates.\n\nActions:\n- 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.\n  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).\n- 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.\n  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).\n- 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.\n  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).\n- 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.\n  Inputs: listing_id (required).\n- 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.\n  Inputs: seller_id (required).\n- 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.\n  Inputs: none.\n- 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.\n  Inputs: city (required), country (optional), exactly_one (optional).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "search",
              "vehicles",
              "rentals",
              "listing",
              "seller",
              "categories",
              "city_coordinates"
            ],
            "type": "string"
          },
          "category_url": {
            "description": "Category URL slug.\nOptional for: search.",
            "type": "string"
          },
          "city": {
            "description": "City name, e.g. Austin.\nRequired for: city_coordinates.",
            "type": "string"
          },
          "commerce_search_and_rp_condition": {
            "description": "Condition: new, used_like_new, used_good, used_fair.\nOptional for: search.",
            "type": "string"
          },
          "commerce_search_sort_by": {
            "description": "Sort: BEST_MATCH, CREATION_TIME_DESCEND, PRICE_ASCEND, etc.\nOptional for: search.",
            "type": "string"
          },
          "country": {
            "description": "Country name or code.\nOptional for: city_coordinates.",
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor.\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "exact_match": {
            "description": "When \"true\", exact match search.\nOptional for: search.",
            "type": "string"
          },
          "exactly_one": {
            "description": "When \"true\", return exactly one result.\nOptional for: city_coordinates.",
            "type": "string"
          },
          "filter_bathrooms_max": {
            "description": "Maximum number of bathrooms.\nOptional for: rentals.",
            "type": "string"
          },
          "filter_bathrooms_min": {
            "description": "Minimum number of bathrooms, e.g. 1.\nOptional for: rentals.",
            "type": "string"
          },
          "filter_bedrooms_max": {
            "description": "Maximum number of bedrooms.\nOptional for: rentals.",
            "type": "string"
          },
          "filter_bedrooms_min": {
            "description": "Minimum number of bedrooms, e.g. 2.\nOptional for: rentals.",
            "type": "string"
          },
          "filter_location_latitude": {
            "description": "Latitude of the search center, e.g. 30.2672 (from action=city_coordinates).\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "filter_location_longitude": {
            "description": "Longitude of the search center, e.g. -97.7431 (from action=city_coordinates).\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "filter_price_lower_bound": {
            "description": "Minimum price in the local currency, whole number, e.g. 100.\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "filter_price_upper_bound": {
            "description": "Maximum price in the local currency, whole number, e.g. 2000.\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "filter_radius_km": {
            "description": "Search radius around the center in kilometres, e.g. 40.\nOptional for: search, vehicles, rentals.",
            "type": "string"
          },
          "is_c2c_listing_only": {
            "description": "Individual sellers only.\nOptional for: vehicles.",
            "type": "string"
          },
          "limit": {
            "description": "Maximum number of items to return. Default: 24.\nOptional for: search.",
            "type": "number"
          },
          "listing_id": {
            "description": "Marketplace listing ID, from a Marketplace search result.\nRequired for: listing.",
            "type": "string"
          },
          "posted_today": {
            "description": "When \"true\", limit to items posted today.\nOptional for: search.",
            "type": "string"
          },
          "query": {
            "description": "Keyword to search listings for, e.g. iphone 15.\nOptional for: search.",
            "type": "string"
          },
          "seller_id": {
            "description": "Seller ID, from the seller field of action=listing.\nRequired for: seller.",
            "type": "string"
          },
          "sort_by": {
            "description": "Sort order. vehicles: CREATION_TIME_DESCEND, PRICE_ASCEND, VEHICLE_MILEAGE_ASCEND, … · rentals: CREATION_TIME_DESCEND, PRICE_ASCEND, BEST_MATCH.\nOptional for: vehicles, rentals.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_marketplace"
    },
    {
      "description": "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.\nInputs: url (required).",
      "inputSchema": {
        "properties": {
          "url": {
            "description": "Facebook media URL to download",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "facebook_media_download"
    },
    {
      "description": "Facebook pages: profile details, page ID, posts, videos, reels and photo albums.\n\nActions:\n- 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.\n  Inputs: link (required), exact_followers_count (optional).\n- 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.\n  Inputs: link (required).\n- 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.\n  Inputs: link (required), limit (optional), end_cursor (optional), after_time (optional), before_time (optional), timezone (optional).\n- 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.\n  Inputs: link (optional), profile_id (optional), limit (optional), end_cursor (optional).\n- 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.\n  Inputs: link (required), end_cursor (optional).\n- 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.\n  Inputs: profile_id (required), limit (optional), end_cursor (optional).\n- 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.\n  Inputs: album_id (required), end_cursor (optional).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "details",
              "id",
              "posts",
              "videos",
              "reels",
              "albums",
              "album_items"
            ],
            "type": "string"
          },
          "after_time": {
            "description": "ISO 8601 timestamp - only return posts after this time.\nOptional for: posts.",
            "type": "string"
          },
          "album_id": {
            "description": "Album ID, from action=albums or facebook_group (action=albums).\nRequired for: album_items.",
            "type": "string"
          },
          "before_time": {
            "description": "ISO 8601 timestamp - only return posts before this time.\nOptional for: posts.",
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor from the previous response.\nOptional for: posts, videos, reels, albums, album_items.",
            "type": "string"
          },
          "exact_followers_count": {
            "description": "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.",
            "type": "boolean"
          },
          "limit": {
            "description": "Results per call. posts: 3-9 (default 3) · videos: 6-12 (default 6) · albums: 8-16 (default 8).\nOptional for: posts, videos, albums.",
            "maximum": 16,
            "minimum": 3,
            "type": "number"
          },
          "link": {
            "description": "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.",
            "type": "string"
          },
          "profile_id": {
            "description": "Numeric Facebook page ID, from action=id. For videos, an alternative to link.\nRequired for: albums. Optional for: videos.",
            "type": "string"
          },
          "timezone": {
            "description": "Timezone for timestamps (e.g., UTC, America/New_York).\nOptional for: posts.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_page"
    },
    {
      "description": "Facebook posts, videos and comments: post details, attachments, comments and replies.\n\nActions:\n- 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.\n  Inputs: link (required).\n- 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.\n  Inputs: link (required).\n- 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.\n  Inputs: link (required).\n- 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).\n  Inputs: post_id (required).\n- 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/<id> URL, or from facebook_page (action=videos)). Pricing: 1 credit per call.\n  Inputs: video_id (required).\n- 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.\n  Inputs: link (required), limit (optional), end_cursor (optional), include_reply_info (optional).\n- 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.\n  Inputs: comment_feedback_id (required), expansion_token (required).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "details",
              "details_extended",
              "id",
              "attachments",
              "video",
              "comments",
              "comment_replies"
            ],
            "type": "string"
          },
          "comment_feedback_id": {
            "description": "Feedback ID from the comments endpoint with include_reply_info=true.\nRequired for: comment_replies.",
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor for next page of comments.\nOptional for: comments.",
            "type": "string"
          },
          "expansion_token": {
            "description": "Expansion token from the comments endpoint with include_reply_info=true.\nRequired for: comment_replies.",
            "type": "string"
          },
          "include_reply_info": {
            "description": "When \"true\", includes comment_feedback_id and expansion_token for fetching replies.\nOptional for: comments.",
            "type": "string"
          },
          "limit": {
            "description": "Maximum number of comments to return. Default: 10. Maximum: 30.\nOptional for: comments.",
            "maximum": 30,
            "type": "number"
          },
          "link": {
            "description": "Facebook post or reel URL (regular posts, video posts and reels).\nRequired for: details, details_extended, id, comments.",
            "type": "string"
          },
          "post_id": {
            "description": "Numeric Facebook post ID, from action=id.\nRequired for: attachments.",
            "type": "string"
          },
          "video_id": {
            "description": "Numeric Facebook video ID, e.g. the number in a facebook.com/.../videos/<id> URL.\nRequired for: video.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_post"
    },
    {
      "description": "Search Facebook by keyword: pages, people, posts, videos and locations.\n\nActions:\n- action=pages: Find Facebook pages by keyword (brand, business or topic name), optionally near a location. Returns page names, URLs, categories and follower counts, 3 per call, plus an end_cursor. Use it when you don't have the page URL; then call facebook_page (action=details) with a result's URL. For locations, get a location_uid from action=locations. Pricing: 1 credit per call.\n  Inputs: query (required), location_uid (optional), end_cursor (optional).\n- action=people: Find public Facebook profiles by name or keyword, optionally near a location (location_uid from action=locations). Returns names, profile URLs and pictures, plus work, education and location where public, and an end_cursor. Pricing: 1 credit per call.\n  Inputs: query (required), location_uid (optional), end_cursor (optional).\n- action=posts: Search public Facebook posts by keyword, optionally filtered by location (location_uid from action=locations) and date range. Returns posts with text, author and engagement, plus an end_cursor. To list one page's posts, use facebook_page (action=posts) instead. Pricing: 1 credit per call.\n  Inputs: query (required), location_uid (optional), start_time (optional), end_time (optional), recent_posts (optional), end_cursor (optional).\n- action=videos: Search public Facebook videos by keyword, optionally most recent first or live videos only. Returns video titles, URLs and view counts, plus an end_cursor. Pricing: 1 credit per call.\n  Inputs: query (required), most_recent (optional), videos_live (optional), fields (optional), end_cursor (optional).\n- action=locations: Look up Facebook places by name (city, region, venue) and get their location_uid. The location_uid is only used to filter action=pages, action=people and action=posts; it is not a Marketplace location (use facebook_marketplace (action=city_coordinates) for that). Pricing: 1 credit per call.\n  Inputs: query (required).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "pages",
              "people",
              "posts",
              "videos",
              "locations"
            ],
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor.\nOptional for: pages, people, posts, videos.",
            "type": "string"
          },
          "end_time": {
            "description": "Filter posts before this date (YYYY-MM-DD).\nOptional for: posts.",
            "type": "string"
          },
          "fields": {
            "description": "Comma-separated list of response fields to include.\nOptional for: videos.",
            "type": "string"
          },
          "location_uid": {
            "description": "Location UID from action=locations, to limit results to a place.\nOptional for: pages, people, posts.",
            "type": "string"
          },
          "most_recent": {
            "description": "When \"true\", shows most recent videos first.\nOptional for: videos.",
            "type": "string"
          },
          "query": {
            "description": "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.",
            "type": "string"
          },
          "recent_posts": {
            "description": "When \"true\", shows only recent posts.\nOptional for: posts.",
            "type": "string"
          },
          "start_time": {
            "description": "Filter posts after this date (YYYY-MM-DD).\nOptional for: posts.",
            "type": "string"
          },
          "videos_live": {
            "description": "When \"true\", filters for live videos only.\nOptional for: videos.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "facebook_search"
    },
    {
      "description": "Instagram locations: posts tagged at a place, and nearby places.\n\nActions:\n- 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.\n  Inputs: location_id (required), tab (optional), end_cursor (optional).\n- 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.\n  Inputs: location_id (required).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "posts",
              "nearby"
            ],
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor for next page.\nOptional for: posts.",
            "type": "string"
          },
          "location_id": {
            "description": "Instagram location ID.\nRequired for: posts, nearby.",
            "type": "string"
          },
          "tab": {
            "description": "Filter: \"recent\" or \"ranked\".\nOptional for: posts.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "instagram_location"
    },
    {
      "description": "Instagram posts: full post details, or the shortcode from a post URL.\n\nActions:\n- 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.\n  Inputs: shortcode (required).\n- action=id: Extract the shortcode from an Instagram post or reel URL. action=details needs the shortcode. Pricing: 1 credit per call.\n  Inputs: link (required).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "details",
              "id"
            ],
            "type": "string"
          },
          "link": {
            "description": "Instagram post URL.\nRequired for: id.",
            "type": "string"
          },
          "shortcode": {
            "description": "Instagram post shortcode (e.g., DMF-GjGO0-q).\nRequired for: details.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "instagram_post"
    },
    {
      "description": "Instagram profiles: details, user ID, posts, reels, highlights and highlight stories.\n\nActions:\n- action=details: Get an Instagram profile by username: bio, follower and post counts, verification status and related profiles. Pricing: 1 credit per call.\n  Inputs: username (required), link (optional).\n- 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.\n  Inputs: link (optional), username (optional).\n- 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.\n  Inputs: username (optional), user_id (optional), end_cursor (optional).\n- 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.\n  Inputs: user_id (required), end_cursor (optional).\n- 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.\n  Inputs: user_id (required).\n- action=highlight_details: Get the stories inside one Instagram highlight. Needs a highlight_id from action=highlights. Pricing: 1 credit per call.\n  Inputs: highlight_id (required).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "details",
              "id",
              "posts",
              "reels",
              "highlights",
              "highlight_details"
            ],
            "type": "string"
          },
          "end_cursor": {
            "description": "Pagination cursor for next page.\nOptional for: posts, reels.",
            "type": "string"
          },
          "highlight_id": {
            "description": "Highlight ID (from profile highlights endpoint).\nRequired for: highlight_details.",
            "type": "string"
          },
          "link": {
            "description": "Instagram profile URL (alternative to username).\nOptional for: details, id.",
            "type": "string"
          },
          "user_id": {
            "description": "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.",
            "type": "string"
          },
          "username": {
            "description": "Instagram username, without the @. For posts it returns more results than user_id.\nRequired for: details. Optional for: id, posts.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "instagram_profile"
    },
    {
      "description": "Instagram Reels: the trending feed, or reels that use a given audio track.\n\nActions:\n- 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.\n  Inputs: clips_media_id (optional).\n- 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.\n  Inputs: audio_id (required), max_id (optional).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Which operation to run. See the tool description for what each action returns and which parameters it needs.",
            "enum": [
              "feed",
              "by_audio"
            ],
            "type": "string"
          },
          "audio_id": {
            "description": "Audio cluster ID (music ID).\nRequired for: by_audio.",
            "type": "string"
          },
          "clips_media_id": {
            "description": "Clip media ID for chaining/pagination (from previous response).\nOptional for: feed.",
            "type": "string"
          },
          "max_id": {
            "description": "Pagination cursor for next page.\nOptional for: by_audio.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "instagram_reels"
    },
    {
      "description": "Search Instagram by keyword and get the top matching users, hashtags and places. Use it to find a username, or a place's location_id for instagram_location (action=posts). Returns an end_cursor for more. Pricing: 1 credit per call.\nInputs: keyword (required), end_cursor (optional).",
      "inputSchema": {
        "properties": {
          "end_cursor": {
            "description": "Pagination cursor for next page",
            "type": "string"
          },
          "keyword": {
            "description": "Search keyword/query",
            "type": "string"
          }
        },
        "required": [
          "keyword"
        ],
        "type": "object"
      },
      "name": "instagram_search"
    }
  ]
}

What the leaf hashes

{"body":"9603a87c2c9a0f8548fb64ee986fa93f266b85deb0b0625ba1efc953937f5603","id":574330,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793141492915954,"prev":null,"subject":"09678844-7231-41d2-9659-a714a68359b3","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0x3c14bb0956698beae51237ec649d02641aa576bd6c8ef71754fa4c1a6cbb6165
  2. 0x3816d77f29cd9db72f2210d664a162231aa822b37a10ae01869559bb77636550
  3. 0xdc1f237f911901d15da7100308a84d886a1a52c604968b56bfb38964cae570ce
  4. 0x54df52bc2fa9787d68b75860d3e23ac66164d5321babed1ff1b44768b7f7b8e1
  5. 0x9b1300dea6f7cd9daad79c22ad089fad235015ff2b09425b93990a0932780bc4
  6. 0x887d6985a8833b14d6c96c617c2f8499f3aa32b7eb4fe8dc64aab23812c47d4f
  7. 0x86eddc7eb17a27f6fcf08dd0bc174cfa4a7468a018f513240f643f5d7d365ca0
  8. 0x3a12166e6afb905268dd116b23eb6675d6bc849747df382ef131de08b31f563d
  9. 0x3652280dd546c1c1d03dd5f080ec8af5ddaba5dd097371b2c3caf94d005eba7a
  10. 0x8981ebca6d19f9b04318ac5730e4bc2f41ad0338b640ee632559e5f20d8a5f7c
  11. 0x142ffc1d2025965a3e91857cd2d35ac599e5120c39272796b11f4a87c43bb99b
  12. 0x5bcdf911ebda5c6d942d996f5453cef161d2571921ceb388d7c8ffbdc925f4d0
  13. 0x9e70d944564843a0f0d88b623d628ff2e2ac17c172d4ebe0ed141fe8b9f9dae4
  14. 0x42784d9809d120654630ee1b254a1dd90a2bbd3024aa180f1a59bbf53e9316e4
  15. 0x8360ee1105e4d9f9312067cbbfd47c69c5948665ae582b9684a580c8f4e199e1
  16. 0x52efa60e0c3d8525486d2310eb3b6b566c9677c64fd1f819edb072cf101bcbdb
  17. 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON