Skip to content

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:

User Operations ​

Tools for managing user relationships and profiles:

Data Retrieval ​

Tools for searching and retrieving data:

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:

Bookmarks ​

Tools for private, account-scoped bookmarks (other users cannot see them):

Content Management ​

Tools for managing content and media:

Moderation ​

Tools for content and user moderation:

Advanced Social Features ​

Tools for advanced social networking:

Batch Operations ​

Tools for performing multiple operations at once:

  • batch_action - Apply one action (follow, like, or repost) 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, or strategy); 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_thread and extract_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 DID
  • atproto://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:

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:

bash
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 name
  • get_author_feed - List a user's posts
  • get_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 lookup
  • get_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:

Support ​