Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables search, reading, and posting to Bluesky from any MCP client; features 11 tools (5 read, 6 write) with gated writes requiring explicit confirmation to prevent accidental publishing.

README.md

Bluesky MCP Server

 ██████╗ ███████╗██╗  ██╗██╗   ██╗
 ██╔══██╗██╔════╝██║ ██╔╝╚██╗ ██╔╝
 ██████╔╝███████╗█████╔╝  ╚████╔╝
 ██╔══██╗╚════██║██╔═██╗   ╚██╔╝
 ██████╔╝███████║██║  ██╗   ██║
 ╚═════╝ ╚══════╝╚═╝  ╚═╝   ╚═╝

<div align="center">

!TypeScript !Node.js !MCP !npm !License

Search, read, and post to Bluesky from any MCP client — a thin server over the @kud/bsky AT Protocol library.

FeaturesQuick StartToolsDevelopment

</div>

🌟 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.

🚀 Quick Start

Prerequisites

  • Node.js 20+
  • A Bluesky account and an App Password (Settings → App Passwords)

Installation

npx @kud/mcp-bsky

Claude 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_posts | Search Bluesky for posts matching a query | | timeline | The authenticated user's home timeline | | notifications | The authenticated user's notifications | | profile | A profile by handle or DID | | thread | A post and its replies |

✍️ Write — gated by confirm: true (6 tools)

| Tool | Description | | ------------- | --------------------------------------------------------- | | post | Publish a post | | thread_post | Publish a self-thread (each post replies to the previous) | | reply | Reply to a post | | like | Like a post | | repost | Repost a post | | follow | 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 test

| Script | Description | | --------------------- | --------------------------------------- | | npm run build | Compile TypeScript to dist/ | | npm run dev | Run from source via tsx | | npm test | Run the vitest suite | | npm run inspect:dev | 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:

  1. Sign in at bsky.appSettings → App Passwords → Add App Password.
  2. Set BLUESKY_HANDLE (e.g. you.bsky.social) and BLUESKY_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/bsky
  • Validation: zod

📄 License

MIT — see LICENSE.

🙏 Acknowledgments

<div align="center">

Made with ❤️ for the terminal

⭐ Star this repo if it helped you!

</div>

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Search servers.