Skip to main content
Glama
BlueSky MCP Server

BlueSky MCP Server

by berlinbra

BlueSky MCP Server

A Model Context Protocol (MCP) server that provides access to BlueSky social network data through its official API. This server implements a standardized interface for retrieving user profiles and social graph information.

Features

  • Fetch detailed user profile information

  • Retrieve user following lists with pagination

  • Built-in authentication handling and session management

  • Comprehensive error handling

Related MCP server: Bluesky MCP Server

Installation

Claude Desktop

  • On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

  • On Windows: %APPDATA%/Claude/claude_desktop_config.json

    "mcpServers": {
        "bluesky-mcp": {
            "command": "uv",
            "args": [
            "--directory",
            "C:\\Users\\{INSERT_USER}\\YOUR\\PATH\\TO\\bluesky-mcp\\bluesky-mcp",
            "run",
            "src/bluesky_mcp/server.py"
            ],
            "env": {
                "BLUESKY_IDENTIFIER": "your.handle.bsky.social",
                "BLUESKY_APP_PASSWORD": "your-app-password"
            }
        }
    }

Running Locally

Install Libraries

uv pip install -e .

Running

After connecting Claude client with the MCP tool via json file and installing the packages, Claude should see the server's mcp tools:

You can run the sever yourself via: In bluesky_mcp repo:

uv run src/bluesky_mcp/server.py

*if you want to run the server inspector along with the server:

npx @modelcontextprotocol/inspector uv --directory C:\\Users\\{INSERT_USER}\\YOUR\\PATH\\TO\\bluesky-mcp run src/bluesky_mcp/server.py

Available Tools

The server implements two tools:

  • get-profile: Get detailed profile information for a BlueSky user

  • get-follows: Get a list of accounts that a specified user follows

get-profile

Retrieves detailed profile information for a given BlueSky user.

Input Schema:

{
    "handle": {
        "type": "string",
        "description": "The user's handle (e.g., 'alice.bsky.social')"
    }
}

Example Response:

Profile information for alice.bsky.social:

Handle: alice.bsky.social
Display Name: Alice
Description: Just a BlueSky user sharing thoughts
Followers: 1234
Following: 567
Posts: 789

get-follows

Retrieves a list of accounts that a specified user follows, with support for pagination.

Input Schema:

{
    "actor": {
        "type": "string",
        "description": "The user's handle (e.g., 'alice.bsky.social')"
    },
    "limit": {
        "type": "integer",
        "description": "Maximum number of results to return",
        "default": 50,
        "minimum": 1,
        "maximum": 100
    },
    "cursor": {
        "type": "string",
        "description": "Pagination cursor",
        "optional": true
    }
}

Example Response:

Follows for alice.bsky.social:

Follows:
Handle: bob.bsky.social
Display Name: Bob
---
Handle: carol.bsky.social
Display Name: Carol
---
Handle: dave.bsky.social
Display Name: Dave
---

More results available. Use cursor: bafygeia...

Error Handling

The server includes comprehensive error handling for various scenarios:

  • Authentication failures

  • Rate limiting

  • Network connectivity issues

  • Invalid parameters

  • Timeout handling

  • Malformed responses

Error messages are returned in a clear, human-readable format.

Prerequisites

  • Python 3.12 or higher

  • httpx

  • mcp

Authentication

To use this MCP server, you need to:

  1. Create a BlueSky account if you don't have one

  2. Generate an App Password in your BlueSky account settings

  3. Set the following environment variables:

    • BLUESKY_IDENTIFIER: Your BlueSky handle (e.g., "username.bsky.social")

    • BLUESKY_APP_PASSWORD: Your generated App Password

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

8 tools
bluesky_get_followersC

Get a list of accounts following the user

Inputs: limit, cursor.

bluesky_get_followsC

Get a list of accounts the user follows

Inputs: limit, cursor.

bluesky_get_liked_postsC

Get a list of posts liked by the user

Inputs: limit, cursor.

bluesky_get_personal_feedC

Get your personalized Bluesky feed

Inputs: limit, cursor.

bluesky_get_postsC

Get recent posts from a user

Inputs: limit, cursor.

bluesky_get_profileB

Get a user's profile information

Inputs: no named parameters.

bluesky_search_postsC

Search for posts on Bluesky

Inputs: query (required), limit, cursor.

bluesky_search_profilesC

Search for Bluesky profiles

Inputs: query (required), limit, cursor.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 8 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific Bluesky resources: followers, follows, liked posts, personal feed, user posts, profiles, post search, and profile search. No ambiguity exists as each tool name precisely indicates what it retrieves.

    Naming Consistency5/5

    All tools follow a consistent 'bluesky_verb_noun' pattern with snake_case throughout. The naming is highly predictable, using verbs like 'get' and 'search' paired with specific nouns like 'followers', 'posts', or 'profiles'.

    Tool Count5/5

    With 8 tools, this server is well-scoped for social media interaction on Bluesky. Each tool earns its place by covering distinct aspects of user data, feeds, and search functionality without being overwhelming or insufficient.

    Completeness4/5

    The toolset provides comprehensive read/search coverage for Bluesky's core features, including user relationships, content consumption, and discovery. A minor gap exists in write operations (e.g., posting, liking, following), but agents can effectively navigate the available surface for information retrieval tasks.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables LLMs to interact with the AT Protocol ecosystem, including Bluesky, through natural language. Supports public data access without authentication and full write operations with authentication.
      51
      136 npm
      10
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that connects to Bluesky and provides natural language tools to interact with the ATProtocol, enabling feed fetching, post management, search, and profile analysis.
      32
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables interaction with Bluesky social network through the AT Protocol, including searching posts, fetching profiles, browsing feeds, and retrieving threads and follower data.
      141 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI agents to post, reply, run threads, read timelines, search, manage follows, and analyze engagement on Bluesky, with setup requiring only a handle and app password.
      41
      MIT