What is this?
bluesky-mcp is a Model Context Protocol server for managing a Bluesky account from an AI assistant: post, reply, like, repost, follow/unfollow, search, and read your timeline and notifications.
It uses the official AT Protocol API with a handle + app password — no OAuth app, no approval process, and it works fine with 2FA enabled since it never touches your real account password.
This is the last of a four-part series — minecraft-mcp-server, streamlabs-mcp, and devto-mcp were covered in the previous three posts, all published (and promoted) using these exact tools.
Tools exposed
| Tool | Does |
|---|---|
bluesky_get_timeline |
Get your home feed |
bluesky_get_author_feed |
Get a user's posts |
bluesky_search_posts |
Search public posts |
bluesky_get_post |
Get post details, incl. the cid needed to like/repost |
bluesky_get_profile |
Get profile info |
bluesky_get_followers / bluesky_get_following
|
List a user's followers / follows |
bluesky_get_notifications / bluesky_mark_notifications_read
|
Read/clear notifications |
bluesky_resolve_handle |
Look up a DID from a handle |
bluesky_post |
Post, optionally as a reply |
bluesky_delete_post |
Delete your own post |
bluesky_like / bluesky_unlike
|
Like / undo a like |
bluesky_repost / bluesky_unrepost
|
Repost / undo a repost |
bluesky_follow / bluesky_unfollow
|
Follow / unfollow (by DID) |
For the "un-" actions, pass the AT-URI of the record itself (the like/repost/follow record, returned in viewer.like / viewer.repost / viewer.following on posts and profiles) — not the original post or account's URI.
Getting started
git clone https://github.com/AhmadTariq1337/bluesky-mcp.git
cd bluesky-mcp
npm install
cp .env.example .env
Add your handle and an app password to .env (get one from Bluesky: Settings → Privacy and Security → App Passwords), then register it as an MCP server in your client's config — for Claude Desktop that's claude_desktop_config.json:
"bluesky": {
"command": "node",
"args": ["/absolute/path/to/bluesky-mcp/index.js"]
}
Fully quit and reopen your client (not just close the window) so it picks up the new server.
Bonus: standalone CLI
There's also a one-off post.js script for firing a single post from the terminal without going through an AI assistant:
node post.js "Just shipped a new project, check it out!"
Prints a link to the live post. 300-character limit, checked before sending.
Security
.env holds your real handle and app password, and is gitignored. App passwords are scoped and revocable from Bluesky's settings, unlike your main account password.
Links
- Repo: https://github.com/AhmadTariq1337/bluesky-mcp
- MIT licensed. Issues and PRs welcome.
That wraps the series — four MCP servers (minecraft-mcp-server, streamlabs-mcp, devto-mcp, bluesky-mcp), all open source, all MIT licensed, all usable from any MCP-compatible client.
Top comments (0)