Retrieves Bluesky user profiles and follow lists through the official API.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add bluesky --env BLUESKY_IDENTIFIER='<BLUESKY_IDENTIFIER>' --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' -- uv run src/bluesky_mcp/server.py~/.codex/config.toml
[mcp_servers.bluesky]
command = "uv"
args = ["run", "src/bluesky_mcp/server.py"]
env = { BLUESKY_IDENTIFIER = "<BLUESKY_IDENTIFIER>", BLUESKY_APP_PASSWORD = "<BLUESKY_APP_PASSWORD>" }
# codex mcp add bluesky --env BLUESKY_IDENTIFIER='<BLUESKY_IDENTIFIER>' --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' -- uv run src/bluesky_mcp/server.py~/.cursor/mcp.json
{
"mcpServers": {
"bluesky": {
"command": "uv",
"args": [
"run",
"src/bluesky_mcp/server.py"
],
"env": {
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"bluesky": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"src/bluesky_mcp/server.py"
],
"env": {
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"bluesky": {
"command": "uv",
"args": [
"run",
"src/bluesky_mcp/server.py"
],
"env": {
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"bluesky": {
"command": "uv",
"args": [
"run",
"src/bluesky_mcp/server.py"
],
"env": {
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"bluesky": {
"command": "uv",
"args": [
"run",
"src/bluesky_mcp/server.py"
],
"env": {
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>"
}
}
}
}Environment variables
BLUESKY_IDENTIFIERBLUESKY_APP_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.