mcpField
N
Neuronto ARD Registry: Agentic Resource Discovery (ARD) Index

Neuronto ARD Registry: Agentic Resource Discovery (ARD) Index

远程服务
neuronto.com搜索与检索564 周前更新

关于 Neuronto ARD Registry: Agentic Resource Discovery (ARD) Index

Neuronto ARD Registry 是 Agentic Resource Discovery(ARD)规范的索引服务,可在所有公开 ARD 注册表中进行一次搜索,并提供已验证的 MCP 工具索引。它面向 Agent 开发者、API 与工具供应商以及平台团队。与仅存储服务名称与描述的目录不同,它会读取各 MCP 端点的 tools/list 来核实工具。

主要功能

  1. 01联合搜索多个公开 ARD 注册表并合并排序
  2. 02已验证的 MCP 工具名称与输入模式索引
  3. 03混合检索,结合 BM25 与向量检索
  4. 04端点存活探测,失效条目降低排名
  5. 05支持付费端点的价格信息筛选

适用场景

  1. 01Agent 在运行时按需查找可用的工具或服务
  2. 02API 厂商发布 manifest 以便被 ARD 客户端发现
  3. 03平台团队对内部服务进行发现与检索

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://neuronto.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

4
参数类型必填说明
kindenum否限定为一种资源类别。匹配时会进行规范化,因此 'mcp-server' 可在所有流通中的媒体类型下找到相关项,而 'a2a-agent' 或 'agent' 均可匹配 A2A 卡片以及 ACP、OASF 和 AgentFacts 描述符。'webmcp' 指浏览器页面工具,它们不是可调用的服务端。any | mcp-server | skill | a2a-agent | agent | webmcp | plugin | openapi | graphql | dataset | package | doc | catalog | registry
limitinteger否
querystring是任务的通俗描述。例如:“抓取受 cloudflare 保护的网站”。
networkstring否支付网络,例如 base、solana、tempo 或 stripe。
paymentenum否仅保留符合此付款要求的资源。“free”表示价格未知;“payable”表示已知价格或 402。any | free | payable | x402 | mpp | card
federateboolean否同时实时查询上游注册表并合并排名。关闭时速度更快。
max_price_per_callnumber否单次调用的最高支付金额,单位为美元。价格未知的资源将被排除。

详细介绍

Neuronto ARD 注册表:智能体资源发现(ARD)索引

一次搜索即可覆盖所有公开 ARD 注册表,还可查询经过验证的 MCP 服务实际提供的内容。

neuronto.com · API · 提交你的服务 · 基准测试 · 数据集 · 清单


什么是 ARD?

ARD 是 Agentic Resource Discovery(智能体资源发现) 的缩写,是一项开放规范,用于规定 AI Agent 如何发现所需的工具、技能、Agent 和 API。该规范由一个工作组于 2026 年 6 月发布,工作组成员包括 Google、Microsoft、Hugging Face、AWS、Cisco、GitHub、Nvidia、Salesforce 和 Snowflake。

智能体资源是 AI 客户端为完成任务而调用的任何对象:MCP 服务、A2A Agent、技能、API、工作流。

ARD 回答一个问题:“这项任务有哪些可用资源?”,然后便不再干预。它不是运行时,也不会取代 MCP 或 A2A。它告知 Agent 有哪些资源;Agent 则通过资源自身的协议进行连接。

它解决的问题

如今,Agent 只能使用有人提前为其安装的能力。每个工具都必须手动接入,每个工具描述都必须占用上下文窗口空间,与实际工作争夺空间。这种模式无法适应拥有数千种工具、甚至数百万种工具的生态系统。

ARD 将选择问题从上下文窗口转移到搜索服务中,这与早期网络从精选链接目录转向搜索引擎时发生的转变相同。

要实现这一点,必须具备两个角色。发布方在自己的域名下一个众所周知的位置描述所提供的内容。注册表则为这些描述建立索引并响应查询。Neuronto 兼具这两种角色。

为什么采用联邦索引

该规范定义了三种联邦模式,并将 auto 设为默认模式:注册表查询其对等方,合并结果后返回一个结果集。

