在 Codex 里用 okdata:通过 MCP 拿社媒数据

在 Codex 的 config.toml 里加一次 okdata,命令行、IDE 插件和 ChatGPT 桌面版都能查接口、取公开社媒数据。

配好之后,Codex 写依赖数据的代码前,可以先看一眼真实数据长什么样。举个例子:你想每周看看观众怎么评价竞品在 YouTube 上的发布视频。先让 Codex 通过 okdata 取一页评论,看清返回的结构,再让它写一个小脚本,每周一直接调 HTTP 接口把评论存成 CSV。摸索阶段走 MCP,最后留下来的脚本完全不依赖 AI。

准备

  • 装好 Codex:命令行版(终端里能运行 codex)、IDE 插件,或者 ChatGPT 桌面版。三者共用同一份配置,配一次就行。
  • 一个 okdata 的 key,以 okd_ 开头。新 key 自带 $0.10 额度。怎么拿 key 见快速开始。
  • 把 key 放进环境变量 OKDATA_API_KEY。Mac 上加到 ~/.zshrc(Linux 是 ~/.bashrc),然后新开一个终端:
export OKDATA_API_KEY="okd_..."

添加服务

打开 ~/.codex/config.toml(没有就新建一个),加上:

[mcp_servers.okdata]
url = "https://api.okdata.online/mcp"
bearer_token_env_var = "OKDATA_API_KEY"

bearer_token_env_var 填的是变量名,不是 key 本身。Codex 连接时去读 OKDATA_API_KEY,再带上 Authorization: Bearer <key>,key 不会落进文件里。如果只想在某个项目里用,就把这三行写进该项目的 .codex/config.toml;Codex 只会读你标记为受信任的项目里的配置。

IDE 插件和桌面版也能在设置里添加(MCP servers,再点 Add server,选 Streamable HTTP),但 bearer token 这一项要在 config.toml 里设,所以直接改文件最省事。改完重启插件或应用。

确认连上了

终端里运行 codex mcp list,应该能看到 okdata 和它的地址。在 Codex 会话里输入 /mcp,能看到它已连接,带四个工具:find、describe、call、account。

再问一句:“我的 okdata 余额还有多少?”报出数字就说明 key 能用,这一步不花钱。

第一句可以这样说

用 okdata 找到 YouTube 视频评论接口,告诉我单价。
取 https://www.youtube.com/watch?v=<视频 id> 的一页热门评论。
然后写一个 comments_weekly.py:用普通 HTTP 发同样的请求,
key 从环境变量 OKDATA_API_KEY 读取,结果存成 CSV。

花多少钱

find、describe、account 免费,call 按接口单价收费。YouTube 评论一页 $0.004,上面这句话花 $0.004,之后脚本每跑一次再按次计费。小红书笔记搜索一页 $0.02。调用失败不扣费。

如果你给 Codex 开了比较宽的自动批准,记得在提示里写上预算,比如“收费调用不超过两次”。

出问题时

  • 返回 unauthorized(401)。 Codex 没读到 key。在终端里运行 [ -n "$OKDATA_API_KEY" ] && echo 已设置 || echo 没有设置,显示“已设置”后再从这个终端启动 Codex。从程序坞或开始菜单打开的应用不一定读得到 shell 配置文件里的变量,所以可能出现命令行能用、桌面版不行的情况。实在不行,可以把 bearer_token_env_var 那一行换成 http_headers = { "Authorization" = "Bearer okd_..." }。这样 key 会明文存在 ~/.codex/config.toml 里,千万别写进项目里的 .codex/config.toml。
  • 返回 insufficient_balance(402)。 余额不够这次调用,没有扣费。充值后重试,价格见定价页。
  • 返回 rate_limited(429)。 一下子调用太多。错误里有 retry_after_seconds,等这么多秒再发同一个调用,不扣费。
  • 看不到服务或工具。 检查 TOML:段名必须是 [mcp_servers.okdata],中间是下划线;地址要以 /mcp 结尾。网络慢、启动超时的话,在这一段下面加一行 startup_timeout_sec = 30。

接着看

更新于 2026-11-12