
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.
概覽
檢查某個 OpenAI 相容閘道是否在無需帳號或金鑰的情況下公開模型價格,並可讀取已歸檔的每日橫評結果。
- 可以做什麼
- 探測端點:對閘道的模型清單送出一次無鑑權 GET,回傳判詞(YES、NO、AUTH、ERR、UNKNOWN)以及項目數與帶價項目數。
- 讀取歸檔讀數:依日期取得儲存庫中已歸檔的每日跨服務商橫評,預設為當天。
- 區分結果:把「清單被鑑權擋住」與「清單公開但一個價都不標」分開,並在探針無法辨識價格欄位時單獨標記。
- 適用情境
- 適合在註冊前比較各模型閘道的價格透明度,或讓助理對某個 OpenAI 相容端點做一次可重複的公開資訊揭露檢查。也可用來查閱該專案歸檔的每日橫評數字。
- 執行需求
- 以本機 stdio 程序在桌面端執行,透過 npx 從 GitHub 套件或 .mcpb 套件啟動;需要 Node.js,並能連線到被探測的端點。未宣告任何帳號、API 金鑰、環境變數或請求標頭。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Gateway Price Disclosure Check,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
gateway-price-check
一个只读问题:一个 OpenAI 兼容端点,在你没注册、没 key 的时候,愿不愿意把价格告诉你?
很多模型网关要先把账号建完、充完值,你才知道自己按什么单价付费。这个工具对任意端点发一次无鉴权 GET, 然后报告它公开返回了什么:有没有价格、有没有币种字段、有没有缓存价、有没有告诉你每个模型 id 背后是哪份权重。
单文件版(不用 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。
三条读数:
- 11 家里只有 3 家免登录就给价格(27%)。 所以"免登录能看价"既不是行业惯例,也不是某个品类的默认设置—— 任何拿它当独家卖点的文案都不该被相信。
- 它跟厂商大小无关。 NVIDIA 把清单公开却一个价都不标;七家一线与国产原厂连清单都要 key。 公开清单和公开价格是两件不同的事,混为一谈的探针会给出漂亮的假数据。
- 三家里只有 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",那是把退出码误当判词数。)
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 运行时)。
在支持注册表的客户端里可以直接搜这个名字;核对用权威路由:
(命名空间里有斜杠,必须编码成 %2F;?search= 那个面是缓存——0.5.6/0.5.7 发布后十几分钟,它仍返回 0.5.4。)
同一个测量,另一个入口。宿主是语言模型时,"能不能看价格"这个问题就变成它可以自己回答的事:
两把工具:
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)。
三条设计约束,都是这个入口特有的:
- 它只准走 https,且默认拒绝环回/私网/链路本地/元数据地址。 宿主可能被页面内容牵着走,一个"帮我探探这个端点"的请求不该变成对内网的任意请求。确实要在内网自测就显式设
GPC_ALLOW_INSECURE=1。 ERR/UNKNOWN不是服务商的判决,是探针的——initialize的instructions里就把这句写死,免得模型转述成"它不透明"。- 协议层错误与工具层失败分开:未知方法
-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 就进你的流水线。
fail-on 默认是 NO,而 ERR/UNKNOWN 默认不失败——那两档说的是探针自己(网络不通、价格键长在词表外),把它们当"服务商不透明"会系统性低估行业的透明度。想让它们也拦,就显式写 fail-on: 'NO,ERR,UNKNOWN'。写进 fail-on 的词不在这五档内,action 会拒绝执行且不留下半截 outputs。
能照抄的真跑例子(含一条"必须红"的臂,用来证明 fail-on 不是装饰):
.github/workflows/action-smoke.yml。
自测
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版本歷史
1- v0.5.8最新Oct 17, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Check 整合
check.tattoo: tattoo size and placement guide
tattoo.check官方發布者
check.tattoo: tattoo size and placement guide 的託管 MCP 服務,由 check.tattoo 發布;無需登入;Streamable HTTP;5 個工具。
iva.pt — EU VAT check (VIES) and Portuguese VAT law
pt.iva官方發布者
在 VIES 中驗證歐盟增值稅號,並回傳葡萄牙增值稅法典(CIVA)與 RITI 條文,支援葡語與英語。

Dirtsmith Evidence Quote Check
由 GitHub 帳號 throttler300 發布
一個本機 MCP 伺服器,把助理的引用綁定到已准入的來源文字並標註片段位置,可選擇拒絕雜湊已過期的引用。

HTTP Header Policy Check — HSTS, CSP & Frame Declarations
由 GitHub 帳號 kriton-dev 發布
託管於 Apify 的遠端 MCP 伺服器,讓助理檢查網站宣告的七類 HTTP 安全標頭,且不傳回原始標頭值。

VOOPA Render Check
由 GitHub 帳號 Voopa-Corp 發布
對照創作要求審查已生成的影片,在再次付費算圖前建議是剪輯修改、重試一次還是更換做法。