r

ryanmac

@ryanmac/agent-twitter-client-mcp
0 Stars 323 次浏览 ryanmac 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "agent-twitter-client-mcp": {
      "args": [
        "-y",
        "agent-twitter-client-mcp"
      ],
      "command": "npx",
      "env": {
        "AUTH_METHOD": "cookies",
        "TWITTER_COOKIES": "[auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com, ct0=YOUR_CT0_VALUE; Domain=.twitter.com, twid=YOUR_USER_ID; Domain=.twitter.com]"
      }
    }
  }
}

服务介绍

agent-twitter-client-mcp

npm version

Node.js Version

这是一个使用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或更高版本

文档

快速开始

安装

bash

全局安装

npm install -g agent-twitter-client-mcp

或者本地安装

npm install agent-twitter-client-mcp

基本用法

  1. 创建一个包含您的Twitter凭证的.env文件(参见认证方法
  2. 运行MCP服务器:

bash

如果全局安装

agent-twitter-client-mcp

如果本地安装

npx agent-twitter-client-mcp

演示脚本

该软件包包括一个demo目录,其中包含展示各种特性的示例脚本:

bash

克隆仓库以访问演示脚本

git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcp/demo

运行交互式演示菜单

./run-demo.sh

运行特定的演示脚本

./run-demo.sh --script tweet-search.js

运行Grok AI示例(需要agent-twitter-client v0.0.19或更高版本)

./run-demo.sh --script simple-grok.js --use-local-agent-twitter-client
./run-demo.sh --script grok-chat.js --use-local-agent-twitter-client

更多详情请参阅Demon README

端口配置

默认情况下,MCP服务器运行在端口3000上。如果您需要更改此设置(例如,如果您已经在端口3000上运行了其他应用程序),您有几个选择:

选项1:使用环境变量

设置PORT环境变量:

bash
PORT=3001 npx agent-twitter-client-mcp

选项2:使用Docker Compose

如果使用Docker Compose,您可以在.env文件中配置主机和容器端口:

.env 文件

MCP_HOST_PORT=3001 # 您主机上的端口
MCP_CONTAINER_PORT=3000 # 容器内的端口

然后运行:

bash
docker-compose up -d

这将把主机上的3001端口映射到容器中的3000端口,使您能够通过http://localhost:3001访问MCP,而您的其他应用程序则继续使用3000端口。

与Claude Desktop配合使用

  1. 通过在配置文件中添加以下内容来配置Claude Desktop使用此MCP:Windows: %APPDATA%Claudeclaude_desktop_config.json
    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

json
{
"mcpServers": {
"agent-twitter-client-mcp": {
"command": "npx",
"args": ["-y", "agent-twitter-client-mcp"],
"env": {
"AUTH_METHOD": "cookies",
"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"]"
}
}
}
}

  1. 重启 Claude Desktop

认证方法

