bluesky-mcp
{
"answer": "bluesky-mcp is a Bluesky/AT Proto MCP server that provides a human-approved, dry-run-first outbox client for managing social media content over MCP and REST.\n\n- Compose & publish: Create posts with text and media attachments, reply to existing posts, repost content, and set visibility — all via the bluesky_social portmanteau tool.\n- Human-approved outbox workflow: Enqueue drafts (outbox_enqueue), list/approve pending drafts, and publish — nothing goes live without explicit approval. Includes a rich UI card (show_outbox_card) to visualize the queue.\n- Dry-run default: Operations run in preview mode by default, so you can review actions before they actually post.\n- Timelines & notifications: Pull home timelines and other feeds, plus read Bluesky notifications (mentions, replies, follows, etc.).\n- Webhooks: Inbound webhook support secured by a shared secret for event delivery.\n- Webapp: A full SOTA web interface (Dashboard, Inbox, Outbox, AI-assisted Compose, Chat, Skills, Tools, Settings, Help) served on a companion port.\n- Fleet PR integration: Handoff promotion drafts from fleet-public-relations-mcp through the outbox.\n- Server utilities: bluesky_help for introspection (version, ports, tools, outbox flow), bluesky_shutdown for graceful shutdown, and SQLite-backed stateful storage for the outbox queue and webhook event log.\n- MCP transport: Available via stdio (Claude Desktop / Cursor) or HTTP (127.0.0.1:10760/mcp)."
}
Provides tools for interacting with Bluesky (AT Protocol) to compose and manage posts, replies, reposts, media, timelines, notifications, and webhooks, including a human-approved outbox for promotion drafts.
Click on "Deploy 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 post a hello world message to my timeline"
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
Bluesky / AT Proto client — compose, timelines, and a human-approved outbox for promotion drafts from fleet-public-relations-mcp.
v0.1.1 · Ports 10760 / 10761 · Sibling of discord-mcp · ActivityPub sibling mastodon-mcp
FastMCP 3.4+ · full portmanteau (reply/repost/media/webhooks) · SOTA webapp · dry-run default · Windows CI + local
just ci
Bluesky = AT Proto. Not Mastodon / ActivityPub.
Principle
Agents draft. Humans approve. Nothing posts without outbox approve → publish.
Tone: FLEET_PROMOTION.md.
Related MCP server: Bluesky MCP Server
Features
Human-approved outbox + fleet-PR REST handoff
Full
bluesky_socialops: post, reply, Repost, media, timelines, notifications, webhooksDark SOTA webapp: Dashboard, Inbox, Outbox, Compose (AI assist), Chat, Skills, Tools, Settings, Help
Dry-run default; inbound webhooks with shared secret
Ruff + Biome + pytest gate; Windows-only CI workflow
Stack
Layer | Tech |
Backend | FastAPI + FastMCP 3.4 (uvicorn, pydantic v2, httpx) |
Webapp | React 18 + Vite + TailwindCSS + Lucide + Framer Motion + Zustand + TanStack Query |
Storage | SQLite outbox + webhook event log |
Desktop | Tauri 2 (NSIS installer, embedded PyInstaller backend) |
Quality | ruff, biome, pyright, pytest + pytest-cov, Playwright e2e |
Quick start
cd D:\Dev\repos\bluesky-mcp
Copy-Item .env.example .env
# Edit BLUESKY_INSTANCE + BLUESKY_ACCESS_TOKEN
.\start.batDashboard: http://127.0.0.1:10761 · MCP: http://127.0.0.1:10760/mcp
Claude Desktop / Cursor MCP config (stdio):
{
"mcpServers": {
"bluesky-mcp": {
"command": "uv",
"args": ["run", "--directory", "D:\\Dev\\repos\\bluesky-mcp", "python", "-m", "bluesky_mcp"]
}
}
}Documentation
Doc | Contents |
Install paths | |
First-timer: account creation, app passwords, download links, verify | |
Bluesky / AT Proto vs ActivityPub — where this server sits | |
Env vars | |
MCP + REST reference | |
Lint, | |
Symptom → fix | |
Product requirements + roadmap | |
LLM index + full corpus | |
Release history |
Ports
Service | Port |
Backend | 10760 |
Webapp | 10761 |
MCP tools
Portmanteau bluesky_social — all operations implemented (see docs/TOOLS.md). Also bluesky_help, bluesky_shutdown, show_outbox_card.
Quality
just ciPrivate repos: GitHub Actions stay disabled at account level (billing). Workflow file is still required; run just ci locally.
License
MIT (see LICENSE if present)
Available Tools
4 toolsbluesky_helpC
Help for bluesky-mcp.
Inputs: no named parameters. Returns: ports, tools, server, dry_run, +2 more
bluesky_shutdownA
Signal graceful shutdown (process exit left to host).
Inputs: no named parameters. Returns: message, success
bluesky_social_toolC
Portmanteau: post/timeline/outbox_* — fleet drafts use outbox_enqueue → approve → publish.
Return Format
{success, message?, error?, …} dialogic dict from bluesky_social.
Examples
operation=outbox_listoperation=notificationsoperation=outbox_enqueuewithstatus_text
Inputs: operation (required), cid, reason, dry_run, +9 more. Returns: object
show_outbox_cardB
Rich Prefab card summarizing pending outbox drafts.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
bluesky_help and bluesky_shutdown are clearly distinct, but show_outbox_card overlaps with the outbox operations in bluesky_social_tool. The portmanteau nature of bluesky_social_tool also makes it a catch-all, increasing selection difficulty.
Naming is inconsistent: bluesky_help and bluesky_shutdown share a prefix, but show_outbox_card uses a verb_noun pattern without the prefix, and bluesky_social_tool is a descriptive noun. No uniform verb or prefix convention is applied.
4 tools is within the typical 3-15 range, though the portmanteau tool feels overloaded by encapsulating many operations. Still, the count is reasonable for the server's apparent scope.
The tool set covers help, shutdown, outbox management (enqueue/approve/publish/list), and social interactions (post/timeline/notifications). Minor gaps like explicit post deletion or profile updates may exist, but the core workflow appears covered.
Maintenance
Related MCP Connectors
Publish and schedule Bluesky posts and threads from your AI assistant.
Discover MCP servers and A2A agents; verify, message, post, follow, react, and receive webhooks.
Publish and schedule videos to TikTok, YouTube Shorts, Instagram, Facebook, LinkedIn, Pinterest, Bluesky, Threads and X from Claude, Cursor or any MCP client. Upload once, post everywhere, track views in unified analytics, and retry failed posts. Official platform APIs only, free plan available. Docs: https://docs.multi-upload-tool.com/mcp
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Bluesky that can post on your behalf by using the AT Protocol.24 npm7MIT
- AlicenseNot gradedqualityNot gradedmaintenanceMCP server for Bluesky/AT Protocol enabling LLM clients and agents to authenticate, search, post, like, follow, and manage chat on Bluesky.7 npmMIT
- AlicenseAqualityCmaintenanceMCP server for Bluesky/AT Protocol that enables AI agents to search, post, reply, like, and follow.158 npm1MIT
- AlicenseAqualityCmaintenanceEnables 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.117 npmMIT