MCP server for AT Protocol exploration tools
npm install at-explore-mcpA Model Context Protocol (MCP) server that provides AI assistants with tools to explore and interact with AT Protocol (Bluesky) and ActivityPub (Mastodon, Pixelfed) data.
No installation required. Configure Claude Desktop to run directly:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
``json`
{
"mcpServers": {
"at-explore": {
"command": "npx",
"args": ["-y", "at-explore-mcp"]
}
}
}
Restart Claude Desktop after saving.
`bash`
npm install -g at-explore-mcp
Then configure Claude Desktop:
`json`
{
"mcpServers": {
"at-explore": {
"command": "at-explore-mcp"
}
}
}
For Claude Code, use the hosted HTTP endpoint:
`bash`
claude mcp add --transport http at-explore https://mcp.atexplore.social/mcp
Verify with:
`bash`
claude mcp list
> Note: The HTTP endpoint provides read-only tools. For authentication and write capabilities, use the local STDIO installation (Option 1 or 2).
`bash`
git clone https://github.com/johnwhiteside/at-explore-mcp.git
cd at-explore-mcp
npm install
npm run build
Configure Claude Desktop to use the local build:
`json`
{
"mcpServers": {
"at-explore": {
"command": "node",
"args": ["/path/to/at-explore-mcp/build/index.js"]
}
}
}
| Tool | Description |
|------|-------------|
| search_handles | Search for user handles |get_user_profile
| | Get user profile information |get_account_document
| | Get DID document and verification status |get_repository_summary
| | Get repository metadata and collection stats |get_user_collections
| | List all collections for a user |get_user_collection
| | Get records from a specific collection |browse_collection_records
| | Browse paginated collection records |get_verification_status
| | Check verification status |verify_handle
| | Comprehensive domain handle verification |get_verifications
| | Get list of verifications |get_verifiers
| | Get list of verifiers |check_verification
| | Check if a user is verified |get_record
| | Get a specific AT Protocol record |get_record_by_uri
| | Get record by AT URI |get_at_explore_link
| | Generate AT Explore web link |get_at_explore_link_by_uri
| | Generate AT Explore link from URI |get_all_link_sources
| | Get engagement stats (likes, reposts, follows) |get_specific_backlinks
| | Get backlink records for a collection |get_profile_backlinks
| | Get backlinks to a user's profile |get_record_backlinks
| | Get backlinks to a specific record |get_at_stats
| | Get follower/following/posts counts |get_user_blobs
| | Get list of blob CIDs for a user |get_bridge_status
| | Check Bridgy Fed status for AT account |get_activitypub_profile
| | Get ActivityPub user profile |get_activitypub_posts
| | Get posts from ActivityPub user |get_activitypub_post
| | Get specific ActivityPub post |get_activitypub_stats
| | Get ActivityPub user stats |get_activitypub_bridge_status
| | Check Bridgy Fed status for AP account |
| Tool | Description |
|------|-------------|
| login | Authenticate with Bluesky via OAuth |logout
| | Clear authentication session |whoami
| | Get current authenticated user info |check_auth
| | Check if authenticated |
| Tool | Description |
|------|-------------|
| create_post | Create a new Bluesky post |create_record
| | Create any AT Protocol record |update_record
| | Update an existing record |delete_record
| | Delete a record |
The MCP server now includes support for exploring federated ActivityPub content from platforms like Mastodon, Pixelfed, and other compatible services.
`typescript
// Get a Mastodon user profile
get_activitypub_profile({ handle: "Gargron@mastodon.social" })
// Get posts with pagination
get_activitypub_posts({ handle: "user@mastodon.social" })
// Get next page of posts
get_activitypub_posts({
handle: "user@mastodon.social",
page: "https://mastodon.social/users/user/outbox?max_id=123&page=true"
})
// Get individual post
get_activitypub_post({
handle: "user@mastodon.social",
postId: "aHR0cHM6Ly9tYXN0b2Rvbi5zb2NpYWwvdXNlcnMvdXNlci9zdGF0dXNlcy8xMjM"
})
`
The STDIO server supports OAuth authentication with Bluesky:
1. Use the login tool with your Bluesky handlewhoami
2. A browser window opens for OAuth authorization
3. After authorizing, your session is stored locally
4. Use to verify your authenticated identitylogout
5. Use to clear the session
Sessions are stored in:
- macOS/Linux: ~/.config/at-explore-mcp/%APPDATA%\at-explore-mcp\
- Windows:
`bash`
npm install # Install dependencies
npm run build # Build TypeScript
npm run dev # Watch mode
npm run mcp # Run STDIO server locally
npm test # Run tests
npm run test:smoke # Run smoke tests
A read-only HTTP API is hosted at https://mcp.atexplore.social`. See the API documentation for available endpoints.
This MCP server queries the AT Explore API for AT Protocol data.
MIT