API Reference
Complete API reference for the AT Protocol MCP Server, including all tools, resources, and types.
Overview
The AT Protocol MCP Server provides a comprehensive set of tools and resources for interacting with the AT Protocol ecosystem. This reference documentation covers:
- Tools - 51 MCP tools for performing operations
- Resources - 3 MCP resources plus 2 parameterized resource templates for accessing data
- Prompts - 2 MCP prompts for guided content generation
- Types - TypeScript type definitions
OAuth login is on the roadmap but not yet functional, so it is not exposed as a tool. Real-time firehose streaming is not planned as tools. See the Experimental & Roadmap page for details.
Tools
Tools are the primary way to interact with the AT Protocol through the MCP server. Each tool performs a specific operation and returns structured data.
Core Social Operations
Essential tools for social networking operations:
- create_post - Create posts with text, richtext facets, replies, image/external embeds, and quote posts
- create_thread - Create multi-post threads in one call
- reply_to_post - Reply to existing posts with threading
- like_post - Like a post
- unlike_post - Remove a like from a post
- repost - Repost content with optional quotes
- unrepost - Remove a repost
User Operations
Tools for managing user relationships and profiles:
- follow_user - Follow a user
- unfollow_user - Unfollow a user
- get_user_profile - Retrieve user profile information
- search_actors - Find accounts by handle or display name
Data Retrieval
Tools for searching and retrieving data:
- search_posts - Search for posts and content
- get_timeline - Retrieve personalized timeline
- get_author_feed - List a specific user's posts
- get_user_connections - Get follower or following lists via
direction: 'followers' | 'follows' - get_notifications - Access notification feeds (use
countOnly: truefor a cheap unread count) - mark_notifications_seen - Mark notifications as seen up to a timestamp (defaults to now)
Direct Messages
Tools for Bluesky direct messages (chat.bsky.convo, proxied to the Bluesky chat service). They require an app password created with "Allow access to your direct messages" enabled:
- list_conversations - List your DM conversations (filter by
status: 'request' | 'accepted') - get_conversation_messages - Read a conversation's message history
- send_direct_message - Send a direct message to a conversation
Bookmarks
Tools for private, account-scoped bookmarks (other users cannot see them):
- add_bookmark - Privately bookmark a post
- remove_bookmark - Remove a bookmark
- get_bookmarks - List your bookmarks
Content Management
Tools for managing content and media:
- delete_post - Remove posts
- update_profile - Modify profile settings
- upload_image - Upload image content
- upload_video - Upload video content
- generate_link_preview - Generate link preview cards
Moderation
Tools for content and user moderation:
- mute_user - Mute a user
- unmute_user - Unmute a user
- block_user - Block a user
- unblock_user - Unblock a user
- report_content - Report content
- report_user - Report a user
- analyze_moderation_status - Check moderation status of content
Advanced Social Features
Tools for advanced social networking:
- create_list - Create user lists
- add_to_list - Add users to lists
- remove_from_list - Remove users from lists
- get_list - Retrieve list information
- get_custom_feed - Access custom feeds
Batch Operations
Tools for performing multiple operations at once:
- batch_action - Apply one action (
follow,like, orrepost) across up to 25 targets in a single call
Analytics & Insights
Tools for analyzing engagement and network patterns:
- analyze_account - Analyze a single account along one dimension (
engagement,network, orstrategy); engagement rate is engagement per hour since posting, not per follower - find_influential_users - Find influential users in a topic area
Content Discovery
Tools for discovering content and users:
- discover - Surface timeline content via
mode: 'trending' | 'recommended', sampling the caller's own home timeline (not network-wide) - find_similar_users - Find users similar to a given user via shared follows/followers (graph-only; not content/topic similarity)
- discover_communities - Discover communities around topics
- search_starter_packs - Search Bluesky starter packs by keyword (works without authentication)
- get_starter_pack - Fetch a starter pack's details by AT-URI or bsky.app link (works without authentication)
Composite Operations
Tools that combine multiple operations:
- get_user_summary - Get complete user profile with stats and analysis
- get_post_context - Get a post with thread, author, engagement, and media data (replaces the former
get_threadandextract_media_from_post)
Rich Media
Tools for working with images and media:
- analyze_image - Report an image blob's declared size and MIME type (does not decode pixels, so no dimensions or aspect ratio)
Resources
The server exposes 3 static resources that provide read-only access to the authenticated user's AT Protocol data through the MCP protocol:
- Timeline Resource - Current user's timeline feed (requires authentication; calls the real API)
- Profile Resource - Current user's profile information (requires authentication; calls the real API)
- Notifications Resource - Current user's notifications (requires authentication; calls the real API)
It also advertises 2 parameterized resource templates (resources/templates/list) that expose any actor's public data and work without authentication (they fall back to the public API when no session is active):
atproto://profile/{actor}- Public profile and statistics for any actor, addressed by handle (e.g.alice.bsky.social) or DIDatproto://feed/{actor}- Recent public posts by any actor
The {actor} variable supports completion/complete (the server offers the authenticated user's own handle as a candidate).
The placeholder Conversation Context resource (atproto://conversation-context) from earlier releases has been removed — it was never auto-populated and could only return empty content. Reading a URI that matches neither a static resource nor a template returns JSON-RPC error -32002 (Resource not found).
Prompts
The server provides 2 prompts for guided content generation. They are pure text templates and work without authentication:
content_composition- Compose a post from a topic. Arguments:topic,tone,length,include_hashtags.reply_template- Draft a contextual reply. Arguments:original_post,reply_type,relationship.
Prompt arguments support completion/complete: enumerable arguments (such as tone or reply_type) return candidate values, while free-text arguments complete to an empty list.
Types
TypeScript type definitions used throughout the server:
- Core Types - Branded types and AT Protocol identifiers
- Configuration Types - Server and authentication configuration
- Parameter Types - Tool parameter schemas
- Error Types - Error classes and handling
- Utility Types - Helper types and interfaces
Authentication
Most tools require authentication.
App Passwords (Supported)
App passwords are the supported authentication path. Generate an app password in your Bluesky Settings → Privacy and security → App passwords, then set:
export ATPROTO_IDENTIFIER="your-handle.bsky.social"
export ATPROTO_PASSWORD="your-app-password"OAuth (Planned)
OAuth login is on the roadmap but not yet functional, so it is not exposed as a configuration path or a tool. Use app passwords (above) for authentication. See the Authentication Guide and Experimental & Roadmap.
Unauthenticated Mode
The server runs without credentials, but only public/enhanced tools work. In practice this is limited to:
get_user_profile/get_user_summary- Public profile lookup (returns additional viewer-specific data when authenticated)search_actors- Find accounts by handle or display nameget_author_feed- List a user's postsget_user_connections- Follower/following lists (ENHANCED mode: works without auth, enriches the underlying API call when authenticated)search_starter_packs/get_starter_pack- Starter pack search and lookupget_post_context,analyze_image, and other PUBLIC/ENHANCED rich-media and composite tools
All other tools — including search_posts, get_timeline, and get_custom_feed — require authentication. (search_posts previously worked unauthenticated, but the AT Protocol search API changed in 2025 to require auth.)
Error Handling
All tools follow consistent error handling patterns. See the Error Handling Guide for details.
Rate Limiting
The server applies a per-tool rate limit of 100 requests per minute. Requests that exceed the limit for a given tool are rejected until the window resets. See the Configuration Guide for details.
Examples
For practical examples of using these tools, see:
- Basic Usage Examples
- Social Operations Examples
- Content Management Examples
- Custom Integration Examples