Bluesky Social Search, Profiles & Post Threads MCP Server avatar

Bluesky Social Search, Profiles & Post Threads MCP Server

Pricing

Pay per usage

Go to Apify Store
Bluesky Social Search, Profiles & Post Threads MCP Server

Bluesky Social Search, Profiles & Post Threads MCP Server

Search Bluesky / AT Protocol posts, author feeds, actor profiles, follower ratios, and nested discussion threads via zero-proxy Batch JSON API or Standby MCP Server.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Mutualistic Labs

Mutualistic Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

MCP Server for AI Agents: Bluesky Social Search & Threads

An always-on Model Context Protocol (MCP) server and batch Actor for Bluesky (AT Protocol): full-text post search, author feeds, profiles with follower-to-following ratios and complete reply threads with parent context. Built for AI agents (Claude Desktop, Cursor, Windsurf, OpenAI Agents, LangChain), social listening, brand and topic monitoring, influencer research and conversation analysis.

No proxies, no browser, no logins, no cookies: only the public, unauthenticated AT Protocol AppView XRPC API is called (api.bsky.app, with automatic failover to public.api.bsky.app).

Features

  • Four modes: search_posts, author_feed, profiles, post_thread.
  • Post search with sort (latest or top), author, lang, tag, linked domain, since / until date range and engagement filters (min_likes, min_reposts, min_replies).
  • Author feeds for one or many handles, DIDs or https://bsky.app/profile/... URLs (up to 10), with the four feed filters.
  • Profiles with followers_count, follows_count, posts_count, follower_to_following_ratio, bio, labels and pinned post.
  • Full threads: parent chain (negative thread_depth), anchor post (0) and nested replies (1 to 10 levels).
  • Hashtags, links and mentions extracted from rich-text facets; images and link cards from embeds.
  • Resilient search: if searchPosts is blocked (401/403) on both hosts, the Actor falls back to actor search plus author feeds (source = search_fallback).
  • Deterministic de-duplication (uid), hard max_items and max_total_charge_usd caps.

What you get

record_typeModeWhat it is
postsearch_posts, author_feed, post_threadOne post (text, author, counters, hashtags, links, mentions, embed, reply context)
profileprofilesOne account (identity, bio, counters, follower ratio, labels, pinned post)

Endpoints

  • GET / and GET /health: readiness probe, returns {"status":"ok","actor":"bluesky-social-search-mcp",...}.
  • POST /mcp: MCP JSON-RPC 2.0 (initialize, ping, tools/list, tools/call).

Standby URL: https://mutualistic-housing--bluesky-social-search-mcp.apify.actor/mcp (authenticate with your Apify API token).

Input

FieldTypeDefault
modesearch_posts, author_feed, profiles, post_threadauthor_feed
actorsstring[] (handles, DIDs or profile URLs, 1 to 10)none (prefill bsky.app; author_feed/profiles fall back to bsky.app)
querystring, max 300 chars (required for search_posts; keyword filter in author_feed; actor search in profiles)none
sortlatest or top (mode search_posts)latest
feed_filterposts_with_replies, posts_no_replies, posts_with_media, posts_and_author_threadsposts_no_replies
post_urlsstring[] of post URLs, at:// URIs or handle/rkey pairs (mode post_thread, 1 to 25)none
thread_depthinteger 0 to 103
langlanguage code such as ennone
taghashtag without #, max 64 charsnone
domainlinked domain, mode search_postsnone
since, untilYYYY-MM-DD or ISO 8601 timestamp, mode search_postsnone
min_likes, min_reposts, min_repliesinteger >= 0 (0 means no filter)none
max_itemsinteger 1 to 50025
max_total_charge_usdnumber or nullno cap

An empty {} input runs: the 25 latest posts (without replies) of bsky.app. camelCase aliases (postUrls, threadDepth, feedFilter, minLikes, minReposts, minReplies, maxItems, maxTotalChargeUsd) are accepted. Invalid input is rejected with INVALID_INPUT_ZERO_CHARGE before any network call or charge.

Batch input examples

Top English posts about a topic with at least 10 likes:

{"mode": "search_posts", "query": "atproto", "sort": "top", "lang": "en", "min_likes": 10, "max_items": 50}

