X MCP服务器

一个用于X(Twitter)集成的模型上下文协议(MCP)服务器,提供26种工具,包括读取时间线、发布、搜索、互动(点赞、转发、收藏)、用户查找、粉丝导出、提及、点赞、文章和列表等功能。

  • by DataWhisker
  • TypeScript
  • 本地部署
  • 80 星标
  • 更新于
在 GitHub 查看 DataWhisker/x-mcp-server

使用说明

X MCP服务器

用于X(Twitter)集成的模型上下文协议(MCP)服务器。提供26个工具,用于阅读时间线、发布、搜索、参与(点赞、转发、书签)、用户查找、关注者导出、提及、点赞、文章和列表。专为与Claude桌面和其他MCP兼容客户端一起使用而设计。

特征

  • 时间线和搜索 -主页时间线,搜索最近的帖子(7天窗口)
  • 帖子管理 -使用可选媒体创建、回复、引用、删除帖子
  • 参与 -喜欢/不喜欢、转发/撤消、书签/取消书签标记
  • 用户数据 -提及、点赞帖子、关注者、关注、阻止、静音、拥有列表、关注列表和列表成员资格
  • 用户查找 -获取用户资料和他们最近的帖子
  • 媒体上传 -通过v2上传API的图像(PNG、JPEG、GIF、WEBP)和视频(MP4、MOV、AVI、WEBM、M4V)
  • 双重身份验证 -OAuth 1.0a用于后期操作,OAuth 2.0用于媒体上传(v1.1上传于2025年6月日落)
  • 速率限制 -自动跟踪每个端点的速率限制,并显示清晰的错误消息
  • TypeScript -全类型安全,模块化文件结构

先决条件

  • Node.js>=18.0.0
  • X(推特)开发者帐户
  • Claude桌面应用程序(或任何兼容MCP的客户端)

X API访问和定价

层级 成本 文章阅读 文章写作 注释
自由 $0 ~100/月 ~500/月 没有点赞/关注;媒体上传需要OAuth 2.0
基本 每月200美元 每月10000美元 每月3000美元 搜索,有限读取权限
专业版 每月5000美元 每月1000000美元 每月300000美元 完整搜索,过滤流
按使用付费 基于信用 ~0.005美元/读 变化 2026年2月推出,200万读上限

Like和Follow端点于2025年8月从免费等级中删除。 截至2025年,Follows/Blocks端点仅适用于企业。

安装

git clone https://github.com/DataWhisker/x-mcp-server.git
cd x-mcp-server
npm install
npm run build

认证

服务器支持两种身份验证方法。你需要 至少一个 已配置。

OAuth 1.0a(基本操作所需)

适用于所有发布/参与/搜索/用户操作。

环境变量 描述
TWITTER_API_KEY 消费者密钥(API密钥)
TWITTER_API_SECRET 消费者秘密(API密钥秘密)
TWITTER_ACCESS_TOKEN 用户访问令牌
TWITTER_ACCESS_SECRET 用户访问令牌密钥

设置: 在 X开发者门户:

  1. 创建项目和应用程序
  2. 在“用户身份验证设置”下启用OAuth 1.0a
  3. 将权限设置为“读写”
  4. 生成消费者密钥和访问令牌

OAuth 2.0(媒体上传所需)

v1.1媒体上传端点于2025年6月日落。媒体上传现在需要通过v2上传API的OAuth 2.0。

选项A-直接访问令牌:

变量 描述
TWITTER_OAUTH2_ACCESS_TOKEN OAuth 2.0用户访问令牌(2小时后过期)

选项B-自动刷新(建议用于长时间运行的服务器):

变量 描述
TWITTER_CLIENT_ID OAuth 2.0客户端ID
TWITTER_CLIENT_SECRET OAuth 2.0客户端密码(公共客户端可选)
TWITTER_OAUTH2_REFRESH_TOKEN OAuth 2.0刷新令牌

令牌会自动刷新并持久化到 ~/.x-mcp-tokens.json.

设置: 在 X开发者门户:

  1. 在您的应用设置中,启用OAuth 2.0
  2. 将类型设置为“机密客户端”或“公共客户端”
  3. 添加回调URL
  4. 请求范围: tweet.read, tweet.write, users.read, media.write, offline.access, like.read, like.write, bookmark.read, bookmark.write, follows.read, block.read, mute.read, list.read

Claude桌面配置

添加 %APPDATA%/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "x": {
      "command": "node",
      "args": ["C:/path/to/x-mcp-server/build/index.js"],
      "env": {
        "TWITTER_API_KEY": "your-api-key",
        "TWITTER_API_SECRET": "your-api-secret",
        "TWITTER_ACCESS_TOKEN": "your-access-token",
        "TWITTER_ACCESS_SECRET": "your-access-secret",
        "TWITTER_OAUTH2_ACCESS_TOKEN": "your-oauth2-token"
      }
    }
  }
}

