Bluesky MCP Server
Search, read, and post to Bluesky from any MCP client, including managing profiles, threads, notifications, and performing write actions like posting, replying, liking, reposting, and following.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bluesky MCP Serversearch for recent posts about TypeScript"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bluesky MCP Server
██████╗ ███████╗██╗ ██╗██╗ ██╗
██╔══██╗██╔════╝██║ ██╔╝╚██╗ ██╔╝
██████╔╝███████╗█████╔╝ ╚████╔╝
██╔══██╗╚════██║██╔═██╗ ╚██╔╝
██████╔╝███████║██║ ██╗ ██║
╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
Search, read, and post to Bluesky from any MCP client — a thin server over the @kud/bsky AT Protocol library.
Features • Quick Start • Tools • Development
🌟 Features
App-password auth — uses your Bluesky App Password via
BLUESKY_HANDLE/BLUESKY_APP_PASSWORD(shared with@kud/bsky-cli).11 tools — 5 read, 6 write.
Writes are gated — every posting/engagement tool requires an explicit
confirm: true, so an agent can never publish by accident.Thin wrapper — each tool is one line over
@kud/bsky; the API logic lives in the core library, not here.TypeScript, ESM, zero business logic —
@modelcontextprotocol/sdk+zod.
Related MCP server: mcpbluesky
🚀 Quick Start
Prerequisites
Node.js 20+
A Bluesky account and an App Password (Settings → App Passwords)
Installation
npx @kud/mcp-bskyClaude Desktop / Claude Code
{
"mcpServers": {
"bsky": {
"command": "npx",
"args": ["@kud/mcp-bsky"],
"env": {
"BLUESKY_HANDLE": "you.bsky.social",
"BLUESKY_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
}
}
}
}✅ Restart your client and the bsky tools appear.
🛠️ Available Tools
🔭 Read (5 tools)
Tool | Description |
| Search Bluesky for posts matching a query |
| The authenticated user's home timeline |
| The authenticated user's notifications |
| A profile by handle or DID |
| A post and its replies |
✍️ Write — gated by confirm: true (6 tools)
Tool | Description |
| Publish a post |
| Publish a self-thread (each post replies to the previous) |
| Reply to a post |
| Like a post |
| Repost a post |
| Follow an account |
Total: 11 tools covering the core Bluesky workflow.
💬 Example Conversations
You: "What are people saying about the AT Protocol on Bluesky?"
AI: *calls search_posts → summarises the latest posts*
You: "Post 'shipped a new MCP server 🦋' to my Bluesky."
AI: *calls post with confirm: true → returns the post URL*
You: "Reply to that thread and like the original."
AI: *calls reply and like (confirm: true) → done*🧪 Development
git clone https://github.com/kud/mcp-bsky.git
cd mcp-bsky
npm install
npm run build
npm testScript | Description |
| Compile TypeScript to |
| Run from source via tsx |
| Run the vitest suite |
| Launch the MCP Inspector against source |
Test against source with the Inspector:
export BLUESKY_HANDLE=you.bsky.social
export BLUESKY_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx
npm run inspect:dev🔐 Authentication
This server reads two environment variables — @kud/bsky's contract, intentionally not MCP_-prefixed so the credentials are shared with @kud/bsky-cli:
Sign in at bsky.app → Settings → App Passwords → Add App Password.
Set
BLUESKY_HANDLE(e.g.you.bsky.social) andBLUESKY_APP_PASSWORD(the generated app password — never your main password).
📊 Tech Stack
Runtime: Node.js 20+
Language: TypeScript (ESM)
Protocol: Model Context Protocol (
@modelcontextprotocol/sdk)Core:
@kud/bskyValidation: zod
📄 License
MIT — see LICENSE.
🙏 Acknowledgments
Made with ❤️ for the terminal
⭐ Star this repo if it helped you!
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kud/mcp-bsky'
If you have feedback or need assistance with the MCP directory API, please join our Discord server