API / 版本 1
以稳定的 JSON 呈现证据。
公共 API 公开与网站相同的带时间戳观测。它是只读的,无需密钥或账号。
请求与缓存
每个响应都是 application/json,并带有 Cache-Control: public, s-maxage=60, stale-while-revalidate=300。遵守该标头不会给你带来任何成本,还能让索引的提供更省资源,因此请从缓存读取,而不是轮询。只提供 GET 和 HEAD;任何其他方法都会返回 405,并带有 Allow 标头。
错误绝不会只返回一个状态。响应正文始终是一个对象,其中包含可安全用于分支判断的 code,以及为人类编写的 message:
{ "error": { "code": "invalid_limit", "message": "limit must be an integer from 1 to 100" } }列出服务器
GET /api/v1/servers- q
- 针对标题、注册表名称和描述进行匹配的自由文本。
- state
- verified、stale、broken、auth_required 或 unverifiable 之一。
- package
- 软件包注册表类型:npm、pypi 或 oci。
- transport
- Registry 记录声明的传输方式,例如 stdio。
- client
- 客户端 slug,如 Clients 页面所列——例如 claude-code。 公共 API
- limit
- 1 到 100 之间的整数。默认为 25。超出该范围的值会被拒绝,而不是被截断,因此客户端拿到的行数绝不会与它请求的不同却未被告知。
- cursor
- 上一个响应中的 nextCursor。第一页请省略;最后一页为 null。
GET /api/v1/servers?state=verified&package=npm&limit=2
{
"data": [
{
"id": "srv_01J…",
"registryName": "example/one",
"title": "Example Server",
"description": "What the server says it does.",
"state": "verified",
"observedAt": "2026-09-15T00:00:00.000Z",
"toolCount": 3,
"url": "/servers/example/one"
}
],
"nextCursor": null
}服务器详情
GET /api/v1/servers/:namespace/:name在 data 下返回某个服务器的 Registry 元数据、可运行的软件包以及公开观测历史。该历史中的每次运行都会指明它所测试的确切软件包版本,而这通常不是今天发布的版本。未知的组合会返回 404,code 为 not_found。
验证运行
GET /api/v1/verification-runs/:id按标识符返回一次观测。尚未通过确认规则的运行不会出现在这里,并返回 404,code 为 not_found——与从未存在过的运行给出相同答案,因为两者之间的任何差异都会泄露该规则旨在不予披露的失败。
数据集统计
GET /api/v1/stats{ "data": { "indexedServers": 979, "verifiedServers": 0, "observedAt": null } }错误码
- invalid_limit
400— limit 不是 1 到 100 之间的整数。- invalid_cursor
400— cursor 格式错误,或是针对不同的排序顺序生成的。请从第一页重新开始。- not_found
404— 没有这样的服务器,或没有使用该标识符的可发布运行。- method_not_allowed
405— 该 API 是只读的。响应会列出所提供的方法。
不公开的内容
内部 stderr、工作进程租约和待确认详情永远不会发布,并且状态始终带有它所描述的那次观测的时间戳,而不是你请求它的时间。