Installation
This guide covers all the ways to install and run the AT Protocol MCP Server.
Prerequisites
Before installing, ensure you have:
- Node.js 20 or higher - Download Node.js
- npm, pnpm, or yarn - Package manager (npm comes with Node.js)
- Git (optional) - For cloning the repository
- AT Protocol account (optional) - Only needed for authenticated operations
Verify Prerequisites
# Check Node.js version (should be 20+)
node --version
# Check npm version
npm --versionInstallation Methods
Method 1: Global Installation (Recommended)
Install globally to use the server from anywhere:
npm install -g atproto-mcpAfter installation, you can run the server with:
atproto-mcpMethod 2: Using npx (No Installation)
Run directly without installing:
npx atproto-mcpThis is perfect for:
- Quick testing
- One-time usage
- CI/CD pipelines
Method 3: Local Project Installation
Install as a dependency in your project:
# Using npm
npm install atproto-mcp
# Using pnpm
pnpm add atproto-mcp
# Using yarn
yarn add atproto-mcpThen add to your package.json scripts:
{
"scripts": {
"mcp": "atproto-mcp"
}
}Run with:
npm run mcpMethod 4: From Source (Development)
Clone and build from source for development or customization:
# Clone the repository
git clone https://github.com/cameronrye/atproto-mcp.git
cd atproto-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm start
# Or run in development mode with hot reload
npm run devDocker Installation
Because the server speaks MCP over stdio, the Docker image is normally launched interactively by your MCP client (which attaches to the container's stdin/stdout), not run as a long-lived detached daemon.
Building and Running the Image
# Clone and build the image
git clone https://github.com/cameronrye/atproto-mcp.git
cd atproto-mcp
docker build -t atproto-mcp .
# Run the container over stdio (-i keeps stdin open for the MCP client)
docker run -i --rm \
-e ATPROTO_IDENTIFIER=your.handle \
-e ATPROTO_PASSWORD=your-app-password \
atproto-mcpPoint your MCP client at docker run -i --rm ... atproto-mcp as the server command. See Deployment for a complete client-configuration example.
stdio transport
The server communicates over the stdio transport and does not bind a network port, so no -p/port publishing is required. The Dockerfile deliberately has no EXPOSE line — nothing listens on a port.
Verification
After installation, verify the server is working:
Check Version
atproto-mcp --versionCheck Help
atproto-mcp --helpTest Basic Functionality
Start the server:
atproto-mcpYou should see output like:
[2026-06-11T12:00:00.000Z] INFO [ToolsFactory] Created 51 AT Protocol MCP tools
[2026-06-11T12:00:00.000Z] INFO [AtpMcpServer] Registered 51 MCP tools
[2026-06-11T12:00:00.000Z] INFO [AtpMcpServer] Registered 3 MCP resources and 2 resource templates
[2026-06-11T12:00:00.000Z] INFO [AtpMcpServer] Registered 2 MCP prompts
[2026-06-11T12:00:00.000Z] INFO [AtpMcpServer] Starting AT Protocol MCP Server...
[2026-06-11T12:00:00.000Z] INFO [AtpMcpServer] AT Protocol MCP Server started successfullyLogs are written to stderr (stdout carries the MCP protocol).
Health Check
By default the server uses the stdio transport and does not expose an HTTP endpoint (with --transport http, only /mcp is served — there is no /health route). The bundled health check is a process-local smoke check that loads the package, builds and validates the configuration, and checks this process's heap — it does not bind a port or probe a running server:
node dist/health-check.jsA successful run exits with status 0.
Troubleshooting Installation
Node.js Version Issues
If you get errors about Node.js version:
# Install nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Install Node.js 20
nvm install 20
nvm use 20Permission Errors (Global Install)
On Linux/macOS, you might need sudo:
sudo npm install -g atproto-mcpOr configure npm to install globally without sudo:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrcBuild Errors (From Source)
If you encounter build errors:
# Clean and reinstall
rm -rf node_modules package-lock.json
npm install
# Clear npm cache
npm cache clean --force
# Try with different package manager
pnpm installDocker Issues
If Docker containers won't start:
# Check Docker is running
docker ps
# View container logs
docker logs atproto-mcp
# Rebuild the image after pulling changes
docker build -t atproto-mcp .Ports
The server uses the stdio transport and does not bind a network port, so "port already in use" errors do not apply to the server process itself. The --port/--host flags are accepted for compatibility but are ignored.
Updating
Global Installation
npm update -g atproto-mcpLocal Installation
npm update atproto-mcpDocker
# Pull the latest source and rebuild the image
git pull origin main
docker build -t atproto-mcp .From Source
git pull origin main
npm install
npm run buildUninstallation
Global Installation
npm uninstall -g atproto-mcpLocal Installation
npm uninstall atproto-mcpDocker
# Stop and remove the container (if one is running)
docker rm -f atproto-mcp
# Remove the image
docker rmi atproto-mcpNext Steps
Now that you have the server installed:
- Quick Start - Get up and running
- Configuration - Configure the server
- Authentication - Set up authentication (optional)
Previous: Introduction ← | Next: Quick Start →