通过 OAuth 或 API key 连接 Omni MCP

OAuth 使用 callbacks.omniapp.co/callback/mcp;API key 使用实例的 /mcp/https 地址,并通过环境变量提供凭据。

Omni 文档包含 Codex 的配置说明。OAuth 是推荐路径。组织管理员先打开:Settings → General 的 Enable AI、AI Hub → Features 的 Omni Agent、AI Hub → MCP 的 MCP server,以及 Settings → API Keys → Personal tokens。OAuth 要 PAT 开关。查询工具和文档搜索跟 Omni Agent 同一条管线;关掉 Agent 后,除 pickModel 外都会 403 Feature is not enabled。

官方远程入口是 https://callbacks.omniapp.co/callback/mcp,带 /callback/mcp。官方 OAuth 命令:

codex mcp add omni --url https://callbacks.omniapp.co/callback/mcp
codex
[mcp_servers.omni]
url = "https://callbacks.omniapp.co/callback/mcp"
enabled = true

这是 MCP 入口,会在 OAuth 时把你路由到上次登录的 Omni 组织,不是 Codex 自己的 loopback callback。加入多个组织时,先登出再登进要连的那个,随后登录。若浏览器未打开,运行 codex mcp login omni。Omni 会自动创建一个 MCP OAuth PAT,跟普通 PAT 不是一类:任意用户(含 Viewer)都能走完流程,但权限仍跟应用内角色走,Viewer 无法查询数据。这些 PAT 目前不在 Omni 界面里显示。

API key 是另一条 URL。官方示例主机是 acme.omniapp.co,路径是 /mcp/https不是 /mcp

codex mcp add omni --url https://acme.omniapp.co/mcp/https --bearer-token-env-var OMNI_API_KEY
[mcp_servers.omni]
url = "https://acme.omniapp.co/mcp/https"
bearer_token_env_var = "OMNI_API_KEY"
enabled = true

acme.omniapp.co 换成你的实例。官方 Option A 写成 codex mcp add omni https://…/mcp/https漏了 --url。缺少该参数时,URL 会被当作 stdio 命令。为避免在配置中明文保存密钥,Codex 用 bearer_token_env_var,读的是启动 Codex 那个进程里的变量名。从已经 export 的终端启动。从 Dock 或开始菜单启动的桌面应用通常不会加载终端环境变量。Codex 不读 .env

可选范围头可以留在 http_headers,它们不是密钥:X-MCP-Model-IDX-MCP-Topic-NameX-MCP-User-RequiredX-MCP-User-IDX-MCP-Query-All-Views。模型 ID 在模型页 URL 的 /models/…/ide/model 那段。X-MCP-Query-All-Views 要模型也打开 query_all_views_and_fields。同名表再 mcp add 一次会覆盖;OAuth 入口和 API key 入口应使用不同的服务名,避免两张表都叫 omni 的表。

单次查询 getData / runQuery 默认关,要管理员打开 Single shot query generation。复杂分析才是 askOmni + checkStatus。改已有 dashboard 会进草稿,要人审再发布;新建 dashboard 会立刻发布。runQuery 默认 500 行、上限 10000,带 userEditedSQL 的请求会被拒。

可以先询问「Hey Omni, tell me how many users signed up last month」。若工具未出现,请重新打开会话。

网页 Cloud 不读取 ~/.codex/config.toml。修改后重新打开会话。用 codex mcp get omni 看传输是 streamable_http。OAuth 路径的 /mcp 应显示 Auth: OAuth。

来源