AT Protocol MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ATPROTO_PASSWORD | No | Your Bluesky app password | |
| ATPROTO_CLIENT_ID | No | OAuth client ID | |
| ATPROTO_IDENTIFIER | No | Your Bluesky handle (e.g., handle.bsky.social) | |
| ATPROTO_CLIENT_SECRET | No | OAuth client secret |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_postB | Create a new post on AT Protocol. Supports text, replies, images, external links, and language tags. Requires authentication. |
| create_threadA | Create a multi-post thread on AT Protocol. Posts are automatically chained together with proper reply structure. Useful for longer-form content that exceeds the 300-character limit. Requires authentication. |
| reply_to_postB | Reply to an existing post on AT Protocol. Creates a threaded reply with proper parent/root references. Requires authentication. |
| like_postB | Like a post on AT Protocol. Creates a like record that references the target post. Requires authentication. |
| unlike_postB | Remove a like from a post on AT Protocol. Deletes the like record. |
| repostA | Repost content on AT Protocol. Can be a simple repost or a quote post with additional text. Requires authentication. |
| unrepostB | Remove a repost on AT Protocol. Deletes the repost record. |
| follow_userB | Follow a user on AT Protocol. Creates a follow record for the specified user. Requires authentication. |
| unfollow_userB | Unfollow a user on AT Protocol. Deletes the follow record. |
| get_user_profileA | Retrieve a user profile from AT Protocol. Returns detailed profile information including stats and verification status. Works without authentication but provides additional viewer-specific data (following status, muted/blocked status) when authenticated. |
| search_postsB | Search for posts on AT Protocol. Supports text search with various filters including author, language, date range, and more. Requires authentication (AT Protocol API changed in 2025 to require auth for search). |
| get_timelineC | Retrieve the user's timeline/feed from AT Protocol. Returns posts from followed users and recommended content. Requires authentication. |
| get_followersC | Retrieve followers of a user from AT Protocol. Returns a list of users who follow the specified actor. |
| get_followsB | Retrieve users that an actor follows from AT Protocol. Returns a list of users followed by the specified actor. |
| get_notificationsC | Retrieve notifications from AT Protocol. Returns likes, reposts, follows, mentions, and replies. |
| delete_postA | Delete a post on AT Protocol. Permanently removes the post from the user's repository. |
| update_profileB | Update user profile on AT Protocol. Can modify display name, description, avatar, and banner. |
| start_oauth_flowA | Start OAuth authorization flow for AT Protocol authentication. Returns authorization URL that user must visit. No authentication required. |
| handle_oauth_callbackC | Handle OAuth callback and exchange authorization code for access tokens. |
| refresh_oauth_tokensC | Refresh OAuth access tokens using a refresh token. |
| revoke_oauth_tokensC | Revoke OAuth access and refresh tokens to log out. |
| mute_userA | Mute a user to hide their content from your feeds and notifications without them knowing. |
| unmute_userA | Unmute a previously muted user to restore their content in your feeds. |
| block_userA | Block a user to prevent them from seeing your content and interacting with you. |
| unblock_userA | Unblock a previously blocked user to restore normal interactions. |
| report_contentC | Report content that violates community guidelines or terms of service. |
| report_userC | Report a user account that violates community guidelines or terms of service. |
| analyze_moderation_statusA | Analyze moderation status of a post or user. Returns content labels, moderation decisions, and personal moderation state (blocks, mutes). Subject can be a DID (for users) or AT-URI (for posts). |
| start_streamingC | Start real-time streaming of AT Protocol events from the firehose. Optionally filter by specific collections. |
| stop_streamingC | Stop a specific real-time streaming subscription. |
| get_streaming_statusB | Get the current status of firehose streaming and recent events. |
| get_recent_eventsC | Get recent events from the firehose stream buffer. |
| monitor_keywordsC | Monitor the firehose for posts containing specific keywords. Returns matching posts from the event buffer. |
| track_usersC | Track activity from specific users in the firehose stream. Returns recent events from the specified users. |
| create_listB | Create a new list for organizing users (curate list) or moderation purposes (mod list). |
| add_to_listC | Add a user to an existing list. |
| remove_from_listC | Remove a user from an existing list. |
| get_listC | Get the contents of a list, including all users in the list. |
| get_threadC | Get a complete thread/conversation starting from a specific post, including replies and parent posts. |
| get_custom_feedC | Get posts from a custom algorithm feed. |
| upload_imageB | Upload an image file to AT Protocol for use in posts. Supports JPEG, PNG, GIF, and WebP formats. |
| upload_videoC | Upload a video file to AT Protocol for use in posts. Supports MP4, MOV, and WebM formats. |
| create_rich_text_postC | Create a post with rich text formatting, including mentions, links, hashtags, and media embeds. |
| generate_link_previewB | Generate a link preview with title, description, and thumbnail for a given URL. |
| generate_alt_textB | Generate descriptive alt text for images to improve accessibility. Provide either an image URL or base64 encoded image data. Optionally include context about the image. |
| analyze_engagementC | Analyze engagement patterns across recent posts to identify what content performs well. Provides insights on likes, reposts, replies, and content characteristics. Requires authentication. |
| analyze_networkB | Analyze a user's social network including follower/following ratios, engagement patterns, mutual connections, and network quality metrics. Defaults to authenticated user if no actor specified. |
| suggest_content_strategyA | Analyze past post performance and suggest content strategy including best posting times, engaging content types, topic recommendations, and optimization tips. Defaults to authenticated user if no actor specified. |
| find_influential_usersA | Find influential users in a topic or network. Search by topic/query and filter by follower count. Returns users sorted by followers, engagement, or relevance. |
| discover_trendingC | Discover trending topics, hashtags, and posts in your network. Analyzes recent activity to identify what's popular and emerging. Requires authentication. |
| find_similar_usersC | Find users similar to a given user based on their content, followers, and engagement patterns. Analyzes mutual followers, content topics, and engagement to identify similar accounts. |
| recommend_contentC | Recommend posts based on user interests and engagement history. Analyzes your timeline, engagement patterns, and network to suggest relevant content. |
| discover_communitiesC | Discover communities and groups of users around specific topics or interests. Identifies clusters of users who frequently interact around a topic. |
| batch_followA | Follow multiple users in a single operation. Supports up to 25 users at once. Can continue on errors or stop at first failure. Requires authentication. |
| batch_likeA | Like multiple posts in a single operation. Supports up to 25 posts at once. Can continue on errors or stop at first failure. Requires authentication. |
| batch_repostB | Repost multiple posts in a single operation. Supports up to 25 posts at once. Can continue on errors or stop at first failure. Requires authentication. |
| get_user_summaryB | Get comprehensive user information in a single call. Includes profile, recent posts, and engagement statistics. Works without authentication but provides more data when authenticated. |
| get_post_contextA | Get comprehensive post information in a single call. Includes the post, thread context, author profile, and engagement metrics. Works without authentication but provides more data when authenticated. |
| analyze_imageB | Analyze image metadata and provide optimization suggestions. Returns dimensions, file size, format, and recommendations for better performance and accessibility. |
| extract_media_from_postC | Extract all media content from a post or thread. Returns images, videos, external links, and quote posts. Optionally includes media from entire thread. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| content_composition | Generate engaging social media post content with proper formatting and hashtags. Requires authentication. |
| reply_template | Generate thoughtful reply templates for different types of posts. Requires authentication. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| User Timeline | Current user's timeline feed with recent posts. Requires authentication. |
| User Profile | Current user's profile information and statistics. Requires authentication. |
| User Notifications | Current user's recent notifications and mentions. Requires authentication. |
| Conversation Context | Tracks conversation state including recently discussed posts, active threads, mentioned users, and recent actions. Helps maintain context across interactions. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cameronrye/atproto-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server