Bluesky Social MCP
An MCP server for interacting with the Bluesky social network via the atproto client.
:wave: Leave an issue if you have any problems running this MCP. I should be able to push out fixes pretty quickly.
Quick Start
Get your Bluesky app password at: https://bsky.app/settings/app-passwords
Add the following to your MCP config file (Note that the version is pinned):
{
"mcpServers": {
"bluesky-social": {
"command": "uvx",
"args": ["--from", "git+https://github.com/gwbischof/[email protected]", "bluesky-social-mcp"],
"env": {
"BLUESKY_IDENTIFIER": "your-handle.bsky.social",
"BLUESKY_APP_PASSWORD": "your-app-password"
}
}
}
}
- For security reasons, I think its best to keep it pinned and manually change your config to update the version.
Tool Status
All tools have been implemented and tested โ
Authentication & Setup
- โ
check_auth_status- Check if the current session is authenticated
Profile Operations
- โ
get_profile- Get a user profile (Client method:get_profile) - โ
get_follows- Get users followed by an account (Client method:get_follows) - โ
get_followers- Get users who follow an account (Client method:get_followers) - โ
follow_user- Follow a user (Client method:follow) - โ
unfollow_user- Unfollow a user (Client method:unfollow) - โ
mute_user- Mute a user (Client method:mute) - โ
unmute_user- Unmute a user (Client method:unmute) - โ
resolve_handle- Resolve a handle to DID (Client method:resolve_handle)
Feed Operations
- โ
get_timeline- Get posts from your home timeline (Client method:get_timeline) - โ
get_author_feed- Get posts from a specific user (Client method:get_author_feed) - โ
get_post_thread- Get a full conversation thread (Client method:get_post_thread)
Post Interactions
- โ
like_post- Like a post (Client method:like) - โ
unlike_post- Unlike a post (Client method:unlike) - โ
get_likes- Get likes for a post (Client method:get_likes) - โ
repost- Repost a post (Client method:repost) - โ
unrepost- Remove a repost (Client method:unrepost) - โ
get_reposted_by- Get users who reposted (Client method:get_reposted_by)
Post Creation & Management
- โ
send_post- Create a new text post (Client method:send_post) - โ
send_image- Send a post with a single image (Client method:send_image) - โ
send_images- Send a post with multiple images (Client method:send_images) - โ
send_video- Send a post with a video (Client method:send_video) - โ
delete_post- Delete a post (Client method:delete_post) - โ
get_post- Get a specific post (Client method:get_post) - โ
get_posts- Get multiple posts (Client method:get_posts)
Run from local clone of repo.
{
"mcpServers": {
"bluesky-social": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/bluesky-social-mcp",
"run",
"server.py"
]
"env": {
"BLUESKY_IDENTIFIER": "user-name.bsky.socialโฌ",
"BLUESKY_APP_PASSWORD": "app-password-here"
}
}
}
}
Dev Setup
-
Install dependencies:
uv sync -
Run the server:
uv run bluesky-social-mcp
Debug with MCP Inspector
mcp dev server.py
mcp dev server.py --with-editable .
Run the tests
- I run the tests against the actual Bluesky server.
- The tests will use BLUESKY_IDENTIFIER, and BLUESKY_APP_PASSWORD env vars.
uv run pytest
