Bluesky

by brianellin

10 stars
307 downloads
Not rated
GitHub

About

Bridges Claude with the Bluesky social network, enabling timeline browsing, post creation, content searching, and follow management through conversational interaction with Bluesky's API.

Details

Author
brianellin
Repository
brianellin/bsky-mcp-server
GitHub stars
10
Downloads
307
Categories
Communication, Other, API, Developer Tools, Design, AI, Community, Media, Search, Infrastructure, Frontend
Tags
#integration

- Interact with common Bluesky features via natural language (e.g. "Get recent posts from David Roberts")
- Fetch and analyze feeds ("Find me a feed about Seattle and tell me what people are talking about")
- Fetch and analyze lists of followers ("What types of accounts does Mark Cuban follow? Give me a detailed report")
- Use an LLM to write a post and then post it for you 😱 ("Write a haiku about today's weather in my area and post it to bluesky")
- Search for feeds, posts, and people ("Find posts about the #teslatakedown and give me a summary of recent events")
- Analyze who follows you? ("Who follows me on Bluesky? Give me a report")

Here's the current list of tools provided:

- get-pinned-feeds: returns the set of all "pinned" items from the authenticated user's preferences.
- get-timeline-posts: returns posts from the authenticated user's home timeline
- get-feed-posts: returns posts from the specified feed
- get-list-posts: returns posts from the specified list
- get-user-posts: returns the specified user's posts
- get-profile: returns the profile details of the specified user
- get-follows: returns the set of users an account follows
- get-followers: returns the set of users who follow an account
- get-liked-posts: returns recent posts liked by the authenticated user
- get-trends: returns current trending topics on Bluesky with post counts
- get-post-thread: returns a full conversation thread for a specific post, showing all replies and context
- convert-url-to-uri: converts a Bluesky web URL to an AT URI format that can be used with other tools
- search-posts: returns posts for a given query. can specify top or latest
- search-people: returns people for a given search query
- search-feeds: returns feeds for a given query
- like-post: like a post with a specific URI
- create-post: publish a post
- follow-user: follow a specific user

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Bluesky
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /path/to/bsky-mcp-server/build/src/index.js
    Environment
    • BLUESKY_IDENTIFIER your-bluesky-handle
    • BLUESKY_SERVICE_URL https://bsky.social
    • BLUESKY_APP_PASSWORD your-app-password

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via Smithery (npx -y @smithery/cli install @brianellin/bsky-mcp-server --client claude) or manually by cloning the repo, running pnpm install and pnpm run build. Configure the server with environment variables BLUESKY_IDENTIFIER, BLUESKY_APP_PASSWORD, and BLUESKY_SERVICE_URL. Then add the server to your MCP client configuration (e.g., Claude Desktop's claude_desktop_config.json).

get-pinned-feeds

Returns the set of all 'pinned' items from the authenticated user's preferences.

get-timeline-posts

Returns posts from the authenticated user's home timeline.

get-feed-posts

Returns posts from the specified feed.

get-list-posts

Returns posts from the specified list.

get-user-posts

Returns the specified user's posts.

get-profile

Returns the profile details of the specified user.

get-follows

Returns the set of users an account follows.

get-followers

Returns the set of users who follow an account.

get-liked-posts

Returns recent posts liked by the authenticated user.

get-trends

Returns current trending topics on Bluesky with post counts.

get-post-thread

Returns a full conversation thread for a specific post, showing all replies and context.

convert-url-to-uri

Converts a Bluesky web URL to an AT URI format that can be used with other tools.

search-posts

Returns posts for a given query. Can specify top or latest.

search-people

Returns people for a given search query.

search-feeds

Returns feeds for a given query.

like-post

Like a post with a specific URI.

create-post

Publish a post.

follow-user

Follow a specific user.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "bluesky": {
            "env": {
                "BLUESKY_IDENTIFIER": "your-bluesky-handle",
                "BLUESKY_SERVICE_URL": "https://bsky.social",
                "BLUESKY_APP_PASSWORD": "your-app-password"
            },
            "args": [
                "/path/to/bsky-mcp-server/build/src/index.js"
            ],
            "command": "node"
        }
    }
}

Linux

{
    "env": {
        "BLUESKY_IDENTIFIER": "your-bluesky-handle",
        "BLUESKY_SERVICE_URL": "https://bsky.social",
        "BLUESKY_APP_PASSWORD": "your-app-password"
    },
    "args": [
        "/path/to/bsky-mcp-server/build/src/index.js"
    ],
    "command": "node"
}

Macos

{
    "env": {
        "BLUESKY_IDENTIFIER": "your-bluesky-handle",
        "BLUESKY_SERVICE_URL": "https://bsky.social",
        "BLUESKY_APP_PASSWORD": "your-app-password"
    },
    "args": [
        "/path/to/bsky-mcp-server/build/src/index.js"
    ],
    "command": "node"
}

Windows

{
    "env": {
        "BLUESKY_IDENTIFIER": "your-bluesky-handle",
        "BLUESKY_SERVICE_URL": "https://bsky.social",
        "BLUESKY_APP_PASSWORD": "your-app-password"
    },
    "args": [
        "/path/to/bsky-mcp-server/build/src/index.js"
    ],
    "command": "node"
}

