Twitter操作服务器

通过Model Context Protocol (MCP)服务器,使AI助手如Claude能够直接操作X (Twitter),支持推文发布、搜索、时间线获取、私信发送等53种功能。

  • by sunu-py-jp
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sunu-py-jp/X-Twitter-MCP

使用说明

X(推特)MCP服务器

Claude等AI助手可以直接操作X(Twitter) 模型上下文协议(MCP) 服务器。

发布和搜索推特、获取时间轴、发送和接收DM、管理列表等 53个工具 缺少支持的问题。

能做什么

只要用自然语言指示,AI就会代理X的操作。

「今日の AI 関連の話題を検索して、要約して」
「このツイートに返信して」
「ホームタイムラインを見せて」

你不用直接敲API。在与Claude的对话中,可以无缝地操作X。

安装,安装

前提条件

  • Node.js v18 以上
  • X开发者门户 的帐户和API密钥(OAuth1.0a用户Context)

1.获取API密钥

X开发者门户 在中创建项目,并获取以下四个值:。

|键名|说明| |---|---| | X_API_KEY |API密钥(用户密钥)| | X_API_SECRET |API秘密(消费者秘密)| | X_ACCESS_TOKEN |访问令牌| | X_ACCESS_TOKEN_SECRET |访问令牌密钥|

注意: 要发布推特或发送DM,请使用App permissions 读写 必须设置为以上。

2.注册MCP服务器

克劳德代码(CLI)

npx 而需要与环境混合的每条反射光线,进行环境采样。

claude mcp add x-twitter-mcp \
  -e X_API_KEY=あなたのAPIキー \
  -e X_API_SECRET=あなたのAPIシークレット \
  -e X_ACCESS_TOKEN=あなたのアクセストークン \
  -e X_ACCESS_TOKEN_SECRET=あなたのアクセストークンシークレット \
  -- npx -y @sunu-py-jp/x-twitter-mcp

克劳德桌面

claude_desktop_config.json 将条目添加到文档注册表。

{
  "mcpServers": {
    "x-twitter-mcp": {
      "command": "npx",
      "args": ["-y", "@sunu-py-jp/x-twitter-mcp"],
      "env": {
        "X_API_KEY": "あなたのAPIキー",
        "X_API_SECRET": "あなたのAPIシークレット",
        "X_ACCESS_TOKEN": "あなたのアクセストークン",
        "X_ACCESS_TOKEN_SECRET": "あなたのアクセストークンシークレット"
      }
    }
  }
}

3.自定义工具(可选)

在环境变量中,可以控制要启用的工具。未指定时,所有工具(53个)都将启用。

X_ENABLED_GROUPS —按组启用

类别和操作类型 カテゴリ:操作 的双曲正切值。可以在逗号分隔中指定多个。

# 取得系のツイート機能だけ使う
X_ENABLED_GROUPS=tweets:get

# ツイート全操作 + タイムライン取得 + ユーザー取得
X_ENABLED_GROUPS=tweets,timelines:get,users:get

可用组:

组|包含的工具| |---|---| | tweets:post | post_tweet | | tweets:delete | delete_tweet | | tweets:get | get_tweet, get_tweets, search_tweets, get_quote_tweets | | timelines:get | get_home_timeline, get_user_tweets, get_user_mentions | | engagement:post | like_tweet, retweet, bookmark_tweet | | engagement:delete | unlike_tweet, unretweet, delete_bookmark | | engagement:get | get_liked_tweets, get_bookmarks | | users:post | follow_user | | users:delete | unfollow_user | | users:get | get_me, get_user, get_users, get_user_by_username, get_users_by_usernames, get_followers, get_following | | blocks-mutes:post | block_user, mute_user | | blocks-mutes:delete | unblock_user, unmute_user | | dm:post | send_dm, send_dm_in_conversation, create_dm_conversation | | dm:get | get_dm_events, get_dm_conversation | | lists:post | create_list, update_list, add_list_member, follow_list, pin_list | | lists:delete | delete_list, remove_list_member, unfollow_list, unpin_list | | lists:get | get_list, get_list_tweets, get_owned_lists, get_list_members, get_followed_lists, get_pinned_lists | | media:post | upload_media, upload_media_from_url | | usage:get | get_api_usage |

仅指定类别名称将启用该类别的所有操作(例如: tweets = tweets:post + tweets:delete + tweets:get)。

X_DISABLED_TOOLS -排除单个工具

可以使用逗号分隔的工具名称来仅禁用特定的工具。X_ENABLED_GROUPS 中所述修改相应参数的值。

# 全ツール有効だが、投稿と DM 送信だけ無効に
X_DISABLED_TOOLS=post_tweet,send_dm,delete_tweet

设定例

以下是根据常见的使用方法推荐的设定。env 块中的API密钥(X_API_KEY 等)省略。


1.只想收集信息的人 想让AI概括TL和推特,不过,由于误操作被投稿为难。

X_ENABLED_GROUPS=tweets:get,timelines:get,users:get,usage:get

2.想委托推特的草稿、投稿的人 想让AI考虑推特方案,就这样交给投稿。

X_ENABLED_GROUPS=tweets:post,tweets:get,media:post

3.想看时间线投稿的人 我想让AI总结TL的趋势,并以此为基础发布推特。

X_ENABLED_GROUPS=tweets:post,tweets:get,timelines:get,users:get,media:post

4.想作为娱乐负责人使用的人 想对在意的推特做「好」和转发,整理书签。

