我把 X MCP 接进 Codex 了:从 Twitter API 到本地验证

我今天把 X 官方 MCP 配了一遍。

对我来说,最值的地方是书签整理。以后不用一条条翻 Twitter 书签,可以让 Codex 直接拉最近几天的 bookmarks,再按主题整理。写选题、做信息简报、追一个账号最近在聊什么,都会省很多时间。

不过它不是装个插件就能用。你得先进 X Developer Console,创建 App,打开 Pay Per Use,配 OAuth,再把 Client IDClient Secret 写到本机配置文件里。

下面是我这次完整跑下来的流程。

先分清楚两个 MCP

X 官方现在提供两类 MCP:

  • https://docs.x.com/mcp:文档 MCP。只能查 X API 文档,不读取你的账号数据。
  • https://api.x.com/mcp:真实 X API MCP。可以读取帖子、用户、书签、趋势、新闻等,需要走 OAuth 授权。

实际读书签、搜帖子,用的是第二个。官方推荐的做法是让 xurl mcp 当本地桥接:Codex 先连本机的 xurlxurl 再带着 OAuth token 去访问 https://api.x.com/mcp

官方文档参考:

  • X MCP 文档 (https://docs.x.com/tools/mcp)
  • Full route: xurl bridge (https://docs.x.com/tools/mcp#full-route-xurl-bridge)

一、进入 X Developer Console

打开 X Developer Console:

https://console.x.com/

打开后会先出现这个加载页:

X Developer Console 加载页
X Developer Console 加载页

进入当前账号的 Apps 页面。Pay Per Use 项目下的 App 会列在这里。

X Developer Console 的 Apps 列表页
X Developer Console 的 Apps 列表页

我的账号下面已经有一个 active 的 App。后面要拿的 OAuth 2.0 Key,就从这个 App 进去。

二、创建或进入一个 App

如果还没有 App,就点击 Create App

如果已经有 App,直接点进现有 App 即可。

这次配置使用的是已有 App:

2072009577944449024yiancode

App ID:

33137657

从 Apps 页面点进 App,先到 Keys & Tokens

App 的 Keys & Tokens 页面
App 的 Keys & Tokens 页面

这一页最容易看乱。对这次配置来说,先知道这几块就行:

  • App-Only Authentication:App-only 的 Bearer Token。
  • OAuth 1.0 Keys:OAuth 1.0a 相关 Key。
  • OAuth 2.0 Keys:这次配置 X MCP 主要看这一块。

OAuth 2.0 Keys 区域点 Edit settings,进入 User authentication settings。

三、设置 OAuth 2.0

如果还没配过,按钮会显示 Set up。已经配过的话,点 Edit

这一页先照着填:

App permissions: Read
Type of App: Web App, Automated App or Bot
Callback URI / Redirect URL: http://localhost:8080/callback
Website URL: https://x.com/yiancode

先把 App permissions 选成 Read,再把 Type of App 选成 Web App, Automated App or Bot

选择 Read 权限和 Web App 类型
选择 Read 权限和 Web App 类型

继续往下滚动,在 App info 里填 callback 和网站地址:

填写 Callback URI 和 Website URL
填写 Callback URI 和 Website URL

这几个选项别乱改。

权限选 Read,因为这次只是读取书签、帖子和用户信息,不需要让 AI 替你发帖。App 类型选 Web App, Automated App or Bot,因为 xurl bridge 需要 OAuth 2.0 client,后面会用到 Client IDClient Secret

callback 用 http://localhost:8080/callback。这是 xurl 第一次走浏览器授权时默认接收回调的地址。

四、保存:先管 Secret,别急着截图

点击 Save Changes 之后,X 会弹出一个窗口:

Did you save your OAuth 2.0 Client Secret?

窗口里会给你两段东西:

Client ID
Client Secret

这里我卡了一下。Client Secret 只完整显示一次,弹窗关掉以后就看不到了。所以别急着截图,先复制,先保存,再做别的。

  • Client Secret 只显示一次。
  • 复制后立刻保存到本机安全位置。
  • 不要放在公众号教程截图里。
  • 不要提交到 Git 仓库。
  • 如果怀疑泄露,就在 X Developer Console 里重新生成。

保存完成后,回到 Keys & Tokens 页面。下面这张图里的 Client ID 已经做了遮挡,Client Secret 也保持隐藏状态:

保存后的 OAuth 2.0 Keys 页面,密钥已遮挡
保存后的 OAuth 2.0 Keys 页面,密钥已遮挡

本机保存位置:

/Users/yian/.xurl.env

文件权限:

600

内容格式长这样。文章里只放占位符,不放真实值:

export CLIENT_ID="YOUR_X_APP_CLIENT_ID"
export CLIENT_SECRET="YOUR_X_APP_CLIENT_SECRET"
export REDIRECT_URI="http://localhost:8080/callback"

五、在 Codex 里添加 X MCP

Codex 配置文件:

/Users/yian/.codex/config.toml

我这次加了两个 MCP:

[mcp_servers.xapi]
command = "/Users/yian/.codex/bin/xapi-mcp"
args = []
startup_timeout_sec = 300

[mcp_servers.x-docs]
url = "https://docs.x.com/mcp"
startup_timeout_sec = 60

其中:

  • xapi:真实 X API MCP,用来读取 X 数据。
  • x-docs:X 文档 MCP,用来查官方文档。

本地启动脚本:

/Users/yian/.codex/bin/xapi-mcp

脚本内容:

#!/usr/bin/env zsh
set -euo pipefail

if [[ -f "$HOME/.xurl.env" ]]; then
  source "$HOME/.xurl.env"
fi

if command -v xurl >/dev/null 2>&1; then
  exec xurl mcp https://api.x.com/mcp
fi

exec npx --registry=https://registry.npmjs.org/ -y @xdevplatform/xurl mcp https://api.x.com/mcp

这个脚本只做三件事:

  • 读取 ~/.xurl.env 里的 CLIENT_IDCLIENT_SECRETREDIRECT_URI
  • 如果本机已经安装了 xurl,直接用本机版本。
  • 如果没有安装,就通过 npx @xdevplatform/xurl 临时启动。

六、验证当前机器配置

本机已经验证过这几项:

xapi MCP 配置存在
xapi-mcp 启动脚本可执行
~/.xurl.env 权限是 600
CLIENT_ID 已写入
CLIENT_SECRET 已写入
REDIRECT_URI = http://localhost:8080/callback
@xdevplatform/xurl 版本 = 1.2.2
本机 X MCP 配置验证截图
本机 X MCP 配置验证截图

我用的验证命令:

npm view @xdevplatform/xurl version
npx --registry=https://registry.npmjs.org/ -y @xdevplatform/xurl --version

输出类似这样:

1.2.2
xurl version 1.2.2

七、第一次使用时授权

第一次调用 xapi MCP 时,xurl 会打开浏览器,让你授权 X 账号。

页面上会出现类似这样的按钮或标题:

Authorize app

确认授权后,xurl 会把 token 缓存在本机。之后 Codex 调 X MCP 时,xurl 会自动带上新的 Bearer token。

  • 如果是在远程机器或没有浏览器的环境,需要用官方文档里的 headless 模式。
  • 本机 Codex 桌面环境通常直接走浏览器授权即可。

八、如何确认 X MCP 已经能用

重启或刷新 Codex 会话后,新的 xapi MCP 才会加载出来。

加载成功后,可以直接这样问:

读取我最近三天的 X bookmarks,并按主题分类。
分析我最近收藏的 X 帖子,找出 AI Agent、MCP、Claude Code 相关内容。
搜索这个用户最近 30 天关于 MCP 的帖子。

如果只看到 x-docs,没有看到 xapi,说明当前 Codex 会话还没加载新配置。处理方式很简单:

重启 Codex,或新开一个 Codex 会话。

九、常见问题

1. 为什么不能只填 Bearer Token?

Bearer Token 通常是 App-only。

读取你的书签这类个人数据,需要 user-context,也就是你自己的 X 账号授权。xurl bridge 处理的就是这件事。

2. 为什么 callback 必须是 localhost?

因为授权发生在本机:浏览器登录 X,X 把授权结果回跳到本机的 http://localhost:8080/callbackxurl 接住这个结果并换取 token。

3. 为什么不要给 Read and write?

能读就不要给写。

如果只是整理信息、分析书签、总结帖子,Read 权限够用。写权限意味着 AI 工具理论上可以替你发帖、改书签或做其他写入动作。

4. 为什么需要付费?

你使用的是 X Developer Platform 的 Pay Per Use 项目。调用 X API 会按 X 当前价格计费,具体价格以 X Developer Console 的 Billing / Usage 为准。

5. 为什么当前会话还不能直接拉数据?

这次是运行中修改了 Codex 的 MCP 配置。

当前会话已经能用 x-docs 查文档,但新加的 xapi 数据 MCP 通常要重启 Codex 或新开会话后才会出现。

十、最后检查一下

这次已经做完的部分:

  • X Developer Console 里保存了 OAuth 2.0 设置。
  • App 权限保持为 Read
  • App 类型设置为 Web App, Automated App or Bot
  • Callback URI 设置为 http://localhost:8080/callback
  • Website URL 设置为 https://x.com/yiancode
  • 已复制并保存 Client IDClient Secret 到本机 ~/.xurl.env
  • 已添加 Codex MCP 配置:xapix-docs
  • 已验证 @xdevplatform/xurl 可运行,版本为 1.2.2

还剩两件事:

  • 重启 Codex 或新开会话后,确认 xapi MCP 工具出现。
  • 第一次调用 xapi 时完成浏览器 OAuth 授权。

行业动态

Harness 工程之道:Skill 原理与最佳实践

2026-7-1 8:30:00

行业动态

大模型本地部署最强引擎,vLLM 大更新,v0.24.0

2026-7-2 10:17:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