Bluesky MCP Server
Interact with Bluesky social network, including fetching timeline posts, search posts, profiles, feeds, lists, followers, likes, trends, threads; also allows creating posts, liking, and following users.
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 Server Get my home timeline posts from today"
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 Server
A Model Context Protocol server that connects to Bluesky and provides tools to interact with the ATProtocol.
You can use this MCP server to bring context from various Bluesky / ATProtocol API endpoints directly into the context window of your LLM based application. For example, you can add this server to Claude Desktop and then use it as a natural language Bluesky client.
Features & Tools
Interact with common Bluesky features via natural language (e.g. "Get recent posts from David Roberts")
Fetch and analyze feeds ("Find me a feed about Seattle and tell me what people are talking about")
Fetch and analyze lists of followers ("What types of accounts does Mark Cuban follow? Give me a detailed report")
Use an LLM to write a post and then post it for you 😱 ("Write a haiku about today's weather in my area and post it to bluesky")
Search for feeds, posts, and people ("Find posts about the #teslatakedown and give me a summary of recent events")
Analyze who follows you? ("Who follows me on Bluesky? Give me a report")
Here's the current list of tools provided:
get-pinned-feeds: returns the set of all "pinned" items from the authenticated user's preferences.
get-timeline-posts: returns posts from the authenticated user's home timeline
get-feed-posts: returns posts from the specified feed
get-list-posts: returns posts from the specified list
get-user-posts: returns the specified user's posts
get-profile: returns the profile details of the specified user
get-follows: returns the set of users an account follows
get-followers: returns the set of users who follow an account
get-liked-posts: returns recent posts liked by the authenticated user
get-trends: returns current trending topics on Bluesky with post counts
get-post-thread: returns a full conversation thread for a specific post, showing all replies and context
convert-url-to-uri: converts a Bluesky web URL to an AT URI format that can be used with other tools
search-posts: returns posts for a given query. can specify top or latest
search-people: returns people for a given search query
search-feeds: returns feeds for a given query
like-post: like a post with a specific URI
create-post: publish a post
follow-user: follow a specific user
Tips:
You can ask for post from search, timelines, lists, feeds, or profiles by time range. For example: Summarize posts from my timeline for the last three days" or "Find me the most interesting article people have been talking about this week"
Get weird: "What the funniest/most unhinged/weirdest/goofiest post you've seen on my timeline in the last 24 hours?"
Learn about yourself: "Analyze my liked posts and tell me what I'm into. Give me 3 interesting facts about what you've found and how it relates to my personality on bluesky" or "Who follows me on bluesky? Give me a comprehensive report."
Related MCP server: bluesky-mcp
Installation
Installing via Smithery
To install Bluesky MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @brianellin/bsky-mcp-server --client claudeInstalling Manually
First clone this repo, then install dependencies and build the server:
# Install dependencies
pnpm install
# Build the project
pnpm run buildTesting with MCP Inspector
You can test the bluesky tools directly without connecting to an LLM via the amazing MCP Inspector. First make sure you have built the server and then run:
npx @modelcontextprotocol/inspector node build/src/index.jsNavigate to the local URL provided in your terminal, and then set your BLUESKY_IDENTIFIER, BLUESKY_APP_PASSWORD, and BLUESKY_SERVICE_URL environment variables from the panel on the left. Try the get-timeline tool to see the most recent posts from your home timeline.
MCP Client Configuration
Follow the steps to set up MCP with your client of choice. For example, to set up Claude for desktop to connect to Bluesky, add the following to bluesky section to your claude_desktop_config.json:
{
"mcpServers": {
"bluesky": {
"command": "node",
"args": ["/path/to/bsky-mcp-server/build/src/index.js"],
"env": {
"BLUESKY_IDENTIFIER": "your-bluesky-handle",
"BLUESKY_APP_PASSWORD": "your-app-password",
"BLUESKY_SERVICE_URL": "https://bsky.social"
}
}
}
}For more details about running MCP servers in Claude for desktop, see https://modelcontextprotocol.io/quickstart/user
Creating App Passwords
To use this MCP server, you need to create an app password for your Bluesky account:
Log in to Bluesky
Go to Settings > App Passwords
Create a new app password specifically for this integration
Set the app password using the BLUESKY_APP_PASSWORD environment variable
Security Notes
This server stores your session information in memory only and does not share it with the MCP client.
The MCP client only has access to the tools, not to your authentication or app password
License
MIT
Available Tools
32 toolsadd-to-listB
Add a user to a Bluesky list
Inputs: handle (required), listUri (required).
convert-url-to-uriA
Convert a Bluesky web URL to an AT URI format that can be used with other tools
Inputs: url (required).
create-listA
Create a new list on Bluesky (curate list or moderation list)
Inputs: name (required), purpose (required), description.
create-postB
Create a new post on Bluesky
Inputs: text (required), replyTo.
delete-listB
Delete a list on Bluesky
Inputs: listUri (required).
follow-userA
Follow a user on Bluesky
Inputs: handle (required).
get-conversationsA
List your recent DM conversations on Bluesky
Inputs: limit.
get-dm-messagesB
Get messages from a specific DM conversation on Bluesky
Inputs: convoId (required), limit.
get-feed-postsB
Fetch posts from a specified feed
Inputs: feed (required), type (required), count (required).
get-followersB
Get a list of users that follow a person
Inputs: user (required), limit.
get-followsB
Get a list of users that a person follows
Inputs: user (required), limit.
get-liked-postsA
Get a list of posts that the authenticated user has liked
Inputs: limit.
get-list-postsA
Fetch posts from users in a specified list
Inputs: list (required), type (required), count (required).
get-listsA
Get all lists created by a user on Bluesky
Inputs: handle.
get-my-handle-and-didA
Return the handle and did of the currently authenticated user for this blusesky session. Useful for when someone asks information about themselves using "me" or "my" on bluesky.
Inputs: no named parameters.
get-notificationsA
Get your recent Bluesky notifications (likes, reposts, follows, mentions, replies)
Inputs: limit, filter.
get-pinned-feedsB
Get the authenticated user's pinned feeds and lists.
Inputs: no named parameters.
get-post-likesA
Get information about users who have liked a specific post
Inputs: uri (required), limit.
get-post-threadA
Get a full conversation thread for a specific post, showing replies and context
Inputs: uri (required).
get-profileB
Get a user's profile from Bluesky
Inputs: handle (required).
get-timeline-postsA
Fetch your home timeline from Bluesky, which includes posts from all of the people you follow in reverse chronological order
Inputs: type (required), count (required).
get-trendsB
Get current trending topics on Bluesky
Inputs: limit, includeSuggested.
get-user-postsB
Fetch posts from a specific user
Inputs: type (required), user (required), count (required).
like-postB
Like a post on Bluesky
Inputs: uri (required).
list-resourcesA
List all available MCP resources with their descriptions
Inputs: no named parameters.
remove-from-listB
Remove a user from a Bluesky list
Inputs: handle (required), listUri (required).
repostB
Repost (retweet) a post on Bluesky
Inputs: uri (required).
search-feedsB
Search for custom feeds on Bluesky
Inputs: query (required), limit.
search-peopleB
Search for users/actors on Bluesky
Inputs: query (required), limit.
search-postsB
Search for posts on Bluesky
Inputs: query (required), sort, limit.
send-dmB
Send a direct message to a user on Bluesky
Inputs: text (required), handle (required).
unfollow-userB
Unfollow a user on Bluesky
Inputs: handle (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools target distinct resources and actions, but a few pairs like get-post-likes vs. get-liked-posts or get-user-posts vs. get-timeline-posts could cause confusion. Descriptions largely clarify these differences, making the set mostly unambiguous.
All tool names follow a consistent hyphenated verb-noun pattern (e.g., get-profile, create-post, unfollow-user), making the set predictable and easy to navigate. No mixed conventions or vague verbs are present.
With 32 tools, the server exceeds the 25+ threshold for too many tools. While the broad scope of Bluesky interactions justifies many operations, the count feels heavy and several retrieval tools could potentially be consolidated.
Core social interactions are covered (posts, follows, likes, lists, DMs), but notable gaps exist: no post deletion, no profile editing, and no block/mute functionality. These omissions could hinder common workflows.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Bluesky/ATProtocol, providing authentication, timeline access, post creation, and social features like likes and follows.2151MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Bluesky that can post on your behalf by using the AT Protocol.11 npm7MIT
- AlicenseAqualityBmaintenanceEnables LLMs to interact with the AT Protocol ecosystem, including Bluesky, through natural language. Supports public data access without authentication and full write operations with authentication.51136 npm10MIT
- AlicenseNot gradedqualityNot gradedmaintenanceMCP server for Bluesky/AT Protocol enabling LLM clients and agents to authenticate, search, post, like, follow, and manage chat on Bluesky.3 npmMIT