Gateway Price Disclosure Check

io.github.happy520ai由 GitHub 帳號 happy520ai 發布v0.5.8更新於 Nov 7, 2026

Checks whether an OpenAI-compatible endpoint publishes model prices without an account or key.

發布方自己的服務:check.tattoo: tattoo size and placement guide

概覽

AI 產生的概覽

檢查某個 OpenAI 相容閘道是否在無需帳號或金鑰的情況下公開模型價格,並可讀取已歸檔的每日橫評結果。

可以做什麼
  • 探測端點:對閘道的模型清單送出一次無鑑權 GET,回傳判詞(YES、NO、AUTH、ERR、UNKNOWN)以及項目數與帶價項目數。
  • 讀取歸檔讀數:依日期取得儲存庫中已歸檔的每日跨服務商橫評,預設為當天。
  • 區分結果:把「清單被鑑權擋住」與「清單公開但一個價都不標」分開,並在探針無法辨識價格欄位時單獨標記。
適用情境
適合在註冊前比較各模型閘道的價格透明度,或讓助理對某個 OpenAI 相容端點做一次可重複的公開資訊揭露檢查。也可用來查閱該專案歸檔的每日橫評數字。
執行需求
以本機 stdio 程序在桌面端執行,透過 npx 從 GitHub 套件或 .mcpb 套件啟動;需要 Node.js,並能連線到被探測的端點。未宣告任何帳號、API 金鑰、環境變數或請求標頭。
安裝前請注意
探針會對所給的 URL 發出對外請求;依設計只允許 https,並預設拒絕回送、私有網路、連結本機與中繼資料位址,除非設定 GPC_ALLOW_INSECURE,而該設定會削弱這層保護。ERR 與 UNKNOWN 描述的是探針本身,而非服務商。作者揭露其對某閘道價格頁有經濟利害關係,但稱本工具與該關係保持隔離。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gateway Price Disclosure Check,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

gateway-price-check

[ci] [daily-readings]

一个只读问题:一个 OpenAI 兼容端点,在你没注册、没 key 的时候,愿不愿意把价格告诉你?

很多模型网关要先把账号建完、充完值,你才知道自己按什么单价付费。这个工具对任意端点发一次无鉴权 GET, 然后报告它公开返回了什么:有没有价格、有没有币种字段、有没有缓存价、有没有告诉你每个模型 id 背后是哪份权重。

bash
# 不用 clone、不用装:一条命令直接跑(已实测,输出如上)npx github:happy520ai/gateway-price-check
# 探测你自己的端点:直接粘你的 base_url 就行(.../v1 会自动补成 .../v1/models,并会打印补全后的地址)npx github:happy520ai/gateway-price-check --url https://your-gateway.example/v1 --name mine
# 或者 clone 下来node src/cli.mjsnode src/cli.mjs --url https://your-gateway.example/v1 --name mine

单文件版(不用 clone、不用装依赖)放在 gist 里,由本仓库源码机械拼接生成,文件头写明生成自哪个 commit: gist.github.com/happy520ai/5f5f2a95385ef185f51a42c04a99cc46 — 重新生成 node make-gist-bundle.mjs,查是否过期 node make-gist-bundle.mjs --check。

[各家免登录公布价格的横评图]

下表与上面这张图都由 CI 从 results/latest.json 重写(<!--READINGS:--> 之间是机器区,手改会在下一次 每日跑批时被覆盖——覆盖不是 bug,是因为手抄的数字会在端点变动当天变成假话,而这张页面上的数字是给别人引用的)。 最新一次读数见 RESULTS.md。

判词家数是谁
YES 免登录就公布价格3OpenCSG 19/21 · OpenRouter 454/454 · Vercel AI Gateway 480/495
NO 清单公开但一个价都不标1NVIDIA NIM 0/84
AUTH 不注册连清单都看不到(401)7OpenAI · DeepSeek · SiliconFlow 硅基流动 · Alibaba DashScope 百炼 · Volcengine Ark 火山方舟 · Zhipu 智谱 · MiniMax

三条读数:

  1. 11 家里只有 3 家免登录就给价格(27%)。 所以"免登录能看价"既不是行业惯例,也不是某个品类的默认设置—— 任何拿它当独家卖点的文案都不该被相信。
  2. 它跟厂商大小无关。 NVIDIA 把清单公开却一个价都不标;七家一线与国产原厂连清单都要 key。 公开清单和公开价格是两件不同的事,混为一谈的探针会给出漂亮的假数据。
  3. 三家里只有 OpenCSG 的价格对象带显式 currency 字段并按「元/百万 token」报。 这是单位可读性差异,不是透明度差异——透明度上 OpenRouter 是 454/454,比它更高。

引用这些数据

results/latest.json 每天被覆盖,所以不要引用它来支撑一个带日期的说法——你点进去的时候它已经是别的日子了。 带日期的读数在 results/history/,一天一个文件,CI 每天追加, 文件名与内容里的 as_of 由测试互锁(对不上就红),也不允许往回覆盖。

引用格式建议:gateway-price-check, reading of <as_of> (UTC+08:00), results/history/<as_of>.json。

它刻意不做的事

  • 不发任何对话请求,因此不评估模型保真度。 它只回答"公布了什么",不回答"给的是不是真权重"。 要测后者,去看 awesome-ai-gateway 的 canary-diff 方法。
  • 不并发、不重试、不轮询。 每个端点一次 GET。
  • 不把"我没读到"说成"它没有"。 这是本工具唯一严格的设计约束,见下。

五档判词、三档退出码,而不是"读不到=没有"

("五档"指判词 YES/NO/AUTH/ERR/UNKNOWN;"三档"指进程退出码 0/1/2。两个数不同源,别把它们当成同一个东西——本仓库的描述一度只写"three-tier verdicts",那是把退出码误当判词数。)

