Skip to main content
Glama

atproto-mcp

Tests

MCP server providing a searchable knowledge base for the AT Protocol ecosystem — protocol documentation, lexicon schemas, Bluesky developer API docs, and cookbook examples — powered by txtai semantic search.

Data Sources

Source

Repository

Description

AT Protocol Website

bluesky-social/atproto-website

Protocol specs, guides, and blog posts from atproto.com

Bluesky API Docs

bluesky-social/bsky-docs

Developer docs from docs.bsky.app — tutorials, guides, advanced topics

AT Protocol Lexicons

bluesky-social/atproto

JSON schemas defining all AT Protocol endpoints and record types

Cookbook

bluesky-social/cookbook

Example projects in Python, Go, TypeScript, and JavaScript

Related MCP server: mcp-docs

Tools

Tool

Description

search_atproto_docs

Semantic search across all documentation sources

get_lexicon

Retrieve a specific lexicon by NSID (e.g. app.bsky.feed.post)

list_lexicons

List all lexicons, optionally filtered by namespace

search_lexicons

Semantic search within lexicon schemas

get_cookbook_example

Get a specific cookbook example by project name

list_cookbook_examples

List all cookbook examples, optionally by language

search_bsky_api

Semantic search within Bluesky API docs

refresh_sources

Force re-fetch repos and rebuild the index

Prompts

Prompt

Description

explain_lexicon

Get a comprehensive explanation of a lexicon

implement_feature

Get implementation guidance with code examples

debug_atproto

Help debug AT Protocol / Bluesky API issues

explore_namespace

Explore all lexicons in a namespace

Installation

Prerequisites

  • Python 3.12+

  • uv (recommended) or pip

  • Git (for cloning source repositories)

Install from source

git clone https://github.com/Ashex/atproto-mcp.git
cd atproto-mcp
uv sync

Run with uvx

uvx atproto-mcp

Configuration

Download atproto-mcp-<version>.mcpb from the latest release and open it. Claude Desktop shows an install dialog with optional fields for the cache directory, refresh interval, and embedding model; leave them blank for the defaults. No Python or JSON editing required — the host installs dependencies with uv.

Bundles are self-signed, so the installer shows an "unknown publisher" warning. See Releases for what that does and does not guarantee.

Every other host below uses the PyPI package and is unaffected by the bundle.

VS Code / Copilot

Install in VS Code

Add to .vscode/mcp.json in your workspace:

{
  "mcpServers": {
    "atproto": {
      "command": "uvx",
      "args": [
        "atproto-mcp"
        ]
    }
  }
}

Kiro Power

  1. Open Kiro → Powers

  2. Select Import power from GitHub

  3. Enter https://github.com/Ashex/atproto-mcp

Claude Desktop (manual)

Prefer the MCPB bundle above. To configure by hand instead, add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "atproto": {
      "command": "uvx",
      "args": [
         "atproto-mcp"
      ]
    }
  }
}

MCPHub

Add to ~/.config/mcphub/servers.json:

{
  "mcpServers": {
    "atproto": {
      "command": "uvx",
      "args": ["atproto-mcp"]
    }
  }
}

OpenCode

Add to your opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "atproto": {
      "type": "local",
      "command": ["uvx", "atproto-mcp"]
    }
  }
}

Environment Variables

Variable

Default

Description

ATPROTO_MCP_CACHE_DIR

~/.cache/atproto-mcp

Where repos and the search index are stored

ATPROTO_MCP_REFRESH_HOURS

24

Hours before re-fetching repositories

ATPROTO_MCP_EMBEDDING_MODEL

BAAI/bge-small-en-v1.5

Sentence-transformers model for embeddings

How It Works

The server connects immediately and warms up in the background, so a slow first run never blocks the host's startup handshake.

On first launch, warmup:

  1. Shallow clones the repos into ~/.cache/atproto-mcp/repos/

  2. Parses MDX docs, lexicon schemas, and cookbook examples into text chunks

  3. Indexes the chunks using txtai hybrid search (BM25 keyword + dense vectors from the bge-small-en-v1.5 sentence-transformer, ~130MB, runs locally) — exact identifiers like NSIDs match reliably alongside semantic queries

  4. Index is persisted in ~/.cache/atproto-mcp/index/ for subsequent starts

This takes a few minutes. Until it finishes, tools return a short message describing what the server is doing rather than failing. If warmup fails — no network yet, for example — the server stays up, says so, and retries on its own with exponential backoff until an index is in service. refresh_sources forces a retry immediately.

On subsequent launches the cached index is loaded and put into service before any network access, so queries work within seconds even offline. Repos older than 24 hours are then refreshed with a shallow fetch and a hard reset to the tracked branch. If the refreshed repos differ from what the index was built from, the existing index keeps serving queries while a fresh one is rebuilt in the background and swapped in when ready.

Development

# Install in development mode
uv sync

# Run the server locally (stdio)
uv run atproto-mcp

# Test with the MCP Inspector
uv run mcp dev src/atproto_mcp/server.py

# Run with debug logging
ATPROTO_MCP_CACHE_DIR=/tmp/atproto-mcp uv run atproto-mcp

# Run the test suite (what CI runs)
uv run python -m unittest discover -s tests -p 'test*.py'

# Build the MCPB bundle
npm install -g @anthropic-ai/mcpb
mcpb validate .
mcpb pack . /tmp/atproto-mcp.mcpb

License

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
3moRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Bluesky MCP — wraps the AT Protocol API

  • MCP server for accessing curated awesome list documentation

  • Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.

View all MCP Connectors

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/Ashex/atproto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server