bluesky-social-mcp
A Bluesky MCP
- β’ Basic MCP protocol features implemented (12/40)
- β’ Room for improvement in GitHub community
- β’ Optimal dependency management (20/20)
- β’ Room for improvement in deployment maturity
- β’ Documentation (8/8)
- β’ Archestra MCP Trust score badge is missing
{
"bluesky-social": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/gwbischof/bluesky-social-mcp@v0.1",
"bluesky-social-mcp"
],
"env": {
"BLUESKY_IDENTIFIER": "your-handle.bsky.social",
"BLUESKY_APP_PASSWORD": "your-app-password"
}
},
"bluesky-social-local-clone": {
"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"
}
},
"bluesky-social-mcp": {
"command": "uv",
"args": [
"run",
"bluesky-social-mcp"
],
"env": {}
}
}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/bluesky-social-mcp@v0.1", "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
[](https://archestra.ai/mcp-catalog/gwbischof__bluesky-social-mcp)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/bluesky-social-mcp@v0.1", "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