mcpField
B
Bluesky MCP Server

Bluesky MCP Server

Local
github.comSocial Media7Updated 66w ago

About Bluesky MCP Server

Bluesky MCP Server lets Claude Desktop and other MCP clients interact with Bluesky through the AT Protocol. It covers posting, profile and timeline access, and post interactions.

Key features

  1. 01Bluesky authentication
  2. 02Create text and image posts
  3. 03Read profiles and timelines
  4. 04Like and repost content
  5. 05Rich-text link and mention detection
  6. 06Format timeline output

Use cases

  1. 01Publish text or image posts to Bluesky
  2. 02Review a profile and recent timeline
  3. 03Like or repost a post
  4. 04Turn timeline data into a readable summary

MCP support

Exposes Bluesky authentication, posting, profile, timeline, and interaction tools to MCP clients, along with a timeline-formatting prompt.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
Run commandnpx -y @smithery/cli

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@smithery/cli

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Bluesky MCP Server

smithery badge

A Model Context Protocol (MCP) server for Bluesky that can post on your behalf by using the AT Protocol.

Setup

Installing via Smithery

To install bluesky-mcp for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @semioz/bluesky-mcp --client claude
Manual Installation

Configure Claude for Desktop:

Open your Claude for Desktop App configuration at ~/Library/Application Support/Claude/claude_desktop_config.json and add:

{
    "mcpServers": {
        "bluesky-mcp": {
            "command": "npx",
            "args": ["-y", "@semihberkay/bluesky-mcp"],
            "env": {
                "BLUESKY_IDENTIFIER": "your.handle.bsky.social",
                "BLUESKY_PASSWORD": "your-app-password"
            }
        }
    }
}
Required Environment Variables
  • BLUESKY_IDENTIFIER: Your Bluesky handle or email
  • BLUESKY_PASSWORD: Your Bluesky app password

Available MCP Tools

Authentication
tool: "login"
params: {
  identifier?: string, // Your Bluesky handle or email (optional if set in env)
  password?: string    // Your Bluesky app password (optional if set in env)
}

The server will attempt to auto-login using credentials from the environment variables when starting up. You only need to use the login tool if:

  • You haven't set the environment variables in Claude's config
  • You want to login with different credentials
  • The auto-login failed
Posts
// Create a new post
tool: "create-post"
params: {
  text: string,           // The text content of your post
  images?: {              // Optional array of images
    data: string,         // Base64 encoded image data
    encoding: string      // Image MIME type (e.g., image/jpeg)
  }[]
}

// Get a single post
tool: "get-post"
params: {
  uri: string            // The URI of the post to fetch
}

// Get multiple posts
tool: "get-posts"
params: {
  uris: string[]        // Array of post URIs to fetch
}

// Delete a post
tool: "delete-post"
params: {
  uri: string           // The URI of the post to delete
}
Interactions
// Like a post
tool: "like-post"
params: {
  uri: string,          // The URI of the post to like
  cid: string          // The CID of the post to like
}

// Unlike a post
tool: "unlike-post"
params: {
  likeUri: string      // The URI of the like to remove
}

// Repost
tool: "repost"
params: {
  uri: string,         // The URI of the post to repost
  cid: string         // The CID of the post to repost
}

// Remove repost
tool: "unrepost"
params: {
  repostUri: string   // The URI of the repost to remove
}
Profile & Timeline
// Get your profile
tool: "get-profile"
params: {}

// Get timeline
tool: "get-timeline"
params: {
  limit?: number      // Number of posts to fetch (max 100)
}

Prompts

Format Timeline
prompt: "format-timeline"
params: {
  timeline: any       // Timeline data to format
}

Formats timeline data in a human-readable way with:

  • Author name/handle
  • Post text
  • Engagement metrics (replies, reposts, likes)
  • Timestamps
  • Embedded content (links, videos)
  • Repost information

Features

  • ✅ Authentication with Bluesky
  • ✅ Create text posts
  • ✅ Support for image uploads
  • ✅ Get user profile
  • ✅ Get timeline
  • ✅ Like/Unlike posts
  • ✅ Repost/Unrepost
  • ✅ Rich text support with automatic link and mention detection
  • ✅ MCP compatible for use with Claude

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.