但实际上,每个公开注册表只会根据自己的目录作答,因此在四个地方提出同一个问题会得到四种不同的答案,客户端还必须选择一个。Neuronto 正是为了解决这个问题而存在。

只需向 Neuronto 查询一次,查询便会同时发送到所有公开 ARD 注册表。结果通过互惠排名融合进行整合:它合并的是排序,而不是分数。这是必要的,因为每个注册表采用的校准方式各不相同;引入其他服务的评分,也会一并引入其偏差。

响应会指出哪些注册表已作答、哪些请求超时,因此调用方始终可以了解答案涵盖了联邦中的多少内容。

它有哪些不同之处

默认采用联邦模式。 按规范实现 federation: auto:在严格的时间预算内并发发送查询、融合排名,并逐个报告上游服务。对等方响应缓慢只会消耗时间预算,不会造成其他影响。

完全符合规范。 作为注册表和发布方通过规范的官方一致性测试工具,零错误、零警告,其中包括可选的 GET /agents 列表接口,该接口会返回正确分页的对象。

类型标准化。 当前有三种用于 MCP 服务的媒体类型(application/mcp-server、application/mcp-server+json、application/mcp-server-card+json),并有两个 URN 前缀作为发现标识符(urn:air: 和 urn:ai:)。由于筛选条件要求精确匹配,条目会被静默丢弃。Neuronto 会在接收时对两者进行标准化,因此,无论发布方如何拼写类型,MCP 服务筛选器都能返回这些服务。 经验证的工具索引,而不只是服务索引。 其他所有注册表都只存储服务名称和发布者编写的说明文字。Neuronto 会与每个已编入索引的 MCP 端点握手并读取其 tools/list,因此索引中存放的是实际工具名称和输入架构,也就是 Agent 实际需要匹配的内容。目前共有 2,223 个服务上的 32,183 个已验证工具,另有 1,918 个记录为需要凭据的端点,其他注册表都不会报告这些信息。内省是只读的:绝不会调用工具。

混合检索。 使用稀疏 BM25 和稠密向量,并通过与联邦检索相同的倒数排名融合进行合并,因此一次查询即可执行词法、语义和联邦检索,并返回统一排序结果。稠密检索环节包含在联邦检索预算内;如果不可用,则不会产生任何结果,因此不会拖慢词法快速路径。

经验证的可用性。 对已编入索引的端点进行探测,并在排名中降低无响应端点的优先级。基于自发布清单构建的注册表很快就会积累失效链接;提供这些链接,是让索引最快失去信任的方式。条目会被降级而非删除,因为服务可能会恢复。

根据证据生成清单,而非填写表单。 大多数域名永远不会手动编写清单。它们已经运行 MCP 服务、提供 OpenAPI 文档,或发布了 llms.txt,而清单只是重述爬虫已经能找到的内容。Neuronto 会探测域名,只为确实有响应的每项资源生成条目,记录证明依据,并托管结果。不会进行任何推断,因为猜测生成的清单会在他人的域名上做出对方从未提出、也无法辩护的声明。

索引中的私有部分。 组织内部 Agent 可以调用的内部服务列表,通常放在系统提示词中,既无法搜索,也无人审计。通过 DNS 证明所有权的域名可以注册这些服务,之后一次查询即可同时返回内部和公开结果,并分别标明其类型。私有条目存储在与公开索引分离的存储中,而不是由某个标志控制,因此从设计上就无法通过任何公开搜索、计数或页面访问它们。

调用前了解付款条款。 过去,用户会先找到并调用付费端点,然后才收到 402 Payment Required 响应。Neuronto 会从两个地方读取资源的费用信息,并将其分别保存:资源清单声明的内容(规范示例中的 pay: 条款、schema:offers,以及包含价格的目录格式),以及端点在未付款调用时返回的内容(PAYMENT-REQUIRED 标头或 402 响应正文中的 x402 条款,或 MPP 挑战)。要求付费的服务会被记录为可访问,而不是故障。结果包含 pay:protocol、pay:price、pay:currency 和 pay:network,并通过 paymentEvidence 说明是否有实时 402 响应予以确认;搜索也可以按这些字段筛选:

