项目简介

AT Protocol MCP 服务器是一个功能全面的后台服务,旨在让LLM客户端能够无缝访问并操作AT Protocol上的社交网络数据。它基于Model Context Protocol (MCP) 标准,向LLM提供上下文信息、功能调用和可定制的交互模式,支持无需认证的公共数据访问,以及通过认证后的高级操作。

主要功能点

  • 访问公共AT Protocol数据: 无需认证即可搜索帖子、查看用户资料、浏览公共动态和话题。
  • 完整的社交操作: 认证后可创建、回复、点赞、转发帖子,关注/取消关注用户,以及管理个人资料。
  • 实时数据流: 支持WebSocket连接以获取AT Protocol的实时事件流,例如新帖子和互动通知。
  • 高级内容管理与审核: 支持上传图片/视频,创建富文本帖子,以及静音、屏蔽、举报用户和内容,维护社交环境健康。
  • OAuth认证流程管理: 为LLM客户端提供启动、处理和刷新OAuth认证的工具,简化认证流程。
  • 可定制的Prompt模板: 提供用于生成社交帖子和回复的Prompt模板,支持LLM根据特定需求定制交互。
  • 健壮的性能与安全性: 内置连接池、缓存机制、请求限速、输入净化和错误净化功能,支持Docker和Kubernetes部署,确保服务高效安全运行。

安装步骤

本服务器可以通过npm全局安装或使用npx直接运行。

  1. 通过npm全局安装:
    npm install -g atproto-mcp
  2. 通过npx直接运行:
    npx atproto-mcp

服务器配置

MCP客户端通常需要一个配置文件(JSON格式)来了解如何启动和连接到MCP服务器。以下是针对此AT Protocol MCP服务器的典型配置信息及其参数说明。MCP客户端可以通过这种配置信息来启动服务器,而无需关注具体的命令行代码。

{
  "name": "AT Protocol MCP Server",
  "command": "atproto-mcp",
  "args": [],
  "env": {
    "LOG_LEVEL": "info",
    "MCP_SERVER_PORT": "3000",
    "MCP_SERVER_HOST": "localhost"
  },
  "description": "连接到AT Protocol社交网络,提供搜索、发帖、关注等功能。",
  "authentication": {
    "method": "env_variables",
    "variables": [
      {
        "name": "ATPROTO_IDENTIFIER",
        "description": "您的AT Protocol账号或DID(例如:your-handle.bsky.social)。如果使用应用密码认证,此为必需项。"
      },
      {
        "name": "ATPROTO_PASSWORD",
        "description": "您的应用密码。强烈推荐使用应用密码而非主密码。如果使用应用密码认证,此为必需项。"
      },
      {
        "name": "ATPROTO_CLIENT_ID",
        "description": "OAuth客户端ID。如果使用OAuth认证,此为必需项。"
      },
      {
        "name": "ATPROTO_CLIENT_SECRET",
        "description": "OAuth客户端密钥。如果使用OAuth认证,此为必需项。"
      },
      {
        "name": "ATPROTO_AUTH_METHOD",
        "description": "认证方法:'app-password' 或 'oauth'。如果未提供任何认证信息,服务器将默认以公共模式启动。"
      },
      {
        "name": "ATPROTO_SERVICE",
        "description": "AT Protocol 服务的基础 URL(例如:https://bsky.social),默认为Bluesky官方服务。"
      },
      {
        "name": "MCP_SERVER_PORT",
        "description": "服务器监听的端口,默认为3000。"
      },
      {
        "name": "MCP_SERVER_HOST",
        "description": "服务器绑定的主机地址,默认为localhost。"
      }
    ]
  }
}
  • 'name': 项目的友好名称,用于客户端界面显示。
  • 'command': 启动MCP服务器的可执行命令,在此项目中为'atproto-mcp'。
  • 'args': 启动时可传递给命令的额外参数数组。例如,'["--port", "8080"]'。默认情况下可为空,因为许多配置可以通过环境变量设置。
  • 'env': 一个JSON对象,包含在启动服务器进程前需要设置的环境变量。例如,可用于设置默认端口、主机、日志级别等。
  • 'description': 对MCP服务器功能的简要描述。
  • 'authentication': 认证相关的配置信息。
    • 'method': 认证方法,例如'env_variables'表示通过环境变量提供认证凭据。
    • 'variables': 一个数组,列出所有可用的认证环境变量及其说明,方便用户理解和配置。

基本使用方法

  1. 启动服务器(公共模式): 默认情况下,如果未提供任何认证凭据,服务器会以无需认证的公共模式启动,允许LLM访问公共数据。

    atproto-mcp
  2. 启动服务器(认证模式): 如果LLM客户端需要执行发帖、关注等写操作或访问私人数据,您需要设置认证信息。推荐使用应用密码:

    export ATPROTO_IDENTIFIER="您的账号.bsky.social"
    export ATPROTO_PASSWORD="您的应用密码"
    atproto-mcp
  3. 配置LLM客户端: 将您的LLM客户端配置为连接到此MCP服务器。LLM客户端会根据MCP协议发送请求来使用AT Protocol的功能。

    • 例如,LLM客户端可能会调用'tools/call'方法,参数为'{ name: "search_posts", arguments: { q: "AI在社交媒体中的应用" } }' 来搜索相关帖子。
    • 或者调用'resources/read'方法,参数为'{ uri: "atproto://timeline" }' 来获取认证用户的时间线数据。
    • LLM客户端还可以调用'prompts/get'方法,参数为'{ name: "content_composition", arguments: { topic: "如何使用AT Protocol" } }' 来获取关于帖子内容的建议。

    具体的LLM客户端集成方式取决于您所使用的LLM平台。通常,LLM客户端会提供一个界面,让您配置MCP服务器的启动命令、参数和环境变量。

信息

分类

AI与计算