使用说明
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
许可证
麻省理工学院