Recent posts of two accounts:

{"mode": "author_feed", "actors": ["jay.bsky.team", "https://bsky.app/profile/pfrazee.com"], "max_items": 40}

Profiles with follower ratios:

{"mode": "profiles", "actors": ["bsky.app", "danabra.mov", "simonwillison.net"]}

Find accounts by keyword:

{"mode": "profiles", "query": "machine learning", "max_items": 20}

Full discussion thread with 5 reply levels:

{"mode": "post_thread", "post_urls": ["https://bsky.app/profile/bsky.app/post/3mykvymup7s2l"], "thread_depth": 5}

MCP tools

{
"mcpServers": {
"bluesky": {
"url": "https://mutualistic-housing--bluesky-social-search-mcp.apify.actor/mcp",
"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
}
}
}
  • search_bluesky_posts: query (required), sort, actors, lang, tag, min_likes, min_reposts, min_replies, max_items (default 10).
  • get_author_feed: actors, feed_filter, query, min_likes, min_reposts, max_items.
  • get_bluesky_profiles: actors, query, max_items.
  • get_post_thread: post_urls (required), thread_depth, max_items.
  • list_preset_accounts: no arguments; lists the preset accounts (free).

Example calls:

curl -X POST "https://mutualistic-housing--bluesky-social-search-mcp.apify.actor/mcp" \
-H "Authorization: Bearer <APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_bluesky_posts","arguments":{"query":"atproto","sort":"top","max_items":5}}}'
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_author_feed","arguments":{"actors":["jay.bsky.team"],"max_items":10}}}
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_bluesky_profiles","arguments":{"actors":["bsky.app","pfrazee.com"]}}}
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_post_thread","arguments":{"post_urls":["https://bsky.app/profile/bsky.app/post/3mykvymup7s2l"],"thread_depth":3}}}
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"list_preset_accounts","arguments":{}}}

Output fields

post:

FieldMeaning
record_type, uidpost; deterministic SHA-256 identifier
uri, cid, rkey, post_urlAT URI, content id, record key and public bsky.app URL
author_did, author_handle, author_display_name, author_avatarAuthor identity (avatar is https only)
text, created_at, indexed_at, langsPost text, timestamps and declared languages
tags, urls, mentionsHashtags, https links and mentioned DIDs from the rich-text facets
like_count, repost_count, reply_count, quote_count, bookmark_countEngagement counters (non-negative integers)
engagement_totallike_count + repost_count + reply_count + quote_count (bookmarks excluded)
is_reply, reply_root_uri, reply_parent_uriReply context
embed_type, external_url, external_title, imagesimages, external, record, record_with_media, video or other; link card; full-size image URLs
thread_depthMode post_thread: negative = ancestor, 0 = anchor, positive = reply level; otherwise null
sourcesearch_posts, author_feed, post_thread or search_fallback

profile:

FieldMeaning
record_type, uidprofile; deterministic SHA-256 identifier
did, handle, display_name, descriptionIdentity and bio
avatar, banner, profile_urlImages (https only) and public profile URL
followers_count, follows_count, posts_countCounters (non-negative integers)
follower_to_following_ratiofollowers / follows rounded half-up to 2 decimals; null when follows_count is 0
created_at, indexed_atTimestamps
labels, pinned_post_uriLabel values (moderation and verification) and the pinned post
sourceget_profile or search_actors

Example post (shortened):

{
"record_type": "post", "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3mykvymup7s2l",
"post_url": "https://bsky.app/profile/bsky.app/post/3mykvymup7s2l", "author_handle": "bsky.app",
"text": "Hello from Bluesky #atproto", "created_at": "2026-10-20T12:00:00.000Z", "langs": ["en"], "tags": ["atproto"],
"like_count": 3968, "repost_count": 518, "reply_count": 2618, "quote_count": 5939, "bookmark_count": 627,
"engagement_total": 13043, "is_reply": false, "embed_type": null, "thread_depth": null, "source": "author_feed", "uid": "<sha256>"
}

Preset accounts

Use the handle in actors; any other handle, DID or profile URL works too.

