Skip to main content
Glama
Bluesky Posts Scraper MCP Server

Bluesky Posts Scraper MCP Server

Bluesky Posts Scraper MCP Server

MCP Registry npm version npm downloads license

An MCP server for the Mamba Labs Bluesky Posts Scraper actor on Apify. Bluesky posts by keyword or account, and replies by post.

What's Inside

Related MCP server: AT Protocol MCP Server

What it does

Give keywords, accounts, or post addresses. The actor reads Bluesky's public API with no login and no key, and returns one row per post or reply with exact counts, dates, hashtags, links, and images. A free status row per source says what it returned or why it stopped.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-bluesky-posts-scraper": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-bluesky-posts-scraper"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The get_bluesky_posts tool appears.

Prerequisites

Example prompts

  • "What are people saying on Bluesky about cold email this month?"

  • "Get the last 50 posts from this Bluesky account with their like counts."

  • "Read the replies on this Bluesky post into a table."

Tool

get_bluesky_posts. One tool. Example arguments:

{
  "queries": [
    "apify"
  ],
  "max_posts_per_source": 10
}

Inputs

Every buyer facing input of the actor. Omitted inputs take the actor's own defaults.

Input

Type

Required

Description

queries

array

no

Keywords to search, up to 20. Without your own app password each search returns one page, about 100 posts. Text from Clay splits on new lines, so a query can hold a comma.

authors

array

no

Bluesky handles, profile addresses, or DIDs, up to 20. Returns each account's own posts, newest first.

post_urls

array

no

Addresses of Bluesky posts to read, up to 100.

sort

string

no

latest or top. Default latest. Used for queries.

since_date

string

no

Only posts from this date, such as 2026-10-01.

until_date

string

no

Only posts before this date, such as 2026-11-01.

language

string

no

Language code such as en or de. Used for queries. Reads the language the post's author set.

max_posts_per_source

number

no

Per query or account, up to 2000. Default 100. A search with no app password stops at about 100.

include_replies

boolean

no

yes or no. Default no. Reads the replies under each post found. Each reply is a charged row.

max_replies_per_post

number

no

Up to 200. Default 20.

include_account_replies

boolean

no

yes or no. Default no. Used for accounts.

include_reposts

boolean

no

yes or no. Default no. Used for accounts. A repost row shows the original author.

bluesky_handle

string

no

Optional, with the app password. Used only to page a search past its first page.

bluesky_app_password

string

no

Optional. Create an app password in Bluesky settings; never use your main password. Sent only to Bluesky. Without it a search returns one page, about 100 posts. Accounts and post addresses need no password.

max_charge_usd

string

no

Optional. The run stops before a charge that would pass this amount. Summary rows are always returned.

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

Event

Free plan

Bronze

Silver

Gold

post-row, one post or reply

$0.0011

$0.001045

$0.00099

$0.000935

apify-actor-start, per run start

$0.0065

$0.0065

$0.0065

$0.0065

Source status rows and refused input are free. Mamba Labs pays the platform costs of the run. Mamba Labs pays the platform costs of the run, Apify proxy traffic included.

Full actor documentation

apify.com/mambalabs/bluesky-posts-scraper

License

MIT. See LICENSE.

Available Tools

1 tool
get_bluesky_postsGet Bluesky postsA
Read-onlyIdempotent

Search public Bluesky posts by keyword, read an account's posts, or read a post and its replies. Returns exact like, reply, repost, and quote counts, dates, hashtags, links, and images. No login. Pay per event on Apify.

NameRequiredDescriptionDefault
sortNolatest or top. Default latest. Used for queries.
authorsNoBluesky handles, profile addresses, or DIDs, up to 20. Returns each account's own posts, newest first.
queriesNoKeywords to search, up to 20. Without your own app password each search returns one page, about 100 posts. Text from Clay splits on new lines, so a query can hold a comma.
languageNoLanguage code such as en or de. Used for queries. Reads the language the post's author set.
post_urlsNoAddresses of Bluesky posts to read, up to 100.
since_dateNoOnly posts from this date, such as 2026-10-01.
until_dateNoOnly posts before this date, such as 2026-11-01.
bluesky_handleNoOptional, with the app password. Used only to page a search past its first page.
max_charge_usdNoOptional. The run stops before a charge that would pass this amount. Summary rows are always returned.
include_repliesNoyes or no. Default no. Reads the replies under each post found. Each reply is a charged row.
include_repostsNoyes or no. Default no. Used for accounts. A repost row shows the original author.
bluesky_app_passwordNoOptional. Create an app password in Bluesky settings; never use your main password. Sent only to Bluesky. Without it a search returns one page, about 100 posts. Accounts and post addresses need no password.
max_posts_per_sourceNoPer query or account, up to 2000. Default 100. A search with no app password stops at about 100.
max_replies_per_postNoUp to 200. Default 20.
include_account_repliesNoyes or no. Default no. Used for accounts.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered by structured data. The description adds genuinely new operational context: no login required and Apify per-event pricing, which the agent needs to reason about cost and auth. It does not mention search pagination limits, but the schema covers that.

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?

Four short, front-loaded sentences: modes first, then returned fields, then auth, then pricing. Every sentence carries information and nothing is repeated from the schema. Minor terseness in fragments like 'No login. Pay per event on Apify.' but no wasted wording.

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 15 parameters and no output schema, the description does the right work: it names the return fields (like/reply/repost/quote counts, dates, hashtags, links, images) so the agent knows what comes back, and it flags the no-login and pay-per-event constraints. The app-password gating of multi-page search is left to the schema, which is a small omission but not a blocking one.

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% with 15 richly documented optional parameters, so the baseline is 3. The description earns an extra point by framing the three modes, which helps the agent decide between the otherwise indistinguishable queries, authors, and post_urls inputs.

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 ('Search public Bluesky posts') and enumerates the three distinct operating modes: keyword search, account timeline, and single post plus replies. An agent immediately knows the tool's scope 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 Guidelines4/5

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

The three modes are clear use contexts and implicitly map to the queries / authors / post_urls parameters, giving the agent a routing decision. It does not explicitly say which parameter triggers which mode, and there are no sibling tools to differentiate against, so no exclusion guidance is needed.

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 updatev1.0.1
    • First observedget_bluesky_posts

TDQS

A4.1/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is nothing to confuse it with. The description clearly defines its three modes: keyword search, account feed reading, and post plus replies retrieval.

Naming Consistency4/5

get_bluesky_posts follows a clear verb_noun convention and is readable, though 'get' combined with a plural noun covers multiple read modes, which is slightly imprecise but harmless for a single tool.

Tool Count2/5

A single tool that multiplexes three distinct operations—search, account timeline, and thread reading—is too thin for the stated purpose. Separate tools per mode would make the surface clearer.

Completeness3/5

Reading posts, replies, and search are covered, which matches the scraper's read-only domain, so no create/update/delete gap applies. However, no paging or filtering controls are exposed, and bundling three operations into one tool leaves notable gaps in usability.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Bluesky social network through optimized, token-efficient tools for posting, replying, searching, and managing social relationships. Features Windows-compatible implementation with context cleanup to minimize LLM token consumption.
    8
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLMs to interact with the AT Protocol ecosystem, including Bluesky, through natural language. Supports public data access without authentication and full write operations with authentication.
    51
    136 npm
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables search, reading, and posting to Bluesky from any MCP client; features 11 tools (5 read, 6 write) with gated writes requiring explicit confirmation to prevent accidental publishing.
    11
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Bluesky social network through the AT Protocol, including searching posts, fetching profiles, browsing feeds, and retrieving threads and follower data.
    141 npm
    MIT