ActivityPub MCP 联邦宇宙客户端服务器使用说明

项目简介

'ActivityPub MCP' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM,如Claude)提供与联邦宇宙(Fediverse)交互的能力。它不作为一个独立的ActivityPub服务器运行,而是作为客户端连接到现有的联邦宇宙实例(如Mastodon、Pleroma、Misskey等),从而允许LLM发现联邦宇宙中的用户、获取时间线、查询实例信息并进行内容搜索。

主要功能点

  • 探索联邦宇宙: 允许LLM发现和交互现有的ActivityPub服务器。
  • WebFinger发现: 查找并发现联邦宇宙中的任何用户(Actor)。
  • 时间线获取: 获取任何用户的最新动态(Posts)。
  • 实例信息: 获取关于任何联邦宇宙实例的详细信息。
  • 内容搜索: 在指定联邦宇宙实例上搜索内容、用户或话题标签。
  • 实例发现与推荐: 发现流行实例,并根据兴趣获得个性化实例推荐。
  • MCP协议支持: 完全实现了MCP协议,包括资源、工具和提示,为LLM提供标准化的交互接口。

安装步骤

  1. 先决条件: 确保您的系统已安装 Node.js 18+ (推荐LTS版本) 和 npm (或 yarn)。
  2. 克隆仓库: 打开您的终端或命令行工具,执行以下命令:
    git clone https://github.com/cameronrye/activitypub-mcp.git
    cd activitypub-mcp
  3. 安装依赖: 进入项目目录后,安装所有必需的依赖:
    npm install
  4. 启动MCP服务器: 执行以下命令启动MCP服务器:
    npm run mcp
    服务器启动后将保持运行,等待MCP客户端(如Claude Desktop或MCP Inspector)连接。

服务器配置

为了让您的MCP客户端(例如Claude Desktop)能够连接并使用 'ActivityPub MCP' 服务器,您需要将以下配置信息添加到客户端的配置文件中。

MCP客户端配置示例:

例如,在Claude Desktop中,找到其配置文件 'claude_desktop_config.json'(通常在 macOS 位于 '~/Library/Application Support/Claude/claude_desktop_config.json',Windows 位于 '%APPDATA%\Claude\claude_desktop_config.json'),然后添加或修改 'mcpServers' 部分,使其包含以下内容:

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

配置说明:

  • 'activitypub': 这是MCP服务器的名称,您的LLM客户端将通过此名称来识别和引用这个MCP服务器。
  • 'command': MCP服务器的启动命令。在这里,我们使用 'npx',它允许您运行npm包而无需进行全局安装,确保每次都使用最新版本。
  • 'args': 传递给启动命令的参数。
    • '-y': 用于自动确认 'npx' 在执行时可能遇到的提示(例如安装缺失的包)。
    • 'activitypub-mcp': 这是您正在运行的 'ActivityPub MCP' 服务器的npm包名。

配置完成后,请 重启您的MCP客户端 以加载新的服务器配置。

基本使用方法

一旦MCP客户端成功连接到 'ActivityPub MCP' 服务器,LLM就可以通过调用其提供的工具和访问资源来与联邦宇宙交互。以下是一些基本的使用示例:

  • 发现联邦宇宙用户 (工具调用): LLM可以通过调用 'discover-actor' 工具来查找联邦宇宙中的特定用户,例如: 'tool_code("discover-actor", {"identifier": "[email protected]"})' (这将尝试发现Mastodon创始人 Eugen Rochko 的信息)

  • 获取联邦宇宙实例信息 (工具调用): LLM可以通过调用 'get-instance-info' 工具来获取某个联邦宇宙实例的详细信息,例如: 'tool_code("get-instance-info", {"domain": "mastodon.social"})' (这将返回 'mastodon.social' 实例的软件版本、用户统计等信息)

  • 获取远程用户时间线 (资源访问): LLM可以直接读取 'activitypub://remote-timeline/{identifier}' 资源来获取用户的公开时间线(最新动态),例如: 'read_resource("activitypub://remote-timeline/[email protected]")' (这将获取 Eugen Rochko 在Mastodon上的最新帖子列表)

  • 探索联邦宇宙 (提示模板): LLM可以使用 'explore-fediverse' 提示模板来获取关于如何探索联邦宇宙的建议和指导,例如: 'prompt("explore-fediverse", {"interests": "technology and programming", "instanceType": "mastodon"})' (这将生成一段文本,建议LLM如何根据“技术和编程”的兴趣在Mastodon实例上探索联邦宇宙)

信息

分类

AI与计算