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