Labsco
semioz logo

Bluesky

โ˜… 7

from semioz

Post to the Bluesky social network using the AT Protocol.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredNeeds API keys

Bluesky MCP Server

smithery badge

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

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