代理-Twitter-客户端-MCP
使用agent-twitter-client包与 Twitter 集成的模型上下文协议 (MCP) 服务器,允许 AI 模型无需直接 API 访问即可与 Twitter 交互。
特征
身份验证选项:
基于 Cookie 的身份验证(推荐)
用户名/密码认证
Twitter API v2 凭证
推文操作:
获取用户的推文
通过 ID 获取特定推文
搜索推文
发送带有文本和媒体的推文
创建投票
点赞、转发和引用推文
用户操作:
获取用户个人资料
关注用户
获取关注者和关注列表
Grok 集成:
通过 Twitter 界面与 Grok 聊天
使用对话 ID 继续对话
获取网络搜索结果和引用
通过 Grok 访问 Twitter 的实时数据
注意:Grok 功能需要agent-twitter-client v0.0.19或更高版本
Related MCP server: Twitter MCP Server
文档
开发者指南——面向开发者的综合指南
测试指南- MCP 测试说明
代理指南- 人工智能代理如何使用 Twitter MCP 的指南
贡献指南——为该项目做出贡献的指南
变更日志——该项目变更的历史记录
演示自述文件- 运行演示脚本的指南
Grok 示例- Grok AI 集成示例的文档
快速入门
安装
基本用法
使用您的 Twitter 凭证创建一个
.env文件(请参阅身份验证方法)运行 MCP 服务器:
演示脚本
该软件包包括一个demo目录,其中有演示各种功能的示例脚本:
请参阅演示自述文件以了解更多详细信息。
端口配置
默认情况下,MCP 服务器在端口 3000 上运行。如果您需要更改此设置(例如,如果您已经在端口 3000 上运行应用程序),您有以下几种选择:
选项 1:使用环境变量
设置PORT环境变量:
选项 2:使用 Docker Compose
如果使用 Docker Compose,您可以在.env文件中配置主机和容器端口:
然后运行:
这会将主机上的端口 3001 映射到容器中的端口 3000,从而允许您通过http://localhost:3001访问 MCP,同时您的其他应用程序继续使用端口 3000。
使用 Claude Desktop 进行设置
通过向配置文件中添加以下内容来配置 Claude Desktop 以使用此 MCP:
Windows : %APPDATA%\Claude\claude_desktop_config.json macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
重启Claude桌面
身份验证方法
Cookie 认证(推荐)
获取 cookies:
在浏览器中登录 Twitter
打开开发者工具(F12)
转到“应用程序”选项卡 >“Cookie”
复制
auth_token、ct0和twidcookie 的值确保每个 cookie 都包含
Domain=.twitter.com部分
用户名/密码验证
Twitter API 身份验证
可用工具
get_user_tweets:获取特定用户的推文get_tweet_by_id:通过 ID 获取特定推文search_tweets:搜索推文send_tweet:发布一条新推文send_tweet_with_poll:发布带有投票的推文like_tweet:喜欢一条推文retweet:转发一条推文quote_tweet:引用一条推文get_user_profile:获取用户的个人资料follow_user:关注用户get_followers:获取用户的关注者get_following:获取用户关注的用户grok_chat:通过 Twitter 与 Grok 聊天health_check:检查 Twitter MCP 服务器的健康状况
测试接口
MCP 包含一个用于测试的交互式命令行界面:
这将启动一个 REPL,您可以在其中测试各种 MCP 功能:
示例测试命令
示例用法
要求克劳德:
“在 Twitter 上搜索有关 AI 的推文”
“发布一条推文说‘克劳德向你问好!’”
“获取来自@OpenAI的最新推文”
“与 Grok 聊聊量子计算”
高级用法
与媒体合作
要发布带有图片的推文:
要发布带有视频的推文:
创建投票
要创建投票:
与 Grok 交互
与 Grok 对话:
要继续与 Grok 对话:
Grok 的独特功能
Twitter 上的 Grok 可以访问实时 Twitter 数据,而独立的 Grok API 则无法访问这些数据。这意味着你可以向 Grok 询问以下信息:
Twitter 上当前的热门话题
分析最近关于特定主题的推文
有关 Twitter 用户及其内容的信息
平台上正在讨论的实时事件
示例查询:
“现在 Twitter 上的热门话题是什么?”
“分析 Twitter 上有关人工智能的情绪”
“人们对最新的苹果发布会有何评价?”
“显示有关今天正在讨论的热门 memecoin 的信息”
Grok 身份验证要求
Grok 功能需要正确的身份验证。MCP 支持两种身份验证方式:
Cookie 身份验证(推荐):
Cookies 必须是 JSON 数组格式
例如:
TWITTER_COOKIES=["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com", "twid=u%3DYOUR_USER_ID; Domain=.twitter.com"]必需的 cookies 是
auth_token、ct0和twid
用户名/密码验证:
在您的环境中设置
TWITTER_USERNAME和TWITTER_PASSWORD在某些情况下可能会受到 Cloudflare 保护
Grok 速率限制
Grok 具有可能影响使用的速率限制:
非高级帐户:每 2 小时 25 条消息
高级帐户:更高的限额
当达到限制时,MCP 将在响应中返回速率限制信息。
有关使用 Grok 的更多详细信息,请参阅Grok 示例文档。
故障排除
身份验证问题
Cookie 身份验证问题
如果您遇到 Cookie 身份验证问题:
Cookie 过期:Twitter 的 Cookie 通常会在一段时间后过期。请尝试注销并重新登录 Twitter 来刷新您的 Cookie。
Cookie 格式:确保您的 cookie 正确格式化为具有正确域的 JSON 字符串数组。
必需的 Cookies :确保已包含必要的 cookies:
auth_token、ct0和twid。
正确格式的 cookie 示例:
凭证认证问题
如果您在用户名/密码验证方面遇到问题:
双因素身份验证:如果您的帐户启用了 2FA,则需要提供
TWITTER_2FA_SECRET。账户锁定:登录失败次数过多可能会导致您的账户被锁定。请查看您的电子邮件,查看是否有账户验证请求。
验证码挑战:Twitter 可能会提出客户端无法自动处理的验证码挑战。
API 身份验证问题
对于 API 身份验证问题:
API 密钥权限:确保您的 API 密钥具有您尝试执行的操作所需的权限。
速率限制:Twitter API 具有速率限制,如果超出可能会导致失败。
API 更改:Twitter 偶尔会更改其 API,这可能会导致兼容性问题。
操作错误
推文发布失败
如果您无法发布推文:
内容限制:Twitter 可能会阻止违反其内容政策的推文。
媒体格式问题:确保媒体格式和编码正确。
频率限制:Twitter 限制您发帖的频率。
搜索问题
如果搜索不起作用:
查询语法:确保您的搜索查询遵循 Twitter 的搜索语法。
搜索限制:某些搜索模式可能有限制或需要特定权限。
Grok 问题
如果 Grok 功能不起作用:
版本要求:
Grok 需要agent-twitter-client v0.0.19或更高版本
当前软件包使用 v0.0.18 实现基本功能
对于演示脚本,使用
--use-local-agent-twitter-client标志临时安装 v0.0.19
身份验证问题:
Cookie 格式:确保 Cookie 采用正确的 JSON 数组格式
Cookie 有效性:Twitter Cookie 会在一定期限后过期
Cloudflare 保护:用户名/密码验证可能会被 Cloudflare 阻止
高级要求:访问 Grok 需要 Twitter Premium 订阅
速率限制:
非高级帐户:每 2 小时 25 条消息
错误消息:“速率限制:您已达到限制...”
解决方案:等到速率限制重置或升级到高级帐户
环境文件位置:
对于演示脚本,请确保您的凭据位于
demo/.env中,而不是在根.env文件中使用
--debug-env标志检查正在加载哪些环境变量
有关 Grok 问题的详细故障排除,请参阅Grok 示例文档。
服务器问题
健康检查
使用health_check工具诊断服务器问题:
健康检查将报告以下内容:
身份验证状态
API 连接
内存使用情况
日志记录
服务器记录到控制台和文件:
error.log:包含错误级别的消息combined.log:包含所有日志消息
检查这些日志以获取详细的错误信息。
发展
先决条件
Node.js 18+
npm
设置
克隆存储库
安装依赖项
创建带有配置的
.env文件:
构建项目
启动服务器
环境变量
除了身份验证变量之外,您还可以设置:
LOG_LEVEL:设置日志级别(错误、警告、信息、调试)NODE_ENV:设置环境(开发、生产)
Docker
您还可以使用 Docker 运行服务器:
直接使用 Docker
使用 Docker Compose
使用您的 Twitter 凭证创建一个
.env文件使用 docker-compose 运行:
Docker 中的环境变量
您可以通过多种方式将环境变量传递给 Docker 容器:
在docker-compose.yml文件中(已经配置)
通过 .env 文件(推荐用于 docker-compose)
直接在docker run命令中(如上图)
持久化日志
docker-compose 配置包括用于日志的卷挂载:
这会将日志存储在项目文件夹中的logs目录中。
安全注意事项
凭证存储:安全地存储凭证,最好使用环境变量或安全保险库。
速率限制:实施速率限制以防止滥用 Twitter API。
内容验证:发布前验证所有内容,以防止恶意使用。
执照
麻省理工学院