curl -sS -X POST https://neuronto.com/search -H 'content-type: application/json' \
  -d '{"query":{"text":"crypto token prices","filter":{"pay:protocol":["x402"],"maxPricePerCall":0.01}},"federation":"none"}'

为高开销调用付费。 可自托管的 Neuronto 不收取任何费用。在 neuronto.com 上,为调用者执行外部操作的调用——联邦搜索、审计或清单构建——在额度内免费。超出额度后,429 响应会在 PAYMENT-REQUIRED 标头中附带 x402 价格;付费的 Agent 无需等待即可获得调用结果;发送 x-payment-protocol: x402 的客户端则会直接收到 402 响应。只有成功的调用才会结算。提交资源、认领域名、收录和结果排名都不收费。GET https://neuronto.com/x402 会说明当前生效的条款。

条款绝不会影响评分,注册表也绝不会处理付款:调用者直接向服务提供方付款。 如果你也希望我们代为结算款项。 读取价格只是问题的一半;收款是另一半。Neuronto 还运营着托管式 x402 facilitator,地址为 pay.neuronto.com,任何 x402 服务都可以通过一行配置指向它:它会检查买家签名的稳定币付款,并在链上完成结算;它绝不会持有任何人的资金,因为转账由买家签名,facilitator 只负责广播。目前在 Base 上运行,新服务上线期间免费。一个在线端点会收取十分之一美分,并在同一请求中原路返还,因此客户端可以免费端到端运行;pay.neuronto.com/status 发布的是实际观察到的行为,而非对其行为的承诺。

这是一个独立的托管服务:它不属于本仓库,本仓库中的任何内容都不依赖它,可自托管的 Neuronto 绝不会与它联系,也不会因为使用或不使用它而对任何资源进行不同排名。

拉开差距的排名。 只有当第一条和第五条结果之间的差距清晰可见时,相关性评分才有用。评分经过缩放,以保留实际差异,而不是把所有结果压缩到狭窄的区间内。

适用场景

  • Agent 构建者,停止硬编码集成。在运行时请求所需能力,并连接当前最适合提供该能力的服务。
  • API 和工具供应商,在自己的域名上发布一份清单,让所有 ARD 客户端都能发现你,无需申请加入经过筛选的市场。
  • 平台团队,通过内部服务进行发现,让组织内的 Agent 以查找公共服务的相同方式找到它们。

使用方法

通过一次调用搜索此索引和整个联邦:

curl -s https://neuronto.com/search \
  -H 'content-type: application/json' \
  -d '{"query":{"text":"scrape a website behind cloudflare"},"federation":"auto"}'

也可以将其安装为 MCP 服务,让 Agent 通过它已经使用的接口进行搜索:

claude mcp add --transport http neuronto https://neuronto.com/mcp
注册表 API
端点用途
POST /search排序后的结果。federation:auto(默认)、referrals、none。
POST /explore索引的分类计数。
GET /agents确定性分页列表,用于浏览而非排序。
POST /mcp以 MCP 工具的形式提供搜索、工具搜索、索引统计和发布功能。GET 和 DELETE 返回 405:没有由服务端发起的流,每个工具都会在发起请求的请求中返回结果。
POST /a2a通过 A2A 访问同一索引。message/send 返回一条 Message。Card 位于 /.well-known/agent-card.json 和 /.well-known/agent.json。
POST /tools、GET /tools?q=针对已验证工具而非服务进行工具级搜索。
POST /submit为 MCP 端点或发布清单的域名建立索引。200 表示已建立索引,202 表示已保留并将重试。
GET /submit/status/{id}查看提交的处理状态,以及其端点最后一次给出的响应。
POST /audit发布报告:发现情况、规范符合性、覆盖范围、竞争情况。
POST /manifest/build根据从域名获取的资源,为该域名生成清单。
GET /m/{host}.json托管的该生成清单。
GET /agents.md说明如何调用以及如何使用,供已到达此处的 Agent 阅读。
POST /claim、POST /claim/verify通过 DNS TXT 证明域名所有权,并获取密钥。GET /claim 说明具体步骤。
POST /private/entries注册内部服务。需要密钥。
GET /bench、GET /adoption检索效果测量,以及发布清单的对象。
GET /.well-known/ard.json我们自己的发布者清单。
GET /openapi.json上述所有接口的 OpenAPI 3.1 规范。
GET /.well-known/api-catalog上述说明的 RFC 9727 目录。