X_ENABLED_GROUPS=engagement,tweets:get,timelines:get

5.想进行粉丝分析、社区管理的人 分析关注者和关注中的用户,想用列表整理。

X_ENABLED_GROUPS=users:get,lists,tweets:get

6.想委托DM的确认和回复的人 我想确认未读的DM并回复。不需要推特功能。

X_ENABLED_GROUPS=dm,users:get

7.想进行调查、竞争分析的人 想调查特定的关键字和帐号,归结倾向。

X_ENABLED_GROUPS=tweets:get,timelines:get,users:get,engagement:get

8.绝对不想让别人投稿的人 虽然想使用全部功能,但只想手动进行推特的投稿、删除和DM发送。

X_DISABLED_TOOLS=post_tweet,delete_tweet,send_dm,send_dm_in_conversation,create_dm_conversation

9.想要禁止破坏性操作的人 信息的取得和投稿是OK的,不过,想防止删除·BlockAnfollow等难以取消的操作。

X_DISABLED_TOOLS=delete_tweet,unlike_tweet,unretweet,delete_bookmark,unfollow_user,block_user,unblock_user,mute_user,unmute_user,delete_list,remove_list_member,unfollow_list,unpin_list

10.完全访问(默认) 所有功能都交给AI。不需要指定环境变量。

(X_ENABLED_GROUPS, X_DISABLED_TOOLS ともに未指定)

直接从来源使用时

git clone https://github.com/sunu-py-jp/X-Twitter-MCP.git
cd X-Twitter-MCP
npm install
npm run build

注册MCP服务器时 npx -y @sunu-py-jp/x-twitter-mcp 代替 node /path/to/X-Twitter-MCP/dist/index.js 中所述修改相应参数的值。

机能一覧

推文

工具|说明| |---|---| | post_tweet 发布推特(支持回复、引用、媒体附件) | delete_tweet 删除推特 | get_tweet 详细获取推特 | get_tweets |批量获取多条推特| | search_tweets 最近7天的推特搜索 | get_quote_tweets 获取引用推特

时间线

工具|说明| |---|---| | get_home_timeline 获取主时间轴 | get_user_tweets |特定用户的推特一览| | get_user_mentions 对特定用户的成员列表

结合

工具|说明| |---|---| | like_tweet / unlike_tweet 好啊/取消 | retweet / unretweet 转发/取消 | bookmark_tweet / delete_bookmark 书签/取消 | get_liked_tweets 好的推特一览 | get_bookmarks 书签列表

用户

工具|说明| |---|---| | get_me |已认证用户的信息| | get_user / get_users 用用户ID获取信息 | get_user_by_username / get_users_by_usernames 用用户名获取信息 | follow_user / unfollow_user |跟踪/解除| | get_followers [粉丝一览] | get_following |关注中的用户一览|

块静音

工具|说明| |---|---| | block_user / unblock_user |阻止/解除| | mute_user / unmute_user 禁用/解除

直接消息

工具|说明| |---|---| | get_dm_events |DM事件列表(最近30天)| | get_dm_conversation 获取对话消息 | send_dm 1对1 DM发送 | send_dm_in_conversation 对现有对话的回复 | create_dm_conversation 创建组DM

列表

工具|说明| |---|---| | get_list / create_list / update_list / delete_list 列表CRUD | get_list_tweets 获取列表中的推特 | get_list_members / add_list_member / remove_list_member |成员管理| | get_owned_lists / get_followed_lists |拥有、跟踪中的列表| | follow_list / unfollow_list |列表的跟踪/解除| | pin_list / unpin_list / get_pinned_lists 列表锁定管理

媒体

工具|说明| |---|---| | upload_media 从本地文件上载介质 | upload_media_from_url 从URL上传介质

其他

工具|说明| |---|---| | get_api_usage |确认API的速率限制状况|

用例

信息收集和汇总

ホームタイムラインの最新 30 件を取得して、話題をカテゴリ別に整理して
「MCP server」に関するツイートを検索して、どんな意見があるかまとめて
@username の最近のツイートを 20 件取得して、どんな発信をしているか教えて

推特帖子管理

以下の内容でツイートして:
Claude からツイートのテスト中です。MCP サーバー経由で投稿しています。
このツイート(ID: 1234567890)に「参考になりました!」と返信して
下書きとして 3 パターンのツイート案を出して。一番良いものを投稿して

结合分析

自分のブックマークを全部取得して、トピック別に分類して
自分のいいねの傾向を分析して

跟踪社区管理

自分のフォロワー一覧を取得して、プロフィールに「エンジニア」と書いてある人をリストアップして
「AI開発者」というリストを作って、以下のユーザーを追加して

确认DM

最近の DM を確認して、未返信のメッセージがあるか教えて

图片推特

/path/to/image.png をアップロードして、「新機能をリリースしました」というツイートに添付して投稿して

安全性

  • 凭证保护: 包含在API响应中的库内部的凭证信息(consumerSecret, accessToken 等)自动删除后返还
  • 防止帕斯特橡胶猴: upload_media 中的文件路径..)时褪色为此颜色
  • SSRF 防止: upload_media_from_url 阻止访问本地主机或专用网络地址

技术仕样

  • 协议: 模型上下文协议(stdio)
  • API X API v2(OAuth 1.0a用户上下文)
  • 运行时: Node.js v18+
  • 言语: TypeScript

许可证

麻省理工学院