可选Xquik搜索后端

search_tweets 可以使用Xquik,而服务器的其余部分保持默认值 X API客户端。设置:

变量 描述
X_MCP_SEARCH_BACKEND=xquik 仅限路线 search_tweets 致Xquik
XQUIK_API_KEY Xquik API密钥
XQUIK_API_BASE_URL 可选基本URL,默认为 https://xquik.com/api/v1

可用工具(26)

时间线和搜索

工具 说明 关键参数
get_home_timeline 从主页时间线获取最新帖子 limit (1-100)
search_tweets 搜索最近的帖子(7天窗口) query, limit

帖子管理

工具 说明 关键参数
get_tweet 按ID查找帖子 tweet_id
create_tweet 使用可选媒体创建帖子 text, image_path?, video_path?
reply_to_tweet 使用可选媒体回复帖子 tweet_id, text, image_path?, video_path?
quote_tweet 引用带有评论的帖子 tweet_id, text
delete_tweet 删除您的帖子 tweet_id

参与

工具 说明 关键参数
like_tweet 喜欢帖子(基本+级别) tweet_id
unlike_tweet 删除赞 tweet_id
retweet 重新定位到您的时间线 tweet_id
undo_retweet 删除转发 tweet_id
bookmark_tweet 稍后添加书签 tweet_id
unbookmark_tweet 删除书签 tweet_id
get_bookmarks 获取您的书签 limit (1-100)

用户

工具 说明 关键参数
get_user 按用户名查找用户 username
get_user_tweets 获取用户的最新帖子 username, limit
get_user_mentions 获取提及用户的帖子 username, limit
get_user_liked_tweets 获取用户的点赞帖子 username, limit
get_user_followers 获取用户的关注者 username, limit
get_user_following 获取用户关注的帐户 username, limit
get_blocking_users 让用户被经过身份验证的帐户阻止 limit
get_muting_users 使用经过身份验证的帐户使用户静音 limit
get_owned_lists 获取用户拥有的列表 username, limit
get_followed_lists 获取用户后面的列表 username, limit
get_list_memberships 获取用户所属的列表 username, limit

条款

工具 说明 关键参数
get_article 获取X文章的全文内容 tweet_id

媒体支持

  • 图像: PNG、JPEG、GIF、WEBP(最大5MB)
  • 视频: MP4、MOV、AVI、WEBM、M4V(最大512MB,流式分块上传)
  • 无法将图像和视频附加到同一帖子
  • 需要OAuth 2.0凭据(2025年6月日落时上传v1.1)
  • 路径限制: 只能上传主目录或系统临时目录中的文件(防止路径遍历)

安全

  • 输入验证: 推特ID必须是数字(1-20位数字),用户名必须匹配 [A-Za-z0-9_]{1,15}
  • 媒体路径限制: 根据允许列表(主目录、临时目录)验证上传路径
  • 令牌存储: OAuth 2.0令牌持久化 ~/.x-mcp-tokens.json 随着 0o600 权限(Unix)。在Windows上,文件权限不是由操作系统强制执行的,而是通过NTFS ACL保护文件或使用环境变量。
  • 错误清理: X API错误详细信息仅记录在服务器端;经过净化的消息将返回给MCP客户端
  • 刷新互斥体: 对并发令牌刷新尝试进行重复数据消除,以防止出现竞争情况

发展

npm run build    # Compile TypeScript
npm run dev      # Watch mode
npm start        # Run the server

项目结构

src/
  index.ts              # MCP server entry point & handler dispatch
  client.ts             # Twitter client setup (OAuth 1.0a + OAuth 2.0)
  media.ts              # v2 media upload (simple + chunked)
  rate-limit.ts         # Per-endpoint rate limiting
  tools/
    definitions.ts      # All 16 tool schemas
    handlers.ts         # Tool handler implementations

与GetXAPI配对,实现更便宜的读取操作(可选)

对于需要更便宜或更高的速率限制选项来进行推特(X)只读操作(如推特搜索、个人资料查找和关注者列表)的用户,此项目可以与 GetXAPI,预算Twitter/X数据API定价为每1K条推文0.05美元,而官方的X API基本层定价为每月200美元。

两种集成模式:

  1. 在AI客户端中并排运行。 保留此项目作为其主要工作流,并添加 GetXAPI MCP官方服务器 用于阅读繁重的任务。每个工具名称都会路由到最适合该操作的后端。

  2. 添加后端切换。 有关单个env变量后面可选替代后端的代码级引用,请参阅 PR模式合并为兄弟项目.

GetXAPI快速入门:

  • 使用0.50美元的免费信用卡注册(无需信用卡):https://getxapi.com/signup
  • GetXAPI MCP官方服务器:https://github.com/getxapi/getxapi-mcp
  • npm: @getxapi/mcp
  • 按通话付费定价:每次通话0.001美元,每条推文0.05美元

这种配对是完全可选的。现有用户的行为没有变化。

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求