Token导航 LogoToken导航TokenDH.com
Post X logo
运维云端未说明官方级别未说明来源级核验

Post X

MCP Server

一个基于Rust构建的MCP服务器,支持通过JSON-RPC 2.0与X (Twitter) API v2交互,实现多账户管理、推文发布、媒体上传、时间线获取等功能。

工具数

21

提示词数

0

GitHub Stars

0

资源数

0
RustClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

codeChap

提供方

codeChap

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-server-post-x

X(推特)的MCP(模型上下文协议)服务器。使用OAuth 1.0a和X API v2。支持多个帐户。

使用JSON-RPC 2.0通过stdio进行通信。

工具

工具说明
list_accounts列出可用帐户以及默认帐户
post_tweet发布带有可选媒体的推文(最多4张图片、1个视频或1个GIF)
post_thread发布最多25条推文,每条推文都有可选媒体
delete_tweet按ID或URL删除推文
upload_media上传媒体以供稍后附件(返回media_id)
search_tweets使用推特运营商搜索最近的推文(过去7天)
get_timeline按逆时间顺序获取您的家庭时间表
get_me获取经过身份验证的用户的个人资料
lookup_user通过@username或数字ID查找任何用户
get_followers列出您的关注者(分页)
get_following列出你关注的人(分页)
get_all_followers在一次通话中获取所有关注者(自动分页)
get_all_following在一次通话中获取您关注的所有帐户(自动分页)
like_tweet通过ID或URL发送推文
unlike_tweet与按ID或URL发布的推文不同
retweet通过ID或URL转发推文
unretweet按ID或URL撤消转发
get_dm_events获取所有对话中的最新直接消息
send_dm向对话发送直接消息
follow_user按用户名或ID跟踪用户
unfollow_user按用户名或ID取消关注用户

所有工具都接受可选 account 参数来选择要使用的X帐户。省略它以使用默认帐户。

快速开始

1.建造

cargo build --release

生产 target/release/post-x (用LTO优化,剥离)。

2.配置凭据

创建配置文件:

mkdir -p ~/.config/mcp-server-post-x

创建 ~/.config/mcp-server-post-x/config.toml:

单一账户 (没有 default_account 需要):

[accounts.myaccount]
api_key = "your-api-key"
api_key_secret = "your-api-key-secret"
access_token = "your-access-token"
access_token_secret = "your-access-token-secret"

多个帐户:

default_account = "myaccount"

[accounts.myaccount]
api_key = "your-api-key"
api_key_secret = "your-api-key-secret"
access_token = "your-access-token"
access_token_secret = "your-access-token-secret"

[accounts.otheraccount]
api_key = "your-api-key"
api_key_secret = "your-api-key-secret"
access_token = "other-access-token"
access_token_secret = "other-access-token-secret"

笔记:

  • 帐户密钥是X个用户名(例如。 [accounts.codechap])
  • 如果您有多个帐户, default_account 是必需的
  • 如果你有一个账户, default_account 可选(自动检测)
  • 多个帐户可以共享同一个 api_key/api_key_secret (相同的X应用程序)。唯有 access_token/access_token_secret 每个帐户不同。

保护它:

chmod 700 ~/.config/mcp-server-post-x
chmod 600 ~/.config/mcp-server-post-x/config.toml

获取凭据 下面是如何获得这些。

3.添加到您的MCP客户端

克劳德代码(~/.claude.json):

{
  "mcpServers": {
    "post-x": {
      "command": "/path/to/post-x"
    }
  }
}

然后问克劳德这样的问题:

  • “发布一条推特,向世界问好”
  • “发布一条推特作为securechap,向世界问好”
  • “搜索有关Rust的推文”
  • “显示我的时间表”
  • “就像这条推文:https://x.com/someone/status/123456"
  • “谁是我的追随者?”
  • “查找@elonmusk”
  • “列出我的帐户”

工具参考

list_计数

没有必需的参数。返回默认的可用帐户名和缓存的用户名。

post_tweet

参数类型必填描述
accountstring要使用的帐户(默认省略)
textstringyes推文文本(最多280个字符)
mediaarrayno要上传和附加的媒体。每个项目: { path, alt_text? }最多4张图片,或1个视频,或1张GIF。
media_idsarrayno要附加的预上传媒体ID(最多4个)。相互排斥 media.
reply_tostring要回复的推特ID

post_thread

参数类型必填描述
accountstring要使用的帐户(默认省略)
tweetsarrayyes推文数组(最多25条)。每个: { text, media? }

转推/喜欢/不喜欢/转发

参数类型必填描述
accountstring要使用的帐户(默认省略)
tweet_idstringyes推特ID或完整推特URL

所有接受URL,如 https://x.com/user/status/123456 --ID被自动提取。

upload_media