每个 GET 路由也会以相同的标头、无正文的形式响应 HEAD。

判断答案何时不够可靠

每个排名靠前的结果得分都接近 100。这是有意为之:分数是相对于同一结果集中的最佳命中计算的,因为 BM25 的数值大小取决于语料库和查询,因此绝对分数毫无意义。它能很好地排序,但单独来看会造成误导。查询 zzzz nonexistent capability qqqq 的得分是 100,因为总会有某个结果排在第一位。

因此,每个搜索响应都会在相对分数旁附带一个绝对数值:

"queryMatch": {
  "coverage": 0.0,
  "confidence": "none",
  "matchedTerms": [],
  "queryTerms": ["zzzz", "nonexistent", "capability", "qqqq"],
  "note": "each result's `score` is relative to the best hit in this response ..."
}

coverage 表示查询中的实词有多少比例能在首个结果本身的文本中找到依据。它不受语料库影响,这是分数无法做到的属性,因此能区分“多个好答案中最好的一个”和“什么都没有时最好的一个”。

它衡量的是重叠程度,而非正确性。 如果某条目包含查询中的所有词,却做的是相反的事情,得分仍为 1.0。应将其视为置信度下限,而非判定结果;它也绝不是信任度或安全评级。

读取公共索引不需要密钥,也不需要注册。密钥仅用于接纳经过验证域名的私有条目,并且只有在通过 DNS 证明所有权后才会签发。

相关性分数仅表示语义相关性,绝不代表信任度、合规性或安全评级。规范明确规定,信任评估与发现过程相互独立。

搜索工具,而非服务

当你已经知道所需调用的形式时,托管该调用的服务只是实现细节:

curl -s 'https://neuronto.com/tools?q=extract+text+from+a+pdf&limit=5'

返回的每个工具都从其所属服务自己的 tools/list 中读取。同一搜索也可作为 MCP 工具 find_tool 提供给 Agent 使用,此外还有 find_resource、 registry_stats 和 publish_resource。只有 publish_resource 会写入数据,并且只有它声明了 readOnlyHint: false,因此客户端只查看工具列表就能判断哪个调用会产生效果。

衡量这一切是否有效

GET /bench 发布 ARD-Bench,这是针对公共 ARD 注册表的正面对比检索测量;GET /bench.json 则以纯 JSON 格式提供同一次运行结果及其生成时间。测试框架位于 app/bench.py,每周刷新。

任务集是一个文件,并且已冻结。 bench/declared-v1.json (也通过 /bench/tasks.json 提供)包含 192 个任务,每个发布者一个。每条查询都逐字摘自发布者自己域名上的清单,任务还记录了该清单的 URL 和来源正文的 sha256,因此任何人都可以核实查询确实出自发布者,而非我们之手。该文件包含对任务集的摘要,且不会原地修改;新增任务集会成为新版本。任务按发布者划分为 tune 和 holdout 两部分:前者是唯一可用于选择任何排序参数的部分,基准报告则依据后者。

响应会区分两个容易混淆的指标:coverage 表示注册表是否索引了目标,recall@k_when_carried 表示注册表持有目标时是否能将其检索出来。我们的 coverage 按定义为 1.0,因为任务来自此索引中的资源,响应内容也说明了这一点。

排序权重经过测量,而非凭空断言, app/rank.py 中的每个权重旁边都列出了用于确定它的数据表。scripts/evalgate.py 每天都会对照固定基线(bench/baseline.json)运行:检查 holdout 的 recall@10 和 MRR、检查一组常规能力请求(scripts/battery.py,每个用例都不得退步),并确保联邦搜索的得分始终不低于本地搜索。任何下降都会导致门禁失败。