AModel Context Protocolserver that connects toBlueskyand provides tools to interact with the ATProtocol.

You can use this MCP server to bring context from various Bluesky / ATProtocol API endpoints directly into the context window of your LLM based application. For example, you can add this server to Claude Desktop and then use it as a natural language Bluesky client.

- Interact with common Bluesky features via natural language (e.g. "Get recent posts from David Roberts")
- Fetch and analyze feeds ("Find me a feed about Seattle and tell me what people are talking about")
- Fetch and analyze lists of followers ("What types of accounts does Mark Cuban follow? Give me a detailed report")
- Use an LLM to write a post and then post it for you 😱 ("Write a haiku about today's weather in my area and post it to bluesky")
- Search for feeds, posts, and people ("Find posts about the #teslatakedown and give me a summary of recent events")
- Analyze who follows you? ("Who follows me on Bluesky? Give me a report")

Here's the current list of tools provided:

- get-pinned-feeds: returns the set of all "pinned" items from the authenticated user's preferences.
- get-timeline-posts: returns posts from the authenticated user's home timeline
- get-feed-posts: returns posts from the specified feed
- get-list-posts: returns posts from the specified list
- get-user-posts: returns the specified user's posts
- get-profile: returns the profile details of the specified user
- get-follows: returns the set of users an account follows
- get-followers: returns the set of users who follow an account
- get-liked-posts: returns recent posts liked by the authenticated user
- get-trends: returns current trending topics on Bluesky with post counts
- get-post-thread: returns a full conversation thread for a specific post, showing all replies and context
- convert-url-to-uri: converts a Bluesky web URL to an AT URI format that can be used with other tools
- search-posts: returns posts for a given query. can specify top or latest
- search-people: returns people for a given search query
- search-feeds: returns feeds for a given query
- like-post: like a post with a specific URI
- create-post: publish a post
- follow-user: follow a specific user

- You can ask for post from search, timelines, lists, feeds, or profiles by time range. For example: Summarize posts from my timeline for the last three days" or "Find me the most interesting article people have been talking about this week"
- Get weird: "What the funniest/most unhinged/weirdest/goofiest post you've seen on my timeline in the last 24 hours?"
- Learn about yourself: "Analyze my liked posts and tell me what I'm into. Give me 3 interesting facts about what you've found and how it relates to my personality on bluesky" or "Who follows me on bluesky? Give me a comprehensive report."

To install Bluesky MCP Server for Claude Desktop automatically viaSmithery:

npx -y @smithery/cli install @brianellin/bsky-mcp-server --client claude

First clone this repo, then install dependencies and build the server:

# Install dependencies pnpm install # Build the project pnpm run build

You can test the bluesky tools directly without connecting to an LLM via the amazingMCP Inspector. First make sure you have built the server and then run:

npx @modelcontextprotocol/inspector node build/src/index.js

Navigate to the local URL provided in your terminal, and then set your BLUESKY_IDENTIFIER, BLUESKY_APP_PASSWORD, and BLUESKY_SERVICE_URL environment variables from the panel on the left. Try the get-timeline tool to see the most recent posts from your home timeline.

Follow the steps to set up MCP with your client of choice. For example, to set up Claude for desktop to connect to Bluesky, add the following to bluesky section to your claude_desktop_config.json:

{ "mcpServers": { "bluesky": { "command": "node", "args": ["/path/to/bsky-mcp-server/build/src/index.js"], "env": { "BLUESKY_IDENTIFIER": "your-bluesky-handle", "BLUESKY_APP_PASSWORD": "your-app-password", "BLUESKY_SERVICE_URL": "https://bsky.social" } } } }

For more details about running MCP servers in Claude for desktop, seehttps://modelcontextprotocol.io/quickstart/user

To use this MCP server, you need to create an app password for your Bluesky account:
- Log in to Bluesky
- Go to Settings > App Passwords
- Create a new app password specifically for this integration
- Set the app password using the BLUESKY_APP_PASSWORD environment variable

- This server stores your session information in memory only and does not share it with the MCP client.
- The MCP client only has access to the tools, not to your authentication or app password

Automate and manage interactions on a Facebook Page using the Facebook Graph API.

Integrates with the LinkedIn API, allowing interaction with your professional network and content.

A MCP server for LinkedIn REST API v2 that enables AI assistants to create, list, and delete posts, manage events, upload images, comment, and react—featuring OAuth 2.0 with session persistence, local post history tracking, and multiple automated tests

Schedule and queue text, image, and video posts to many social networks, including LinkedIn, X, Bluesky, Instagram, Facebook, Threads, Tiktok.

Enables seamless integration with communication platform that allows you to reach your customers globally across any channel.

Interact with any other SaaS applications on behalf of your customers.

Official MCP Server to interact with Pearl API. Connect your AI Agents with 12,000+ certified experts instantly.

Platfone - Receive SMS & Virtual Numbers MCP

Virtual phone number platform for AI agents — rent numbers across 200+ countries, receive SMS, and manage the full activation lifecycle

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.