Skip to main content
Glama
sostag

ScrapingBot MCP Server

by sostag

Scrape a social media page

scrape_social_media
Read-only

Extracts public profiles, posts, and search results from Instagram, TikTok, Facebook, LinkedIn, X/Twitter, and Threads by selecting a scraper and providing its inputs.

Instructions

Scrape a public social media profile, post or search (Instagram, TikTok, Facebook, LinkedIn, X/Twitter, Threads). Always use this tool for these networks, never scrape_raw_html. Choose the scraper and give its inputs: instagramProfile (account (name or profile URL); returns the 12 latest posts), instagramPost (url), tiktokProfile (url), tiktokHashtag (hashtag; max_video_count), facebookProfile (url; load_more_items_count), facebookPost (url), facebookOrganization (url), facebookMarketplaceItem (url; country), facebookMarketplaceSearch (keyword, city, country; items_limit), linkedinProfile (url; language), linkedinCompanyProfile (url; language), linkedinPost (url), linkedinSearchResult (keywords; page, language), twitterProfile (url; number_of_tweets), twitterSearch (search; posts_max_count), threadsProfile (url), threadsPost (url). Waits for the result for about a minute, otherwise returns a responseId for get_social_media_result: use that tool to wait longer, as calling this one again is billed again. Costs 30 credits; failed requests are refunded.

Input Schema

NameRequiredDescriptionDefault
urlNoProfile, post or page URL
cityNo
pageNo
searchNotwitterSearch
accountNoinstagramProfile: account name or profile URL
countryNo
hashtagNo
keywordNofacebookMarketplaceSearch
scraperYes
keywordsNolinkedinSearchResult
languageNo
items_limitNo
max_video_countNo
posts_max_countNo
number_of_tweetsNo
load_more_items_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.1
    • removedInput schema / properties / posts_number
      Removed value: -{
      -  "exclusiveMinimum": 0,
      -  "type": "integer"
      -}
  2. First observedv1.0.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: ~1 minute wait, a responseId fallback, the warning that re-calling bills again, a 30-credit cost, and refunded failures. Those billing and timeout traits are exactly what an agent needs before committing to a call.

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 purpose, then the routing rule, then the scraper inventory — good ordering with no filler. It is a dense single block, though; the 17-value enumeration would scan faster as a list, and repeated parenthetical syntax makes it a wall of text.

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 16-parameter, no-output-schema tool this is complete: it covers per-scraper inputs, cost, timing, failure/refund behavior, and the recovery tool. Nothing an agent needs to call it once and correctly appears to be 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 coverage is only 31% with 16 parameters, so the description carries the load — and it does, by mapping each scraper enum value to the specific inputs it consumes (e.g. 'facebookMarketplaceSearch (keyword, city, country; items_limit)'). Remaining gaps are minor: no default values, no stated behavior for irrelevant parameters passed alongside a scraper, and no format hints for 'page' or 'language'.

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 ('Scrape a public social media profile, post or search') and names all six supported networks. It also explicitly separates itself from the scrape_raw_html sibling, so an agent can route correctly without opening a 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?

Gives an explicit exclusion ('Always use this tool for these networks, never scrape_raw_html') and a follow-up path for the timeout case ('use get_social_media_result ... calling this one again is billed again'). Both when-to-use and when-not-to-use are covered, along with the named alternative.

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