联邦搜索增加覆盖率,而不重新排序。 在 federation: auto 模式下,仅当此索引无法给出有把握的答案时才会查询其他注册表;它们返回的结果可以补充此索引中缺少的资源,但不会改变此索引已找到结果的顺序。在 holdout 上,auto 和 none 的 recall@10 均为 0.934;auto 的 MRR 更高,中位耗时为 177 ms,而 none 为 121 ms。

查询会发生什么

每个搜索响应都会携带 queryHandling 和 Neuronto-Query-Handling 标头,说明查询文本是否被保留、为生成此答案发送到了哪些注册表,以及是否进行了嵌入。"federation": "none" 表示查询不会离开服务。使用 API 密钥进行的搜索,或携带 Sec-GPC: 1 或 DNT: 1 的搜索会被计数,但其文本不会被保留;搜索记录会在 90 天后删除。完整声明请见 /privacy。

谁在发布 ARD 清单

GET /adoption 跟踪规范本身的采用情况:一份列出具名组织的观察名单,以及爬虫所见所有主机的清单发布率。截至撰写本文时,观察名单上的 20 家组织中有 3 家发布了清单:Hugging Face、Vercel 和 Zapier。这三家都在 /.well-known/ai-catalog.json 路径下提供清单,该路径已在 v0.91 中更名。在爬虫发现的 178 家发布者中,157 家提供旧版 ai-catalog.json,只有 14 家提供 ard.json,因此跟踪器会检查这两个路径:衡量路径而非实际做法,会得出错误答案。

开放数据集

经过验证的工具语料库以开放数据集形式发布,采用 CC BY 4.0 许可: huggingface.co/datasets/AgenticResourceDiscovery/verified-mcp-tools

tools.jsonl 包含全部 31,411 个经过验证的工具及其输入架构;servers.jsonl 包含 7,708 条内省结果,包括身份验证要求和失败类型。发布这个数据集,是因为工具检索研究(ToolRet,ACL Findings 2025)一直基于汇编语料库而非实时生态进行基准测试,而这里提供的正是实时生态。

徽章

如果你的 MCP 服务已被收录在索引中,徽章会说明我们验证过的内容:你的服务在 tools/list 中返回了多少个工具,以及端点是否有响应。

