Labsco
MCP SERVER

Bluesky MCP

by Ravishka17

Full Bluesky and AT Protocol access over Streamable HTTP, with credentials passed per request and never stored.

Social Media Accounts & Posting
Summary
The credential model is why you would pick this one.

Because the server is stateless and takes the handle and app password on each request, one deployment can serve several people without any of them handing it a stored secret — and revoking is just deleting the app password. Worth knowing before you connect it: the catalog reaches past posting into account control, with `delete_account` and `deactivate_account` sitting in the same list as `get_timeline`.

What it is

A TypeScript MCP server for Bluesky that you deploy to Vercel yourself and reach over Streamable HTTP. It covers the ordinary social surface — posting, timelines, threads, search, profiles, bookmarks — and also the account-management side of a PDS, including sessions, invite codes and app passwords. Reads mostly work unauthenticated; anything that writes needs credentials.

What you get
  • `create_post`, `like_post` and `repost_post` write to the timeline; `get_posts`, `get_likes` and `get_reposted_by` read it back
  • `get_timeline`, `get_feed`, `get_author_feed` and `get_thread` cover home feed, feed generators, one author and a full conversation
  • `search_posts`, `search_actors` and `search_actors_typeahead` search posts and people
  • `get_profile` and `get_profiles` fetch one profile or a batch of up to 25
  • `create_bookmark`, `delete_bookmark` and `get_bookmarks` manage private bookmarks
  • `create_session`, `refresh_session`, `list_app_passwords` and `create_app_password` handle sessions and credentials
  • `create_invite_code`, `create_invite_codes` and `get_account_invite_codes` run invites for a PDS
Requirements

Deploy it yourself — clone and run `vercel`, then point your client at `https://your-app.vercel.app/mcp`. Authentication is a Bluesky handle plus an app password created under Settings, sent per request as headers: either `X-BLUESKY-IDENTIFIER` and `X-BLUESKY-PASSWORD` separately, `X-BLUESKY-CREDENTIALS` as one combined value, or an `Authorization: Bearer` header. Nothing is written to Vercel env vars or disk; credentials live in memory for the length of the request.

Setup effort

One command plus a key — claude mcp add bluesky --transport http https://your-app.vercel.app/mcp, then supply credentials