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

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

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

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

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

先分清楚两个 MCP

X 官方现在提供两类 MCP:

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

实际读书签、搜帖子,用的是第二个。官方推荐的做法是让 xurl mcp 当本地桥接:Codex 先连本机的 xurl,xurl 再带着 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 ID 和 Client 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_ID、CLIENT_SECRET、REDIRECT_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/callback,xurl 接住这个结果并换取 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 ID 和 Client Secret 到本机 ~/.xurl.env。
  • 已添加 Codex MCP 配置:xapi 和 x-docs。
  • 已验证 @xdevplatform/xurl 可运行,版本为 1.2.2。

还剩两件事:

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

行业动态

为拯救一台快要废了的苹果电脑,我造了个轮子……

2026-7-1 14:12:06

行业动态

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

2026-7-2 10:17:02

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