Bluesky has no official MCP server for accounts. The install that wins depends on the job. cyanheads/bluesky-mcp-server is the best read-only pick: ten tools, a public host at https://bluesky.caseyjhand.com/mcp, and nine of those tools hit api.bsky.app with no login. pmcosta's hosted server at https://bluesky.pmcosta.dev/mcp is the best password-free poster, with 42 tools over AT Protocol OAuth. Breakreach is the best scheduler if Bluesky is one network among many, from $29 a month on the pricing page fetched 27 Oct 2026. gwbischof/bluesky-social-mcp and cameronrye/atproto-mcp still post through an app password. Trends MCP is not a Bluesky client and is first only when the job is keyword conversation via get_context source Bluesky.
Which Bluesky MCP wins each job?
cyanheads wins trends, feeds, threads, and quote posts. pmcosta wins account writes without pasting a password. Breakreach wins scheduled publishing across 20 networks. Trends MCP wins a phrase lookup that can include Bluesky plus up to four other conversation sources in one call.
There is still no first-party Bluesky account MCP. Bluesky PBC publishes the AT Protocol stack and the AppView at https://public.api.bsky.app. Third-party servers wrap that HTTP surface. The 6 Jun 2026 gallery embed discussion and the 8 Jun 2026 @bsky.app post raised the photo cap to 10. The older create-post guide still documents four images and a 1,000,000-byte blob. Servers that post media need to be checked against the gallery lexicon, not that 2023 blog.
| Server | Best for | Auth | Writes | Cursor install |
|---|---|---|---|---|
| cyanheads/bluesky-mcp-server | Trends, feeds, threads | None; app password only for bsky_search_posts | No | Hosted https://bluesky.caseyjhand.com/mcp |
| pmcosta (bluesky.pmcosta.dev) | Account actions without a password | AT Protocol OAuth, DPoP, 180-day sessions | Yes (42 tools) | https://bluesky.pmcosta.dev/mcp |
| Breakreach | Scheduled posts across networks | Bluesky OAuth, or Bearer br_ key | Yes | https://api.breakreach.com/mcp |
| gwbischof/bluesky-social-mcp | Local text, image, and video posts | Handle + app password | Yes (25 tools in the README) | uvx pin @v0.1 |
| cameronrye/atproto-mcp | Broad AT Protocol tool list | None, or ATPROTO_PASSWORD | Yes (README: 51 tools) | npx atproto-mcp |
| Trends MCP | Keyword talk on Bluesky plus other sources | Bearer tmcp_live_… key | No | https://api.trendsmcp.ai/mcp |
brianellin/bsky-mcp-server led GitHub stars at 51 on 27 Oct 2026, with 22 forks and 20 open issues. Last push was 21 Apr 2025. It still lists get-trends and create-post, and it still wants BLUESKY_APP_PASSWORD. Star count is not freshness.
Who posts to Bluesky vs who only reads?
Read-only servers never receive a session. Write servers either paste an app password into mcp.json or complete Bluesky's OAuth screen.
cyanheads is read-only. The README fetched 27 Oct 2026 lists ten tools: bsky_search_posts, bsky_get_profile, bsky_get_feed, bsky_get_author_feed, bsky_get_post_thread, bsky_get_post_quotes, bsky_search_actors, bsky_search_feeds, bsky_get_follows, bsky_get_trending. Nine of them call the public AppView. bsky_search_posts is registered only when BLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD are both set, because Bluesky refuses app.bsky.feed.searchPosts without a signed-in account. The GitHub API the same morning reported 2 stars, Apache-2.0, not archived, last push 23 Oct 2026. npm listed version 0.6.0 and 114 weekly downloads. Latest release v0.6.0 published 23 Oct 2026.
pmcosta's landing page, fetched 27 Oct 2026, states 42 tools covering posts, feeds, threads, search, follows, likes, reposts, bookmarks, drafts, notifications, preferences, and DMs. Scopes requested are atproto, transition:generic, and transition:chat.bsky. The page says there is no code path that accepts a Bluesky password or an app password. Destructive tools (account deletion, deactivation, app-password management, invite codes, server admin) are absent. No public SKU appeared on that page.
gwbischof/bluesky-social-mcp is the opposite trade: 16 stars, MIT, last push 23 May 2025, README pin @v0.1. The documented Cursor block is uvx from git+https://github.com/gwbischof/[email protected] with BLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD. Checked tools include send_post, send_image, send_images, send_video, likes, reposts, follows, mutes, timeline, and threads. Create the password at https://bsky.app/settings/app-passwords. Official create-post still shows com.atproto.server.createSession with that password.
cameronrye/atproto-mcp is the large stdio kit. GitHub API 27 Oct 2026: 10 stars, MIT, last push 17 Sep 2026, npm atproto-mcp 0.6.2 published 22 Jun 2026 with 59 weekly downloads. Zero-config is npx atproto-mcp. Authenticated mode uses ATPROTO_IDENTIFIER and ATPROTO_PASSWORD. The README claims 51 tools, including create_thread and DMs. Breakreach's 6 Oct 2026 comparison also counted 51.
Breakreach is a hosted social suite, not a Bluesky-only binary. The Bluesky MCP page checked 6 Oct 2026 and the pricing page fetched 27 Oct 2026 list Starter $29 a month for 5 social accounts ($23 billed yearly), Pro $49 for 15 ($39 yearly), Agency $69 for 50 accounts then $2 per extra account. Creating an account is free; scheduling and publishing need a plan. MCP lives at https://api.breakreach.com/mcp. The FAQ says the connector is included on every plan.
Bluesky's rate-limits page fetched 27 Oct 2026 still prices writes at 5,000 points per hour and 35,000 per day, with CREATE costing 3 points (1,666 records per hour). createSession is 30 per 5 minutes and 300 per day per account. cyanheads' README still says logins are "about 10 per day." Treat the Bluesky page as the cap, and treat the cyanheads note as that server's own caution.
How cyanheads ships Bluesky trends without an account
bsky_get_trending is the tool that maps onto Bluesky's own trending topics. It needs no password.
The README describes a snapshot of topics with display name, a one-sentence description, post count, category, status (hot, cooling, stale), start time, and up to 5 accounts driving each topic. Each trend carries a feedUri. bsky_get_feed then reads that generator. Discover is at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot. Default limit is 10, max 25, which the README calls Bluesky's own ceiling. There is no cursor. The upstream call is app.bsky.unspecced.getTrends, marked unstable.
Hosted Cursor JSON from that README:
{
"mcpServers": {
"bluesky-mcp-server": {
"type": "streamable-http",
"url": "https://bluesky.caseyjhand.com/mcp"
}
}
}
Local stdio, no Bun required:
{
"mcpServers": {
"bluesky-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/bluesky-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}
Add BLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD only if full-text post search is required. Without the pair, bsky_search_posts is missing from tools/list. A three-letter language code is rejected locally. hitsTotal is Bluesky's estimate, capped at 10,000. Post pages paginate with an opaque cursor, up to 100 results per call, with a 48,000-byte response budget.
Taproot at https://mcp.atproto.at/mcp is a different read-only job: resolve handles, DIDs, records, backlinks, and threads across any PDS, with no Bluesky session. It is not a trend board and it does not post. Skip it when the query is "talk to my Bluesky account."
get_context comments fill the first N Bluesky posts
Trends MCP is not in the cyanheads class. It has no Bluesky timeline tool, no create_post, and no bsky_get_trending. Bluesky is a get_context source only. It is absent from get_growth and from every get_top_trends type string in llms.txt last updated 27 Oct 2026.
The live MCP schema on 27 Oct 2026 still says get_context takes a keyword, one source or up to five comma-separated names, limit 1 to 20 (default 10), days 1 to 30 (default 7), and comments 0 to 5 (default 2) for YouTube, TikTok, Instagram, X, Reddit, Bluesky, and Hacker News. Cost on that schema: 1 request per source. The get_context page already mapped Bluesky rows to kind post and engagement keys likes, comments, shares, quotes.
A Trends MCP pull the same morning sent source Bluesky, keyword nintendo switch 2, limit 2, days 7, comments 1. The envelope returned window_days 7, count 2, both items kind post, AT-URI ids, bsky.app URLs, and engagement objects with those four keys. top_comments filled the first item only, with 3 replies. The second item's array was empty. comments 1 counted items that receive replies, not the number of replies. That matches the YouTube behavior documented on 26 Oct 2026. Do not treat comments as "N replies per post."
Cursor install from llms.txt last updated 27 Oct 2026:
{
"mcpServers": {
"trends-mcp": {
"url": "https://api.trendsmcp.ai/mcp",
"transport": "http",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
The homepage copy-config fetched the same morning still omitted transport. Use the llms.txt block for Cursor. REST POST https://api.trendsmcp.ai/api with mode get_context (alias context) is live even though that morning's llms.txt API table still listed three modes and pricing.md still omitted get_context from the request table. Markdown pricing: Free $0 / 100 requests, Starter $19 / 1,000, Pro $49 / 5,000, Business $199 / 25,000, yearly billed as two months free. HTML cards the same day showed yearly Starter $16 / $192, Pro $39 / $468, Business $159 / $1,910.
A six-source get_context list 400s with too_many_sources. Five is the ceiling. Pair Bluesky with X, Reddit, News, or GitHub when the question is "what are people saying," not "post this." For X-specific MCP clients, see the earlier Twitter MCP roundup.
How much the hosted Bluesky MCP options cost
cyanheads hosted and pmcosta hosted published no price on 27 Oct 2026. Treat them as free public endpoints until a SKU appears, and keep an app password off any shared host.
Breakreach is the priced hosted poster. Starter $29 / 5 accounts, Pro $49 / 15, Agency $69 / 50 then $2 per extra, Developer billed per account from $5 down to $2. Yearly Starter and Pro are $23 and $39 a month on the FAQ fetched 27 Oct 2026. The Bluesky MCP page says posting from ChatGPT or Claude through the connector does not count against Starter's 50 built-in assistant messages.
gwbischof, cameronrye, and brianellin are free software plus a Bluesky account. The meter is Bluesky's write-point budget, not a vendor invoice.
Trends MCP bills the account, not Bluesky. Free 100 requests a month, no card. Paid plans above. get_context is 1 request per source on the live tool description. Failed 400s are free per pricing.md.
FAQ
Is there an official Bluesky MCP server?
No account MCP from Bluesky PBC was listed in docs.bsky.app or the atproto repo on 27 Oct 2026. The public AppView at https://public.api.bsky.app is the HTTP API. cyanheads, pmcosta, gwbischof, cameronrye, brianellin, Breakreach, and Taproot are third-party.
Which Bluesky MCP should Cursor install first?
Install cyanheads' hosted URL if the agent only needs trends, profiles, feeds, and threads. Install pmcosta if it must like, reply, or DM without an app password in mcp.json. Install Breakreach if Bluesky posts go out beside other networks on a paid plan. Add Trends MCP only for keyword conversation across Bluesky and other sources.
Are Bluesky app passwords safe to put in mcp.json?
Safer than the account password: an app password cannot change sign-in settings, and it can be revoked at Settings → App passwords. It still acts as the account. Bluesky's create-post guide uses one for createSession. pmcosta and Breakreach avoid that paste by running OAuth instead. Do not put a DM-privileged app password on a public hosted reader.
Does Trends MCP post to Bluesky?
No. get_context source Bluesky returns recent posts for a keyword, with kind post and engagement likes, comments, shares, and quotes. There is no write tool. Default limit is 10, max 20. Comments apply to the first N items, 0 to 5.
Can one server do trends and posting?
cameronrye and brianellin expose both reads and writes behind an app password. pmcosta exposes both behind OAuth. cyanheads will not post. Trends MCP will not post. Two servers in Cursor is a normal split: cyanheads or pmcosta for the account, Trends MCP for the keyword.
Sources: cyanheads README and GitHub API 27 Oct 2026; npm @cyanheads/bluesky-mcp-server 0.6.0 and atproto-mcp 0.6.2 pages the same day; pmcosta landing page 27 Oct 2026; Breakreach /mcp/bluesky 6 Oct 2026 and /pricing 27 Oct 2026; gwbischof README pin @v0.1; Bluesky create-post guide, rate-limits page, gallery discussion #5032 (2 Jun 2026), and @bsky.app post 8 Jun 2026; Taproot developers page; Trends MCP llms.txt, pricing.md, HTML pricing cards, homepage copy-config, get_context docs, and a Bluesky get_context pull, all 27 Oct 2026.