mcpField
A
activitypub-mcp

activitypub-mcp

本地服务
github.com/cameronrye社交媒体1718 周前更新

关于 activitypub-mcp

activitypub-mcp 是面向 LLM 的联邦宇宙 MCP 服务,可浏览 Mastodon、Misskey、Pleroma 等 ActivityPub 服务。它默认仅开放读取工具,写入操作需显式启用。

主要功能

  1. 01读取公开时间线和帖子串
  2. 02搜索内容与热门话题
  3. 03探索账号和实例信息
  4. 04支持多账号认证
  5. 05可选启用发帖等写入操作

适用场景

  1. 01汇总联邦宇宙账号的近期帖子
  2. 02搜索公开帖子和热门话题
  3. 03查看通知、书签和收藏
  4. 04在启用写入后发布或互动

MCP 相关

该服务向 MCP 客户端提供联邦宇宙的读取工具,默认不注册写入工具;设置 ACTIVITYPUB_ENABLE_WRITES=true 后可启用发帖、回复、关注等变更操作。支持 stdio 和带令牌保护的 HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cameronrye-activitypub": {
"command": "npx",
"args": [
"-y",
"activitypub-mcp"
],
"env": {
"ACTIVITYPUB_ENABLE_WRITES": "<ACTIVITYPUB_ENABLE_WRITES>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令npx -y activitypub-mcp
需要配置的环境变量
ACTIVITYPUB_ENABLE_WRITESEnable write/mutation tools (post, reply, follow, boost, block). Off by default: read-only unless set to 'true'. See SECURITY.md.
LOG_LEVELLogging verbosity: debug, info, warn, or error.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmactivitypub-mcp3.2.1

工具

18

收录的工具列表 · 更新于 2 周前

参数类型必填说明
identifierstring是Actor 句柄,格式为 'user@domain' 或 '@user@domain'(例如,'[email protected]')

详细介绍

ActivityPub MCP 标志

ActivityPub MCP 服务

面向大模型的 Fediverse 客户端

一个轻量级的 Model Context Protocol (MCP) 服务,可让大模型探索并与现有 Fediverse 交互,包括 Mastodon、Misskey、Foundkey、Pleroma 及兼容的服务。默认仅提供只读功能;写入工具需主动启用。

npm 版本 许可证:MIT TypeScript Node.js 兼容 MCP

CI npm 下载量 GitHub 星标数

Glama 质量和维护评分 Smithery


安装

需要 Node.js 20+。

npx -y activitypub-mcp

一键安装:

添加到 Cursor 在 VS Code 中安装

Claude Desktop

**一键安装:**从最新版本下载 .mcpb 捆绑包(activitypub-mcp-<version>.mcpb),并在 Claude Desktop 中打开。

**手动安装:**编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

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

重启 Claude Desktop。

Cursor

编辑 ~/.cursor/mcp.json:

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

重启 Cursor。


默认只读

开箱即用时,仅注册读取工具:发现账号、获取时间线、搜索、获取串文、探索实例、读取热门内容。MCP 会话中不存在写入工具,因此注入的 Fediverse 内容无法触发账号操作。

公开读取工具(无需账号):discover-actor、fetch-timeline、get-post-thread、get-instance-info、get-public-timeline、get-trending-hashtags、get-trending-posts、search、discover-instances。

已认证读取工具(需要账号):list-accounts、switch-account、verify-account、get-home-timeline、get-notifications、get-bookmarks、get-favourites、get-relationship。

启用写入

在环境变量或 MCP 配置的 env 块中设置 ACTIVITYPUB_ENABLE_WRITES=true。这会注册完整的变更工具集:发帖、回复、删除、转发、收藏、书签、关注、静音、屏蔽、投票、上传媒体和定时发帖。启用前请阅读威胁模型。

{
  "mcpServers": {
    "activitypub": {
      "command": "npx",
      "args": ["-y", "activitypub-mcp"],
      "env": {
        "ACTIVITYPUB_ENABLE_WRITES": "true"
      }
    }
  }
}
身份验证

使用命令行登录:

npx activitypub-mcp login mastodon.social

这会在浏览器中运行 OAuth(Mastodon 系列)或 MiAuth(Misskey),并将凭据保存到 ~/.config/activitypub-mcp/accounts.json。支持多个账号,可使用 switch-account 切换当前账号。

或者,设置 ACTIVITYPUB_DEFAULT_INSTANCE 和 ACTIVITYPUB_DEFAULT_TOKEN 环境变量,无需通过命令行流程即可使用单个账号。


平台支持

discover-actor 和 fetch-timeline 使用纯 ActivityPub(WebFinger → actor → outbox),因此可以读取任何符合规范的 ActivityPub 服务——Mastodon、Misskey、Foundkey、Pleroma/Akkoma、Lemmy(社区和用户)、PeerTube(频道和账号)、GoToSocial 和 Pixelfed。

实例 API 读取工具(search、get-trending-hashtags、get-trending-posts、get-public-timeline)和所有写入工具都需要 Mastodon 或 Misskey API 实例,因为它们会调用这些平台的 REST API。登录使用 OAuth(Mastodon 系列)或 MiAuth(Misskey)。


示例

将服务添加到 MCP 客户端后,可以试试:

“查找 @[email protected] 并总结其最新帖子。”

模型会调用 discover-actor 获取个人资料,然后调用 fetch-timeline 阅读近期帖子。

请参阅 examples/,了解可直接复制粘贴的示例方案——Fediverse 研究摘要、定时串帖、通知分类、带替代文本的图片帖子,以及主题整理。


HTTP 传输

除 stdio(默认)外,服务还支持 HTTP 模式,提供需要 bearer 验证的 /mcp 端点和 /health 存活检查。设置 MCP_HTTP_SECRET(至少 16 个字符)即可启用。

若要将其自托管为服务,仓库中提供了 Dockerfile 和 docker-compose.yml(HTTP 模式):

export MCP_HTTP_SECRET=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")
docker compose up --build   # then: curl http://localhost:8080/health

完整配置请参阅文档。


安全

此服务会获取所有人都可写入的 Fediverse 内容——帖子、简介、通知——并将其提供给大模型。这些内容可能包含提示注入载荷。通知属于未经请求的渠道:任何人都可以提及你的账号。<untrusted-content> 封装和默认只读设置可以缩小风险面,但无法完全消除风险。

完整的威胁模型、SSRF 防护、凭据处理和报告说明,请参阅 SECURITY.md。


文档

完整的工具参考、资源列表、提示词目录、环境变量指南和部署说明请见文档网站:

cameronrye.github.io/activitypub-mcp/docs/


许可证

MIT——请参阅 LICENSE。

致谢

本项目基于 Anthropic 的 Model Context Protocol,并按照 ActivityPub(W3C)和 ActivityStreams 规范与去中心化社交网络交互。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。