Integrations
Supports containerized deployment through Docker and Docker Compose, with configuration options for environment variables and volume mounting for logs.
References GitHub for accessing demo scripts, contributing to the project, and accessing specific versions of dependencies.
Runs as a Node.js application, with compatibility requirements specified through version badges and environment configuration.
代理-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或更高版本
文档
- 开发者指南——面向开发者的综合指南
- 测试指南- 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
和twid
cookie 的值 - 确保每个 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=YOUR_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。
- 内容验证:发布前验证所有内容,以防止恶意使用。
执照
麻省理工学院
This server cannot be installed
模型上下文协议服务器,使 AI 代理无需直接 API 访问即可与 Twitter 交互,支持推文操作、用户交互和 Grok AI 集成。