项目简介
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直接运行。
- 通过npm全局安装:
npm install -g atproto-mcp - 通过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': 一个数组,列出所有可用的认证环境变量及其说明,方便用户理解和配置。
基本使用方法
-
启动服务器(公共模式): 默认情况下,如果未提供任何认证凭据,服务器会以无需认证的公共模式启动,允许LLM访问公共数据。
atproto-mcp -
启动服务器(认证模式): 如果LLM客户端需要执行发帖、关注等写操作或访问私人数据,您需要设置认证信息。推荐使用应用密码:
export ATPROTO_IDENTIFIER="您的账号.bsky.social" export ATPROTO_PASSWORD="您的应用密码" atproto-mcp -
配置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与计算