Lets AI assistants read Bluesky timelines, create posts, like and follow through the AT Protocol.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add bluesky --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' --env BLUESKY_IDENTIFIER='<BLUESKY_IDENTIFIER>' --env BLUESKY_SERVICE_URL='<BLUESKY_SERVICE_URL>' -- npx -y @smithery/cli install @brianellin/bsky-mcp-server --client claude~/.codex/config.toml
[mcp_servers.bluesky]
command = "npx"
args = ["-y", "@smithery/cli", "install", "@brianellin/bsky-mcp-server", "--client", "claude"]
env = { BLUESKY_APP_PASSWORD = "<BLUESKY_APP_PASSWORD>", BLUESKY_IDENTIFIER = "<BLUESKY_IDENTIFIER>", BLUESKY_SERVICE_URL = "<BLUESKY_SERVICE_URL>" }
# codex mcp add bluesky --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' --env BLUESKY_IDENTIFIER='<BLUESKY_IDENTIFIER>' --env BLUESKY_SERVICE_URL='<BLUESKY_SERVICE_URL>' -- npx -y @smithery/cli install @brianellin/bsky-mcp-server --client claude~/.cursor/mcp.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@brianellin/bsky-mcp-server",
"--client",
"claude"
],
"env": {
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_SERVICE_URL": "<BLUESKY_SERVICE_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"bluesky": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@brianellin/bsky-mcp-server",
"--client",
"claude"
],
"env": {
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_SERVICE_URL": "<BLUESKY_SERVICE_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@brianellin/bsky-mcp-server",
"--client",
"claude"
],
"env": {
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_SERVICE_URL": "<BLUESKY_SERVICE_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@brianellin/bsky-mcp-server",
"--client",
"claude"
],
"env": {
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_SERVICE_URL": "<BLUESKY_SERVICE_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@brianellin/bsky-mcp-server",
"--client",
"claude"
],
"env": {
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_SERVICE_URL": "<BLUESKY_SERVICE_URL>"
}
}
}
}Environment variables
BLUESKY_APP_PASSWORDBLUESKY_IDENTIFIERBLUESKY_SERVICE_URL
Replace the placeholders with your own credentials and keep them out of version control.