Skip to main content
Glama
ewanc26

ATProto MCP Server

by ewanc26
README.md
# MCP Server for AT Protocol

An MCP server that gives compatible clients access to Bluesky and the AT Protocol over stdio. It works without credentials for public reads and enables account actions when Bluesky credentials are configured.

> Independent project; see the [trademark notice](TRADEMARKS.md).

## Available tools

Public tools: `get_profile`, `resolve_handle`, `search_posts`, `get_author_feed`, `get_post_thread`, `get_suggestions`, `get_actor_likes`, `get_followers`, and `get_follows`.

Authenticated tools: `get_timeline`, `create_post`, `delete_post`, `follow`, `unfollow`, `like`, and `unlike`.

Cursor-based tools accept the `cursor` returned by a previous response. Write operations use AT URIs (and, for likes, the target CID) so callers can safely refer to exact records.

## Install and run

Requires Node.js 20 or newer.

```bash
npm install
npm run build
npm start
```

The default read-only endpoint is `https://public.api.bsky.app`. To use another service, set `BSKY_SERVICE`.

For authenticated tools, set `BSKY_HANDLE` and `BSKY_PASSWORD`. A Bluesky app password is recommended instead of the account password. When credentials are present, the default service changes to `https://bsky.social`.

## MCP client configuration

Build the project first, then add it to your client's MCP configuration:

```json
{
  "mcpServers": {
    "atproto": {
      "command": "node",
      "args": ["/absolute/path/to/atproto-mcp-server/build/index.js"],
      "env": {
        "BSKY_HANDLE": "alice.bsky.social",
        "BSKY_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}
```

Omit `env` for read-only use. The server writes logs to stderr, leaving stdout reserved for MCP messages.

## Development

```bash
npm test
```

The tests build the TypeScript project and validate that the advertised MCP tool surface is backed by handlers, including argument validation and AT Protocol request mapping.

## Support

If you find this project useful, consider supporting its development:

[![Ko-fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/ewancroft)
[![GitHub Sponsors](https://img.shields.io/badge/GitHub%20Sponsors-30363D?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/ewanc26)

## Star History

<a href="https://www.star-history.com/?repos=ewanc26%2Fatproto-mcp-server&type=date&legend=bottom-right">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=ewanc26/atproto-mcp-server&type=date&theme=dark&legend=bottom-right" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=ewanc26/atproto-mcp-server&type=date&legend=bottom-right" />
   <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=ewanc26/atproto-mcp-server&type=date&legend=bottom-right" />
 </picture>
</a>

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct aspect of the AT Protocol: feed, thread, profile, suggestions, handle resolution, and search. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, using verbs like get, resolve, and search paired with specific nouns.

Tool Count5/5

With 6 tools, the server is appropriately scoped for its purpose, covering key read operations without being excessive or insufficient.

Completeness4/5

The tools cover common read and query operations for Bluesky, but lack write capabilities (e.g., posting, following), which may be intentional but leaves a minor gap.

Maintenance

ActivityActive
ResponsivenessNo issues