Skip to content

Getting Started ​

This guide will help you get up and running with the AT Protocol MCP Server quickly.

Prerequisites ​

Before you begin, ensure you have:

  • Node.js 20+ installed on your system
  • npm or pnpm package manager
  • An AT Protocol account (e.g., Bluesky account)
  • Basic familiarity with command line interface

Installation ​

The fastest way to try the server is with npx (no install required):

bash
npx atproto-mcp

Or install it globally:

bash
npm install -g atproto-mcp

For all installation methods (global, local, from source, and Docker), see the Installation guide.

Quick Start ​

1. Basic Setup ​

Start the MCP server with default settings:

bash
atproto-mcp

This starts the server using the default stdio transport — it communicates over standard input/output, not a network port, so your MCP client launches it as a subprocess. No port is bound. (Alternatively, --transport http serves the MCP Streamable HTTP transport at http://127.0.0.1:3000/mcp; see the Configuration guide.)

2. Authentication ​

The server runs unauthenticated, but only public/enhanced tools work in that mode (for example get_user_profile, get_user_connections, get_author_feed, search_actors, and analyze_image). search_posts and all other tools require credentials, since the AT Protocol search API began requiring authentication in 2025. For full functionality, authenticate with an app password — this is the supported path.

  1. Go to your Bluesky settings and generate an app password
  2. Set environment variables:
bash
export ATPROTO_IDENTIFIER="your-handle.bsky.social"
export ATPROTO_PASSWORD="your-app-password"
atproto-mcp

For the full authentication reference (verification, security tips, mode comparison), see the Authentication guide.

OAuth (Planned) ​

Planned

OAuth login is on the roadmap but not yet functional, so it is not exposed as a tool or configuration path. Use app passwords for working authentication. See Experimental & Roadmap.

3. Configure Your LLM Client ​

Configure your MCP-compatible LLM client (e.g., Claude Desktop) to connect to the server:

json
{
  "mcpServers": {
    "atproto": {
      "command": "atproto-mcp",
      "args": [],
      "env": {
        "ATPROTO_IDENTIFIER": "your-handle.bsky.social",
        "ATPROTO_PASSWORD": "your-app-password"
      }
    }
  }
}

Configuration Options ​

Common flags for a quick start:

bash
atproto-mcp --service https://bsky.social --auth app-password --log-level info

The --port/--host flags only take effect with --transport http; the default stdio transport ignores them.

For the full list of CLI flags and environment variables, see the Configuration guide.

First Steps ​

Once your MCP server is configured and your LLM client is running, try these basic operations by talking to your LLM client in natural language:

1. Create a Post ​

What you say to your LLM client:

"Create a post saying 'Hello from AT Protocol MCP Server!'"

Your LLM client will use the create_post tool to publish your post.

2. Search Posts ​

What you say to your LLM client:

"Search for posts about 'artificial intelligence' from the last week"

Your LLM client will use the search_posts tool to find relevant posts.

3. Get User Profile ​

What you say to your LLM client:

"Get the profile information for @bsky.app"

Your LLM client will use the get_user_profile tool to retrieve the profile.

4. Follow a User ​

What you say to your LLM client:

"Follow @atproto.com"

Your LLM client will use the follow_user tool to follow the user.

Verification ​

To verify everything is working correctly:

  1. Check server logs for successful startup messages
  2. Test authentication by creating a simple post
  3. Verify MCP connection through your LLM client
  4. Try basic operations like searching or getting profiles

Troubleshooting ​

Common Issues ​

Server won't start:

  • Check Node.js version (requires 20+)
  • Check environment variables

Authentication fails:

  • Verify credentials are correct
  • Check AT Protocol service URL
  • Ensure the app password is valid (OAuth login cannot be completed yet — use an app password)

LLM client can't connect to MCP server:

  • Verify MCP server configuration in your LLM client
  • Check that the server command is correct
  • Review LLM client logs for MCP connection errors

Rate limiting errors:

  • Reduce request frequency
  • Check AT Protocol rate limits
  • Implement proper backoff

Getting Help ​

If you encounter issues:

  1. Search existing issues
  2. Create a new issue with details
  3. Check the server logs for error messages
  4. Verify your configuration and credentials

Next Steps ​

Now that you have the MCP server configured with your LLM client:

  • Explore available tools - Ask your LLM client what it can do with AT Protocol
  • Try natural language commands - Create posts, search content, manage your social graph
  • Review the documentation - Learn about all available MCP tools and resources
  • Extend the server - Consider contributing new MCP tools to the project

Development Setup ​

For development and customization:

bash
# Clone the repository
git clone https://github.com/cameronrye/atproto-mcp.git
cd atproto-mcp

# Install dependencies
npm install

# Start development server
npm run dev

# Run tests
npm test

See the contributing guide for more details on development setup.