Post to the Bluesky social network using the AT Protocol.
A Model Context Protocol (MCP) server for Bluesky that can post on your behalf by using the AT Protocol.
To install bluesky-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @semioz/bluesky-mcp --client claude
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"
}
}
}
}
BLUESKY_IDENTIFIER
: Your Bluesky handle or emailBLUESKY_PASSWORD
: Your Bluesky app passwordtool: "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:
// 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
}
// 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
}
// Get your profile
tool: "get-profile"
params: {}
// Get timeline
tool: "get-timeline"
params: {
limit?: number // Number of posts to fetch (max 100)
}
prompt: "format-timeline"
params: {
timeline: any // Timeline data to format
}
Formats timeline data in a human-readable way with:
Create and publish unlimited podcast shows and episodes with ELEMENT.FM
Chat with any other OpenAI SDK Compatible Chat Completions API, like Perplexity, Groq, xAI and more
Connects AI models to WhatsApp Web using the Model Context Protocol (MCP) to automate and enhance interactions.
Enhanced MCP server for Twitter/X with OAuth 2.0 support, v2 API media uploads, smart v1.1 fallbacks, and comprehensive rate limiting. Post tweets with text/media, search, and delete tweets programmatically.
Transcribe audio files using OpenAI's Speech-to-Text API.
An ntfy MCP server for sending/fetching ntfy notifications to your self-hosted ntfy server from AI Agents 📤 (supports secure token auth & more - use with npx or docker!)
A server for interacting with DingTalk workspaces using the Model Context Protocol.
An MCP server for interacting with the Freshdesk API v2, enabling management of customer support tickets and contacts.
The most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.
Access Reddit's public API to browse frontpage posts, subreddit information, and read post comments.