参数类型必填描述
accountstring要使用的帐户(默认省略)
pathstringyes本地文件路径。支持:jpeg/png/webp(最大5MB),gif(最大15MB),mp4(最大512MB)
alt_textstringnoAlt text(仅限图像和GIF,不包括视频)

返回a media_id 与一起使用 post_tweets media_ids 参数。

搜索推特

参数类型必填描述
accountstring要使用的帐户(默认省略)
querystringyes搜索查询。支持: from:user, #hashtag, @mention, "exact phrase", -exclude, lang:en
max_results整数10-100(默认值10)
sort_orderstringrecencyrelevancy
pagination_tokenstringno来自上一个响应的下一页标记

get_timeline

参数类型必填描述
accountstring要使用的帐户(默认省略)
max_results整数1-100(默认值20)
excludestringreplies, retweets,或两者用逗号分隔
pagination_tokenstringno下一页标记

lookup_user/follow_user/unfollow_user

参数类型必填描述
accountstring要使用的帐户(默认省略)
userstringyes用户名(带或不带 @)或数字用户ID

get_followpowers/get_following

参数类型必填描述
accountstring要使用的帐户(默认省略)
max_results整数1-100(默认值20)
pagination_tokenstringno下一页标记

获取所有关注者/获取所有关注

参数类型必填描述
accountstring要使用的帐户(默认省略)

自动分页所有结果(每页100个),并在单个响应中返回完整列表。包括页面之间200毫秒的延迟,以遵守速率限制。

get_dm-events

参数类型必填描述
accountstring要使用的帐户(默认省略)
max_results整数1-100(默认值20)
pagination_tokenstringno下一页标记

send_dm

参数类型必填描述
accountstring要使用的帐户(默认省略)
conversation_idstringyesDM对话ID(从获取 get_dm_events)
textstringyes消息文本

get_me

参数类型必填描述
accountstring要使用的帐户(默认省略)

返回您的用户ID、显示名称和@username。

添加其他帐户

要在没有单独开发人员帐户的情况下将另一个X帐户添加到现有应用程序中,请使用附带的OAuth授权脚本:

./oauth-authorize.sh

这将运行基于PIN的3标签OAuth 1.0a流:

  1. 打开新帐户授权您的应用程序的URL
  2. 将PIN粘贴回终端
  3. 它输出 [accounts.username] 要添加到您的配置块 config.toml

所有帐户共享相同的应用程序和计费积分。

获取凭据

  1. 首选 developer.x.com 并注册开发人员帐户
  2. 在开发人员控制台中创建项目和应用程序
  3. 在应用程序设置中,设置 用户认证:

- 应用程序权限: 读写 (以及 私信 如果您需要DM支持) - 类型: Web应用程序、自动应用程序或机器人 - 回调URL: https://example.com (未使用,但必需) - 网站URL:任何有效的URL

  1. 首选 密钥和令牌 并生成:

- API密钥API密钥秘密 (消费者密钥下) - 访问令牌访问令牌密钥 (在身份验证令牌下)

  1. 将所有四个值复制到您的 config.toml 在...之下 [accounts.yourusername]

服务器在启动时验证凭据。如果您遇到持续的401错误,请在以下位置重新生成您的令牌 developer.x.com.

发展

cargo build              # debug build
cargo run                # run in dev mode
RUST_LOG=debug cargo run # debug logging (credentials are redacted)

技术细节

  • 认证: OAuth 1.0a,带有HMAC-SHA1签名(RFC 5849,RFC 3986%编码)
  • 多账户: 每个服务器实例有多个X帐户,每个工具调用都可以选择
  • 推特API: X API v2(api.x.com/2/)
  • 媒体上传: v1.1分块上传(upload.twitter.com/1.1/media/upload.json)--视频/GIF的INIT/APPEND/FINALIZE/STATUS流,图像的简单多部分
  • 媒体限制: JPEG/PNG/WebP高达5MB,GIF高达15MB,MP4高达512MB
  • 媒体验证: 每条推特最多4张图片或1个视频或1个GIF(不得混合)
  • 帖子: 推文之间500毫秒的延迟,通过链接 in_reply_to_tweet_id
  • 重试逻辑: 对503个错误进行指数回退的自动重试
  • 费率限制: 429响应在错误消息中包含重置时间戳(没有自动重试——由调用者决定)

项目结构

src/
  main.rs    — entry point, config loading, tracing, stdio transport
  server.rs  — MCP tool handlers, response formatting, multi-account routing
  api.rs     — X API client: OAuth signing, tweet/media/user/DM endpoints
  params.rs  — tool parameter types (serde + JSON Schema)

目录标签

目录标签

RustClaude云端部署TwitterAPI集成本地部署多账户管理社交媒体自动化Rust开发JSON-RPC服务

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP