bluesky-mcp
A read-only MCP server for Bluesky that provides tools to access profiles, posts, feeds, and notifications using AT Protocol.
README
bluesky-mcp
bluesky-mcp is Kai's authenticated, strictly read-only Bluesky MCP. It uses
the official AT Protocol SDK to create and refresh an internal app-password
session, and the official MCP SDK streamable-HTTP transport to serve a small,
reviewed tool surface.
Transport and configuration
The process serves GET /healthz and MCP streamable HTTP at POST /mcp.
Defaults are HOST=0.0.0.0 and PORT=9113. Set these runtime variables:
BSKY_APP_PASSWORD(required): app password supplied only at runtime.BSKY_HANDLE(optional): authenticated account handle; defaults tocoilysiren.me.MCP_ALLOWED_HOSTS(optional): comma-separated hosts accepted by the MCP transport's DNS-rebinding defense. It defaults to local development hosts.
Run locally with an app password supplied out of band:
ward install
BSKY_APP_PASSWORD=... ward run
Exact tool inventory
get_profilesearch_profilessearch_postsget_author_feedget_postsget_post_threadlist_followerslist_followsget_home_timelinelist_notificationsget_kai_liked_posts
All page sizes are bounded to 50 or below. Post batches are capped at 25 and thread depth plus parent height at 6.
Threat model
The configured app password can authorize account writes, so the adapter must never expose that authority. It has no post, reply, follow, like, repost, delete, mute, block, report, moderation, chat, account mutation, login, generic URL, arbitrary XRPC, or raw HTTP tool. Inputs accept only bounded, validated actors, post AT URIs, cursors, queries, and limits. The app password and session tokens remain in process memory and credential-shaped result fields are stripped before an MCP response is created. SDK failures are deliberately logged without their values.
The source image runs as the non-root node user. Deployment access control,
secret injection, and network exposure are intentionally outside this source
repository.
Development
ward lint, ward typecheck, ward test, ward audit, and ward precommit
are the supported validation verbs. A main-branch workflow tests and publishes
the private image
forgejo.coilysiren.me/coilyco-flight-deck/bluesky-mcp:<full-source-sha>.
Deployment uses a separate read-only forgejo-registry pull credential.
See AGENTS.md and docs/FEATURES.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.