Bluesky MCP

by ravishka17

Not rated
GitHub

About

A remote MCP server for Bluesky social media platform.

Details

Author
ravishka17
Categories
Search, Other, Communication

Setup

Install Bluesky MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/ravishka17/Bluesky-MCP

Follow the installation instructions in the repository README, then restart your MCP client.

A Model Context Protocol (MCP) server that provides comprehensive Bluesky/AT Protocol access for AI assistants. Built in TypeScript, deployed on Vercel, and fully compatible with theMCP Streamable HTTP transport(protocol version2025-03-26).

- Post Operations— Create posts, get posts, view likes and reposts
- Feed Management— Timeline, custom feeds, author feeds
- Search Engine— Search posts and users/actors
- Profile Access— View profiles, follower counts, bios (single and batch)
- Thread Viewing— Explore post threads and conversations
- Bookmarks— Create, delete, and list private bookmarks
- Age Assurance— Begin flow, get config and state
- Secure Credential Management— Credentials injected per-request via headers, never stored
- Streamable HTTP— Full MCP transport support (POST + GET + OPTIONS)
- Multi-client Auth— Three credential methods for different MCP clients
- Vercel Ready— Stateless serverless deployment

Click the button above, or clone and deploy manually:

git clone https://github.com/Ravishka17/Bluesky-MCP.git cd Bluesky-MCP vercel

- Log in to Bluesky
- Go toSettings → App Passwords
- Create a new app password
- Note your handle (e.g.yourname.bsky.social) and the generated password

MCP endpoint:https://your-app.vercel.app/mcp

Credentials arenever storedon the server. They are sent per-request via HTTP headers and held in memory only for the duration of that request.

Three credential methods are supported, with the following priority order:

Best for: HuggingChat, curl, any client supporting custom headers.

curl -X POST https://your-app.vercel.app/mcp \ -H "Content-Type: application/json" \ -H "X-BLUESKY-IDENTIFIER: yourname.bsky.social" \ -H "X-BLUESKY-PASSWORD: your-app-password" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Best for: Mistral Vibe CLI, clients with oneapi_key_headerfield.

Format:handle:app-password(splits on the first colon only, so passwords containing colons are safe)

X-BLUESKY-CREDENTIALS: yourname.bsky.social:your-app-password

Best for: MCP Playground, OpenAI-compatible clients, any tool using theAuthorizationheader.

Authorization: Bearer yourname.bsky.social:your-app-password

In theAdd MCP Serverdialog, expandHTTP Headersand add:

{ "mcpServers": { "bluesky": { "type": "http", "url": "https://your-app.vercel.app/mcp", "headers": { "X-BLUESKY-IDENTIFIER": "yourname.bsky.social", "X-BLUESKY-PASSWORD": "your-app-password" } } } }
claude mcp add bluesky --transport http https://your-app.vercel.app/mcp
[[mcp_servers]] name = "bluesky" transport = "streamable-http" url = "https://your-app.vercel.app/mcp" api_key_env = "BLUESKY_CREDENTIALS" api_key_header = "X-BLUESKY-CREDENTIALS" api_key_format = "{}"
BLUESKY_CREDENTIALS=yourname.bsky.social:your-app-password

For tools likeHermes Agent(Nous Research) and other YAML-configured MCP clients:

mcp_servers: bluesky: url: https://your-app.vercel.app/mcp headers: X-BLUESKY-CREDENTIALS: "${BLUESKY_CREDENTIALS}"
BLUESKY_CREDENTIALS=yourname.bsky.social:your-app-password
mcp_servers: bluesky: url: https://your-app.vercel.app/mcp headers: X-BLUESKY-CREDENTIALS: "${BLUESKY_CREDENTIALS}"

- Remote Server URL:https://your-app.vercel.app/mcp
- Auth Header:Bearer yourname.bsky.social:your-app-password

Configure transport typestreamable-httpwith the endpoint URL and any of the three auth methods above.

# Health check curl https://your-app.vercel.app/health # Check available auth methods curl https://your-app.vercel.app/mcp # Test MCP initialize curl -X POST https://your-app.vercel.app/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

- Credentials never stored— not in Vercel env vars, not in git, not on disk
- Per-request injection— credentials are passed in headers and held in memory only for that request
- Three auth methods— flexible for any client without compromising security
- Input sanitization— all inputs validated and sanitized before hitting the Bluesky API
- Rate limiting— tiered limits for read vs write operations
- Security headers— X-Frame-Options, X-Content-Type-Options, etc.

# Install dependencies pnpm install # Run in development mode pnpm dev # Build for production pnpm build

For local development, credentials can be passed via headers in every request. No env vars needed.

Bluesky-MCP/ ├── app/ │ ├── mcp/route.ts # MCP endpoint — credential extraction + transport │ ├── health/route.ts # Health check │ ├── layout.tsx │ └── page.tsx ├── src/ │ ├── mcp-server.ts # MCP server — tool routing, credential injection │ ├── bluesky-client.ts # Bluesky API client (all methods) │ ├── handlers.ts # Tool handlers │ ├── toolDefinitions.ts # Tool schemas │ ├── sanitize.ts # Input sanitization │ ├── middleware.ts # Rate limiting, security headers │ ├── types.ts # TypeScript types │ └── utils.ts # Utilities ├── vercel.json └── package.json

This project is released into the public domain underThe Unlicense.

This is free and unencumbered software. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, for any purpose, commercial or non-commercial, and by any means, without any conditions or restrictions.

Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.

Official MCP server for twitterapis.com: Twitter/X search, users, followers, tweets, threads, lists, likes, bookmarks, DMs, plus post/like/retweet/follow actions as native Claude/Cursor tools.

An MCP server for interacting with the Reddit API, enabling searches for posts, comments, and subreddits.

Interact with Reddit by posting comments and searching for posts.

Live data from Twitter, Reddit, the web, GitHub, Amazon and YouTube for AI agents - one hosted MCP server, no API keys.

Comprehensive web, news, and social media search and analysis using xAI's Grok API.

Official MCP server for redditapis.com: subreddit, post, comment, community, user, and media search plus monitor/webhook management as native Claude/Cursor tools.

Search and retrieve content from the Xiaohongshu (Red Book) platform.

Social media search and analytics across X, Reddit, Bluesky, YouTube, LinkedIn, Facebook, Instagram, and Weibo via the Rolli IQ API

Real-time SERP and web data for AI assistants: 100+ tools across Google, Bing, Amazon, YouTube, Maps, travel, and social from one remote MCP server.

Search for messages and files within a Slack workspace using the Slack API.

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.