HandleAccountCategory
bsky.appBluesky Officialplatform
jay.bsky.teamJay Graberleadership
pfrazee.comPaul Frazeeprotocol
danabra.movDan Abramovengineering
simonwillison.netSimon Willisonai
karpathy.bsky.socialAndrej Karpathyai

Security and limits

  • Allowlisted hosts only: outbound requests go exclusively to api.bsky.app and public.api.bsky.app over https. Redirects to any other host, non-https redirects, credentials in URLs and non-443 ports are rejected.
  • SSRF protections: IP literals, localhost, .local and .internal names are never accepted as actors; DNS results (and the connected peer address, checked before any body is read) that are loopback, private, link-local, CGNAT, NAT64, 6to4, Teredo, multicast or unspecified are refused. Resolved IP addresses never appear in error messages.
  • Bounds: at most 500 items per run, 10 actors per call, 25 post URLs in mode post_thread, a 120 s global batch deadline, a 45 s deadline per MCP tool call, a 15 s per-request timeout (connect, TLS, headers and body) and a 2 MiB response size cap.
  • MCP server: request bodies above 64 KiB return 413, POST /mcp requires Content-Type: application/json (415 otherwise) and at most 8 concurrent tool calls run (503 when busy).
  • Untrusted content: post text, display names and bios are user-generated. Sanitize them before rendering them in a browser or UI.
  • Unknown or deleted accounts and posts return an error entry for that actor or post; rate limits (429) and 5xx responses are retried with back-off, and per-actor failures never abort other actors.

Pricing

Pay per event: $0.001 per result-item (result-item: one de-duplicated post or profile, as a dataset item or an MCP tool result row); the actor-start event is free and list_preset_accounts is free. max_items and max_total_charge_usd are hard caps enforced in code, so a run never charges more than you configure. Invalid input and empty results are never charged.

ActorCoversStoreStandby MCP URL
Multi-ATS Career Jobs Search MCPGreenhouse, Lever, Ashby, SmartRecruiters, Workablehttps://apify.com/mutualistic_housing/multi-ats-career-jobs-mcphttps://mutualistic-housing--multi-ats-career-jobs-mcp.apify.actor/mcp
Google Ads Transparency & Ad Spy MCPSearchCreatives, SearchSuggestions, content.js ad-copy & video metadatahttps://apify.com/mutualistic_housing/google-ads-transparency-mcphttps://mutualistic-housing--google-ads-transparency-mcp.apify.actor/mcp
Multi-Engine Keyword & Autocomplete MCPGoogle, YouTube, Amazon, Bing, DuckDuckGo, Brave + google:suggestrelevance & search intenthttps://apify.com/mutualistic_housing/keyword-autocomplete-mcphttps://mutualistic-housing--keyword-autocomplete-mcp.apify.actor/mcp
Discourse Forum Search & Threads MCPcommunity.openai.com, discuss.huggingface.co, meta.discourse.org + any public Discoursehttps://apify.com/mutualistic_housing/discourse-forum-mcphttps://mutualistic-housing--discourse-forum-mcp.apify.actor/mcp
Google Trends Realtime & Entities MCPi0OFE realtime trends, trending/rss news, Knowledge Graph autocomplete entitieshttps://apify.com/mutualistic_housing/google-trends-realtime-mcphttps://mutualistic-housing--google-trends-realtime-mcp.apify.actor/mcp
Substack Newsletter, Posts & Podcast MCPPublication search, archives & within-newsletter search, full post Markdown, podcast audio URLshttps://apify.com/mutualistic_housing/substack-newsletter-mcphttps://mutualistic-housing--substack-newsletter-mcp.apify.actor/mcp
Shopify Store Catalog & Search MCPProducts, variants/SKU/price/availability, collections, predictive search on any public Shopify storehttps://apify.com/mutualistic_housing/shopify-store-catalog-mcphttps://mutualistic-housing--shopify-store-catalog-mcp.apify.actor/mcp
Bluesky Social Search & Threads MCPPost search, author feeds, profiles & follower ratios, full reply threads via public AT Protocol AppViewhttps://apify.com/mutualistic_housing/bluesky-social-search-mcphttps://mutualistic-housing--bluesky-social-search-mcp.apify.actor/mcp