Skip to main content
Glama
subimpact

subimpact-data-mcp

Official

bluesky

Scrape posts, profiles, threads, and follower graphs by keyword, hashtag, or handle without login, returning structured JSON/CSV data for analysis.

Instructions

Bluesky Scraper API — Posts, Profiles, Threads & Followers

Scrape Bluesky posts, profiles, threads, and follower graphs by keyword, hashtag, or handle. No login required. Fast AT Protocol API, JSON/CSV export, pay only per result.

Pricing (pay per event, billed to your Apify account): Post scraped: $0.001; Profile scraped: $0.002; platform usage billed to your account.

Runs on Apify as subimpact/bluesky-scraper-api.

Input Schema

NameRequiredDescriptionDefault
modeYesWhat to scrape: search (posts by keyword/hashtag), author_feed (recent posts by a handle), thread (full thread with nested replies), profile (profile metadata), followers (follower graph), follows (following list).search
sortNoSort order for search mode: 'latest' (chronological) or 'top' (highest engagement).latest
queryNoKeyword, hashtag, or query string (e.g. 'artificial intelligence', '#bluesky', 'startup'). Required in 'search' mode.artificial intelligence
handleNoBluesky handle (e.g. 'bsky.app', 'jay.bsky.team') or DID ('did:plc:...'). Required in author_feed, profile, followers, follows modes.
postUriNoFull AT-URI ('at://did:plc:.../app.bsky.feed.post/...') or web URL ('https://bsky.app/profile/.../post/...'). Required in 'thread' mode.
maxItemsNoMaximum number of posts or profiles to scrape. Pay-per-event charges only for items successfully extracted.
_maxItemsNoHow many dataset items to return to the model (1-1000, default 50). Truncates the response only; it does not change what the Actor collects or charges for.
_maxChargeUsdNoPer-run spending cap in USD (default 0.5). Passed to Apify as the run option maxTotalChargeUsd, so the run stops when it reaches this charge.
includeRepliesNoWhen in 'thread' mode, whether to recursively traverse and extract nested reply posts.
proxyConfigurationNoSelect Apify Proxy (RESIDENTIAL recommended for high-volume author feeds or searches to avoid rate limits).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses 'No login required', that it runs on Apify as subimpact/bluesky-scraper-api, and an explicit pay-per-event cost model ($0.001/post, $0.002/profile plus platform usage). What's missing is behavior on failure/rate limits (only hinted at in the proxyConfiguration schema field) and what the response looks like.

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 the capability statement, then a compact pricing/mode block. The pricing lines earn their place because cost is behaviorally important, though the 'Posts, Profiles, Threads & Followers' heading slightly duplicates the body sentence.

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

Completeness3/5

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

For a 10-parameter tool with no output schema and no annotations, the description covers cost, auth, and platform but never says what a scraped item contains (post text, engagement counts, author fields, etc.) or how results are paginated. An agent can invoke it, but cannot predict the return shape.

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%, so the baseline is 3. The description's only added semantic value is tying per-item pricing to what gets scraped, which helps an agent reason about maxItems, but it adds nothing about the mode/handle/postUri relationships beyond what the schema already spells out.

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?

Starts with a specific verb+resource statement: 'Scrape Bluesky posts, profiles, threads, and follower graphs by keyword, hashtag, or handle.' The mode enum and description map cleanly onto those resources, so an agent knows exactly what the tool retrieves and for which platform.

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 no explicit when-to-use/when-not guidance relative to the sibling tools (google_search, youtube, tiktok_hashtag, etc.), even though those are clearly adjacent social/search scrapers. Usage context is only implied by the mode list ('search', 'author_feed', 'thread'), which lives in the schema rather than the description.

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