[![your.publisher.id on the Neuronto ARD Registry](https://neuronto.com/badge/your.publisher.id.svg)](https://neuronto.com/ard-publishers/your.publisher.id)

发布者 ID 是 URN 中的发布者部分,或你的域名。徽章仅说明观察到的情况,绝非信任、安全性或质量评级。还未被收录?发布清单,爬虫就会找到你;或者运行控制台审计。

发布你自己的资源

有四种接入方式,所需投入依次增加。它们都不需要加入允许列表,也不需要注册。

你已经在运行 MCP 服务。 提交端点。Neuronto 会完成 initialize 握手,并读取该服务自己的 tools/list。这比清单中的声明更有力,因为服务是自行作出响应的。

curl -X POST https://neuronto.com/submit \
  -H 'content-type: application/json' \
  -d '{"endpoint":"https://example.com/mcp"}'

你正在 Agent 中工作。 这与 MCP 工具相同,因此无需离开对话,就能在对话中列出资源。

{"method":"tools/call","params":{"name":"publish_resource",
 "arguments":{"endpoint":"https://example.com/mcp"}}}

它会像 HTTP 路由那样进行验证,而非盲目信任;并且会调用该路由,而不是重新实现一遍,因此两者不会出现偏差。

提交绝不会丢失。 如果端点当时因任何原因未能通过验证,响应会是 202,并包含 "status": "pending"、提交 ID 和 evidence:实际返回内容的 HTTP 状态码、内容类型和开头字节,或端点发送的 JSON-RPC 错误。注册表会保留该提交,并按固定计划重试(1 min、5 min、15 min、1 h、4 h、12 h、24 h、24 h),直到验证通过或重试次数用尽;GET /submit/status/{id} 会显示当前进度。如果拒绝是由注册表本身造成的,例如索引正忙,则不会消耗重试次数。因此,即使服务当时正在部署、DNS 记录尚未传播,或客户端在调用一次后就放弃,最终也会被编入索引,无需任何人再次提交。队列数量会在 /metrics.json 的 submissions 下公开统计。

索引繁忙时,其他写入端点会如实响应。 POST /claim/verify、POST /private/add 和 POST /private/delete 会返回 503、Retry-After 标头和 "status": "busy",而不是以未说明的方式失败;DNS 证明或请求不会丢失,请在指定秒数后重试。POST /manifest/build 仍会返回生成的清单,并在无法存储托管副本时附带说明,同时报告 "hosted_at": null。

你没有清单,也不想自己编写。 请求根据你的域名已公开的内容生成一份清单,然后复制它或添加其链接。

curl -X POST https://neuronto.com/manifest/build \
  -H 'content-type: application/json' -d '{"domain":"example.com"}'

只有实际作出响应的资源才会成为条目,每个条目都会附带生成该条目的证据。托管副本 https://neuronto.com/m/example.com.json 会在自己的响应标头中说明,该文件是生成的,并非由域名所有者编写。

你有清单。 将其放在 /.well-known/ard.json,并提交域名,或等待爬虫抓取。

curl -X POST https://neuronto.com/submit \
  -H 'content-type: application/json' -d '{"domain":"example.com"}'

也将其放在 /.well-known/ai-catalog.json。规范的 0.91 版重命名了该文件,但已部署的基础尚未迁移:在目前已验证的 ARD 发布者中,绝大多数仍只提供旧路径,因此只检查其中一个名称的使用方会错过大部分生态。

每个条目都要包含 representativeQueries。注册表会根据该字段中的词条构建语义索引;没有它的条目虽然是有效的目录条目,却永远不会出现在任何搜索结果中。

检查是否成功
curl -X POST https://neuronto.com/audit \
  -H 'content-type: application/json' -d '{"domain":"example.com"}'

报告清单在四种发现路径上的可访问性、是否逐条符合规范、哪些注册表确实会返回你的资源,以及对于你希望被搜索到的查询,哪些资源取代了你出现在结果中,并说明这些条目具备哪些你可能没有的内容。免费,无需注册。也提供浏览器版本:/console。

最后一步,无论你通过哪种方式接入:添加徽章。 注册表开始返回你的资源后,就把徽章放到 README 或网站上。它会说明观测结果、已验证的工具数量以及端点是否有响应;情况变化时,它会自动更新。徽章免费,且不会影响你的索引或排名。以上每个响应的末尾都有相同的句子和可直接粘贴的代码片段;徽章页面提供了各种格式。

私有条目

组织可以注册自有 Agent 可调用的内部服务,并在一次查询中搜索公共资源和内部资源。

# 1. ask for the proof record, publish it as a TXT record at your apex
curl -X POST https://neuronto.com/claim \
  -H 'content-type: application/json' -d '{"domain":"example.com"}'

# 2. verify, which returns an API key
curl -X POST https://neuronto.com/claim/verify \
  -H 'content-type: application/json' -d '{"domain":"example.com"}'

# 3. register an internal service
curl -X POST https://neuronto.com/private/entries \
  -H "authorization: Bearer $KEY" -H 'content-type: application/json' \
  -d '{"entry":{"displayName":"Staff Directory","url":"https://internal/mcp",
       "description":"Look up an employee record by name or badge number.",
       "representativeQueries":["look up an employee record"]}}'

# 4. the same key on search admits them, alongside public results
curl -X POST https://neuronto.com/search \
  -H "authorization: Bearer $KEY" -H 'content-type: application/json' \
  -d '{"query":{"text":"look up an employee record"}}'

证明值根据域名生成,且永远不会改变,因此再次请求不会使已发布的记录失效。系统通过 DNS over HTTPS 读取该值,因此权威区域一旦提供该值,验证就会立即生效。只有验证才能签发密钥。

每条结果都会说明它来自公共索引还是你自己的条目。私有条目不会根据语料统计数据与公共条目进行排名,因为单个租户的索引规模太小,统计数据毫无意义;系统会根据条目自身文本覆盖查询内容的比例为其排序,因此无论索引规模大小,排序依据都相同。

规范

许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。