使用说明
社交MCP:多代理社交媒体自动化
概述
Social MCP是一个多代理系统,用于在Twitter和Bluesky等平台上自动化内容提取、推特生成、发布和参与。它使用LLM进行内容生成,使用Playwright进行浏览器自动化,使用API进行平台集成。
建筑
- MCP服务器:为以下对象托管工具终结点:
- 内容提取
- 使用LLM生成推文
- Twitter浏览器自动化(使用Playwright)
- 社交媒体参与度
- 内容调度
- MCP客户端:编排工作流、运行代理、管理LLM和协调工具调用
- 共同:用于Google表格集成、重试逻辑和机密管理的共享实用程序
核心功能
-
推特自动化
- 持续会话管理
- 强大的登录检测
- 带有重试逻辑的推文发布
- 搜索和参与自动化
- 基于标签的内容发现
-
内容生成
- LLM驱动的推特生成
- 内容调度
- 多平台支持
-
浏览器自动化
- 持续会话处理
- 强大的页面状态验证
- 导航问题的自动恢复
- URL编码和正确的页面加载
目录结构
social_mcp/
├── mcp_server/
│ ├── tools/
│ │ ├── post_tweets.py # Twitter automation
│ │ ├── generate_tweets.py # LLM tweet generation
│ │ └── engage_posts.py # Social engagement
│ ├── server.py
│ └── config.py
├── mcp_client/
│ ├── agents/
│ ├── llm_orchestrator.py
│ ├── workflow_graph.py
│ └── client.py
├── common/
│ ├── google_sheets.py
│ ├── retry_utils.py
│ └── secrets.py
├── .env
├── requirements.txt
├── README.md
└── setup.sh
实现细节
推特自动化(post_tweets.py)
-
会话管理
- 持续浏览器会话
- 自动登录检测
- 会话恢复
-
强大的页面处理
- 搜索词的URL编码
- 连续页面状态验证
- 自动导航恢复
- 失败操作的重试逻辑
-
参与功能
- 基于标签的搜索
- 推特喜欢自动化
- 内容发现
浏览器自动化最佳实践
-
页面加载
- 使用
domcontentloaded初始载荷 - 等待特定元素
- 验证页面状态
- 使用
-
错误处理
- 失败操作的重试逻辑
- 从错误中优雅地恢复
- 详细日志记录
-
会话管理
- 持久上下文
- 登录状态验证
- 自动会话恢复
设置
-
克隆仓库并进入目录:
git clone <repository-url> cd social_mcp -
创建虚拟环境并安装依赖项:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt playwright install -
配置您的
.env文件包含:TWITTER_USERNAME=your_username TWITTER_PASSWORD=your_password PLAYWRIGHT_SESSION_DIR=./playwright_session HEADLESS=false # Set to true for headless operation -
设置Google Sheets API和OAuth凭据
用法
-
从/social_MCP启动MCP服务器:
python mcp_server/server.py -
从/social_MCP运行MCP客户端:
python mcp_client/client.py
添加新功能
- 新工具:添加到
mcp_server/tools/并注册server.py - 新代理商:添加到
mcp_client/agents/并更新workflow_graph.py - 浏览器自动化:遵循中的模式
post_tweets.py用于稳健实施
安全
- 将所有秘密存储在
.env - 将OAuth作用域用于Google表格和Bluesky
- 剧作家脚本优雅地处理MFA/CAPTCHA
- 会话数据安全存储在
playwright_session目录
最佳实践
-
浏览器自动化
- 始终验证页面状态
- 使用正确的URL编码
- 实现重试逻辑
- 处理导航问题
-
错误处理
- 记录所有操作
- 实现优雅恢复
- 使用适当的超时
-
会话管理
- 验证登录状态
- 处理会话恢复
- 妥善清理资源
**去做
- 从推特和bsky获取内容,使用LLM获取回复并发布
- 添加第二个推特账户进行发帖和点赞
- 搜索和参与包括搜索“web3”、“nft”、“crypto”
- 对工作流的启动和运行进行计时,使其从.env随机开始
- 实施Reddit发布