v3.2.1

Connect LLMs to the Fediverse

ActivityPub MCP connects LLMs like Claude and ChatGPT to the Fediverse over ActivityPub and WebFinger. No instance of your own required.

How it works

Your LLM talks to the ActivityPub MCP server over the Model Context Protocol; the server speaks ActivityPub and WebFinger to the wider Fediverse.

ActivityPub MCP data flow An LLM such as Claude or ChatGPT connects over the MCP protocol to the activitypub-mcp server, which connects over ActivityPub and WebFinger to Fediverse instances like Mastodon and Misskey. MCP protocol ActivityPub / WebFinger LLM Claude / ChatGPT activitypub-mcp MCP server Fediverse Mastodon / Misskey / …

What sets it apart

  1. Native ActivityPub & WebFinger

    Resolve any @user@instance handle and traverse real ActivityPub data (actors, outboxes, threads) without running a server of your own.

  2. Multi-account, timeline & write tooling

    Switch between configured accounts, read home and public timelines, and post, reply, boost, favourite, and follow, all as first-class MCP tools.

  3. LLM-optimized resources & prompts

    Capabilities are exposed as structured resources and guided prompt templates, so models reason over clean data instead of scraping HTML.

  4. Hardened by design

    SSRF guards, response-size caps, thread-traversal limits, and full-surface audit logging keep exploration safe against hostile peers.

  5. Typed end to end

    A fully typed TypeScript + ESM implementation with strict linting, so behavior stays predictable and contributions stay safe.

  6. Cross-platform install

    One npx command wires the server into Claude Desktop, ChatGPT, and any MCP-compatible client on macOS, Linux, and Windows.

Quick install

Install once, then point your MCP client at it. Copy the snippet for your client below.

1. Install

bash
npx -y activitypub-mcp

Claude Desktop

json
{
  "mcpServers": {
    "activitypub": {
      "command": "npx",
      "args": ["-y", "activitypub-mcp"]
    }
  }
}

ChatGPT / MCP client

json
{
  "mcpServers": {
    "activitypub": {
      "command": "npx",
      "args": ["-y", "activitypub-mcp"],
      "env": { "ACTIVITYPUB_DEFAULT_INSTANCE": "mastodon.social" }
    }
  }
}