json
{
"AUTH_METHOD": "cookies",
"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 的步骤:

  1. 在浏览器中登录 Twitter
  2. 打开开发者工具(F12)
  3. 转到“应用程序”标签 > Cookies
  4. 复制 auth_tokenct0twid cookies 的值
  5. 确保每个 cookie 都包含 Domain=.twitter.com 部分

用户名/密码认证

json
{
"AUTH_METHOD": "credentials",
"TWITTER_USERNAME": "your_username",
"TWITTER_PASSWORD": "your_password",
"TWITTER_EMAIL": "your_email@example.com", // 可选
"TWITTER_2FA_SECRET": "your_2fa_secret" // 可选,如果启用了两步验证则必需
}

Twitter API 认证

json
{
"AUTH_METHOD": "api",
"TWITTER_API_KEY": "your_api_key",
"TWITTER_API_SECRET_KEY": "your_api_secret_key",
"TWITTER_ACCESS_TOKEN": "your_access_token",
"TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret"
}

可用工具

  • 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 包含一个交互式命令行界面用于测试:

bash
npx agent-twitter-client-mcp-test

或者如果本地安装

npm run test:interface

这将启动一个 REPL,在其中可以测试各种 MCP 功能:

agent-twitter-client-mcp> help

可用命令:
health 运行健康检查
profile 获取用户资料
tweets [count] 获取用户的推文
tweet 根据 ID 获取特定推文
search [count] 搜索推文
post 发布新推文
like 点赞推文
retweet 转发推文
quote 引用推文
follow 关注用户
followers [count] 获取用户的关注者
following [count] 获取用户关注的人
grok 与 Grok 聊天
help 显示可用命令
exit 退出测试界面

示例测试命令

运行健康检查

agent-twitter-client-mcp> health

搜索推文

agent-twitter-client-mcp> search mcp 2

获取用户资料

agent-twitter-client-mcp> profile elonmusk

获取用户的推文

agent-twitter-client-mcp> tweets openai 5

与 Grok 聊天

agent-twitter-client-mcp> grok Explain quantum computing in simple terms

使用示例

让 Claude 帮你:

  • “搜索关于 AI 的推文”
  • “发布一条推文说 ‘Hello from Claude!’”
  • “获取 @OpenAI 的最新推文”
  • “与 Grok 聊天讨论量子计算”

高级用法

处理媒体

要发布带有图片的推文:

我想发布一条带有图片的推文。推文内容应该是“今天的日落真美!”并附上这张图片。要发布带有视频的推文:

I want to post a tweet with a video. The tweet should say "Check out this amazing video!" and include the video file.

创建投票

要创建一个投票:

Create a Twitter poll asking "What's your favorite programming language?" with options: Python, JavaScript, Rust, and Go. The poll should run for 24 hours.

与Grok互动

要与Grok进行对话:

Use Grok to explain quantum computing to me. Ask it to include some real-world applications.

继续与Grok的对话:

Continue the Grok conversation and ask it to elaborate on quantum entanglement.

Grok的独特功能

Twitter上的Grok可以访问实时Twitter数据,这是独立的Grok API所不具备的。这意味着你可以向Grok询问以下内容:

  • 当前Twitter上的热门话题
  • 关于特定主题的最近推文分析
  • 关于Twitter用户及其内容的信息
  • 平台上讨论的实时事件

示例查询:

  • "What are the trending topics on Twitter right now?"
  • "Analyze the sentiment around AI on Twitter"
  • "What are people saying about the latest Apple event?"
  • "Show me information about popular memecoins being discussed today"

Grok认证要求

使用Grok功能需要正确的认证。MCP支持两种方法:

  1. 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_tokenct0twid
  2. 用户名/密码认证

    • 在你的环境中设置TWITTER_USERNAMETWITTER_PASSWORD
    • 在某些情况下可能会遇到Cloudflare保护

Grok速率限制

Grok有速率限制可能会影响使用:

  • 非高级账户:每2小时内25条消息
  • 高级账户:更高的限制

当达到限制时,MCP将在响应中返回速率限制信息。

有关使用Grok的更多详细信息,请参阅Grok示例文档。

故障排除

认证问题

如果你遇到Cookie认证问题:

  1. Cookie过期:Twitter的Cookies通常在一段时间后会过期。尝试通过登出并重新登录Twitter来刷新Cookies。
  2. Cookie格式:确保你的Cookies正确地格式化为具有正确域名的字符串JSON数组。
  3. 必需的Cookies:确保你包含了必需的Cookies:auth_tokenct0twid

正确格式化的Cookies示例:

json
"TWITTER_COOKIES": "["auth_token=1234567890abcdef; Domain=.twitter.com", "ct0=abcdef1234567890; Domain=.twitter.com", "twid=u%3D1234567890; Domain=.twitter.com"]"

凭证认证问题

如果你遇到用户名/密码认证问题:

  1. 两步验证:如果您的帐户启用了2FA,则需要提供TWITTER_2FA_SECRET
  2. 帐户锁定:过多的失败登录尝试可能会锁定您的帐户。检查您的电子邮件以获取帐户验证请求。
  3. 验证码挑战:Twitter可能会呈现客户端无法自动处理的验证码挑战。

API认证问题

对于API认证问题:

  1. API密钥权限:确保您的API密钥具有执行所需操作所需的权限。
  2. 速率限制:Twitter API有速率限制,如果超过这些限制可能会导致失败。
  3. API更改:Twitter偶尔会更改其API,这可能导致兼容性问题。

操作错误

发布推文失败

如果你无法发布推文:

  1. 内容限制:Twitter可能会阻止违反其内容政策的推文。2. 媒体格式问题:确保媒体文件正确格式化和编码。
  2. 速率限制:Twitter 限制了您可以发帖的频率。

搜索问题

如果搜索功能不正常:

  1. 查询语法:确保您的搜索查询遵循 Twitter 的搜索语法。
  2. 搜索限制:某些搜索模式可能有特定的限制或需要特定权限。

Grok 问题

如果 Grok 功能不正常:

  1. 版本要求

    • Grok 需要 agent-twitter-client v0.0.19 或更高版本
    • 当前包使用 v0.0.18 来实现基本功能
    • 对于演示脚本,请使用 --use-local-agent-twitter-client 标志临时安装 v0.0.19
  2. 认证问题

    • Cookie 格式:确保 Cookie 是正确的 JSON 数组格式
    • Cookie 有效期:Twitter Cookie 在一定时间后会过期
    • Cloudflare 保护:用户名/密码认证可能会被 Cloudflare 阻止
    • 高级订阅要求:Grok 访问需要 Twitter 高级订阅
  3. 速率限制

    • 非高级账户:每 2 小时 25 条消息
    • 错误信息:"Rate Limited: You've reached the limit..."
    • 解决方案:等待速率限制重置,或者升级到高级账户
  4. 环境文件位置

    • 对于演示脚本,请确保您的凭证在 demo/.env 文件中,而不是根目录下的 .env 文件中
    • 使用 --debug-env 标志检查加载了哪些环境变量

有关 Grok 问题的详细故障排除,请参阅 Grok 示例 文档。

服务器问题

健康检查

使用 health_check 工具诊断服务器问题:

对 agent-twitter-client-mcp 服务器运行健康检查以诊断任何问题。

健康检查将报告以下内容:

  • 认证状态
  • API 连接
  • 内存使用情况

日志记录

服务器同时记录到控制台和文件中:

  • error.log:包含错误级别的消息
  • combined.log:包含所有日志消息

检查这些日志以获取详细的错误信息。

开发

前提条件

  • Node.js 18+
  • npm

设置

  1. 克隆仓库

bash
git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcp

  1. 安装依赖项

bash
npm install

  1. 创建一个包含配置的 .env 文件:

AUTH_METHOD=cookies
TWITTER_COOKIES=["cookie1=value1", "cookie2=value2"]

  1. 构建项目

bash
npm run build

  1. 启动服务器

bash
npm start

环境变量

除了认证变量外,您还可以设置:

  • LOG_LEVEL:设置日志级别(error, warn, info, debug)
  • NODE_ENV:设置环境(development, production)

Docker

您也可以使用 Docker 运行服务器:

直接使用 Docker

bash

构建 Docker 镜像

docker build -t agent-twitter-client-mcp .

使用环境变量运行容器

docker run -p 3000:3000
-e AUTH_METHOD=cookies
-e TWITTER_COOKIES= ["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com"]
agent-twitter-client-mcp

使用 Docker Compose

  1. 创建一个包含您的 Twitter 凭证的 .env 文件
  2. 使用 docker-compose 运行:

bash

启动服务

docker-compose up -d

查看日志

docker-compose logs -f

停止服务

docker-compose down

Docker 中的环境变量

您可以以多种方式将环境变量传递给 Docker 容器:

  1. 在 docker-compose.yml 文件中(已配置)
  2. 通过 .env 文件(推荐用于 docker-compose)
  3. 直接在 docker run 命令中(如上所示)

持久化日志

docker-compose 配置包括日志卷挂载:

yaml
volumes:

  • ./logs:/app/logs

这将在您的项目文件夹中的 logs 目录中存储日志。

安全注意事项- 凭证存储:安全地存储凭证,最好使用环境变量或安全的密钥库。

  • 速率限制:实施速率限制以防止滥用Twitter API。
  • 内容验证:在发布之前验证所有内容,以防止恶意使用。

许可证

MIT

相关 MCP 服务