退出码档位含义
0YES / NO / AUTH清单读到了;或明确被鉴权挡住(401/403)——对"免登录可见价格"这个问题,AUTH 就是"否"
1ERR端点不可达 / 非 401·403 的错误 / 不是 data[] 清单形状 / 清单为空
2UNKNOWN有条目带 pricing 对象,但一条都没有字段名落在识别词表内

ERR 与 NO 必须分开:一个返回空数组的端点,和一个明确列出 20 个模型却一个价都不标的端点, 是两件完全不同的事。AUTH 也不算 ERR——把 401 归成"探针失灵"会系统性高估整个行业的透明度, 这正是我第一版犯的错,是拿 OpenAI 和 DeepSeek 真跑了一遍才暴露的。 UNKNOWN 存在的原因是——如果服务商把价格放在 in_unit 这种我们没见过的键里, 一个只会数 prompt/price 的探针会报"0 条带价",那是探针瞎了,不是服务商不透明。 部分不认识时判 YES 并在判词里报出未解析条数与键名(Vercel 那 60 条就是这么露出来的)。

给 AI 助手用:MCP 服务端(stdio)

也在官方 MCP Registry 里:io.github.happy520ai/gateway-price-check(包是 .mcpb,stdio / node 运行时)。 在支持注册表的客户端里可以直接搜这个名字;核对用权威路由:

curl -s https://registry.modelcontextprotocol.io/v0/servers/io.github.happy520ai%2Fgateway-price-check/versions

(命名空间里有斜杠,必须编码成 %2F;?search= 那个面是缓存——0.5.6/0.5.7 发布后十几分钟,它仍返回 0.5.4。)

同一个测量,另一个入口。宿主是语言模型时,"能不能看价格"这个问题就变成它可以自己回答的事:

json
{  "mcpServers": {    "gateway-price-check": {      "command": "npx",      "args": ["-y", "--package", "github:happy520ai/gateway-price-check", "gateway-price-check-mcp"]    }  }}

两把工具:

  • check_price_disclosure(url, name?) → 一次无鉴权 GET /v1/models,返回 YES/NO/AUTH/ERR/UNKNOWN + 条目数/带价数。内部就是 fork 一份 src/cli.mjs,所以 MCP 读数、CLI 读数、CI 归档读数出自同一条代码路径——两台仪器只有共享同一份声明时才算互证,共享同一段实现时才算不打架。
  • latest_archive_readings(date?) → 读仓库里已归档的每日横评(默认今天,可给 YYYY-MM-DD)。

三条设计约束,都是这个入口特有的:

  1. 它只准走 https,且默认拒绝环回/私网/链路本地/元数据地址。 宿主可能被页面内容牵着走,一个"帮我探探这个端点"的请求不该变成对内网的任意请求。确实要在内网自测就显式设 GPC_ALLOW_INSECURE=1。
  2. ERR/UNKNOWN 不是服务商的判决,是探针的——initialize 的 instructions 里就把这句写死,免得模型转述成"它不透明"。
  3. 协议层错误与工具层失败分开:未知方法 -32601、未知工具/坏参数 -32602、被拒绝的 URL -32600;真跑但读不出结果才走 isError。这样宿主能区分"你没资格问"和"这个问题现在没答案"。

test/mcp.test.mjs 真起子进程做 stdio 握手(9 条离线臂 + 1 条联网臂,CI 两个 OS 都开 GPC_LIVE_TESTS=1)。其中"通知不许有回包"那条自带正对照:先证明抓得到没人等的回包,再断言通知没有——否则那是一条空断言。

在 CI 里跑(composite GitHub Action)

不用装东西,也不用写脚本:把 uses 指到 release tag,一次无鉴权 GET 就进你的流水线。

yaml
- uses: happy520ai/[email protected]  with:    url: https://ai.space.opencsg.com/v1   # …/v1 或完整 …/v1/models 都行    name: OpenCSG    fail-on: 'NO'                          # 只有"清单公开却零价格"默认让 CI 转红# outputs: verdict / total / priced / json

fail-on 默认是 NO,而 ERR/UNKNOWN 默认不失败——那两档说的是探针自己(网络不通、价格键长在词表外),把它们当"服务商不透明"会系统性低估行业的透明度。想让它们也拦,就显式写 fail-on: 'NO,ERR,UNKNOWN'。写进 fail-on 的词不在这五档内,action 会拒绝执行且不留下半截 outputs。

能照抄的真跑例子(含一条"必须红"的臂,用来证明 fail-on 不是装饰): .github/workflows/action-smoke.yml。

自测

bash
node --test

10 条用例里包含四条必中靶:空清单必须落到 ERR(不许落 NO)、全未知字段必须落到 UNKNOWN、 401 必须落到 AUTH 而 404 仍须是 ERR(不许把两种失败混成一档)、部分未知时判 YES 但判词必须带出未解析条数。 没有这四条,上面的分档承诺只是文档里的一句话。

加一个服务商

编辑 src/providers.json,或直接用 --url。若对方用了新字段名,把键加进 src/probe.mjs 顶部的 PRICE_KEY / CACHE_KEY / UPSTREAM_KEY 三个正则,并补一条用例。

披露

本仓库作者维护一个 OpenCSG 价格实测页, 那个页面带个人邀请码,有人经它注册我会拿到平台奖励。本工具与那份利益关系保持隔离: 默认配置里两个服务商是并列摆放的,而上面那张表里 OpenRouter 的透明度读数比 OpenCSG 更高 (454/454 带价 vs 19/21)。如果这个工具只对某一家说好话,它就没有存在价值。

MIT。

來源:README.md,提交 a67663a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.5.8最新Oct 17, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Check 整合