mcpField
D
Domain availability and quotes (demo)

Domain availability and quotes (demo)

远程服务
modelmarket.dev云与基础设施02 天前更新

关于 Domain availability and quotes (demo)

Domain availability and quotes (demo) 是面向运营者和 Agent 开发者的预上线域名销售工具包。它提供签名报价和域名管理能力,但默认演示模式会拒绝注册和续费。

主要功能

  1. 01查询 .com、.net 和 .org 可用性
  2. 02提供签名报价及价格明细
  3. 03在上线模式注册或续费域名
  4. 04读取和更新 DNS 记录
  5. 05恢复订单状态并获取签名收据
  6. 06将自有域名连接到 Vercel

适用场景

  1. 01查询域名并查看报价
  2. 02管理自有域名的 DNS
  3. 03恢复待处理的注册订单
  4. 04将自有域名连接到 Vercel 项目

MCP 相关

它为 MCP 客户端提供 stdio 配置和域名能力,包括报价、注册、续费、订单状态及 DNS 操作。默认演示模式允许读取,但会拒绝注册和续费。

配置

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

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

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

工具

详细介绍

🔄 与 monorepo 同步,但保留实时历史记录。 domain-kit 镜像自规范的 AI-Factory monorepo。此处的历史记录仅追加(不会强制推送)。 欢迎提交拉取请求——已合并的 PR 会导入 monorepo,并在此处重新同步,因此你的贡献会成为规范内容。 💬 欢迎提交 Issues · 拉取请求。

Domain Operator Kit — Agent 构建成果的家园。独立供应商、固定加价和由所有者控制的 DNS。

Domain Operator Kit

向 AI Agent 销售域名。自选供应商,掌控业务。

许可证:MIT Node.js 22.13 或更高版本 Agent 接口:MCP stdio 支付:x402,Base 上的 USDC 57 项本地测试已通过,记录于 2026-10-19;不代表 GitHub CI 状态 发布状态:上线前

快速入门 · 功能 · 接入供应商 · 试点计划 · 运营指南(俄语)

English · Русский

Agent 可以构建并部署应用。此工具包让它更进一步:获取域名的签名报价,将域名注册到实际所有者名下,管理 DNS,并将域名连接到 Vercel 项目。

独立运营商运行自己的销售节点,使用自己的注册商账户,并为每次注册或续费设定固定加价。Agent 使用共享的功能契约和设有预算的 MCP 客户端。

上线前版本。 本地测试以及 Openprovider 和 Porkbun Sandbox 试点均已通过:注册、DNS、续费、丢失响应恢复和 MCP 读取。生产环境中的域名购买、支付结算和 Vercel 绑定尚未验证。默认演示不会购买任何内容。验证记录 →

买家获得什么

一个精确域名,注册一年,并登记到所提供的注册人名下。 报价会在付款前显示供应商成本、固定加价和最终金额。例如,供应商成本为 10 美元、加价为 2 美元,则订单金额为 12 USDC;这些金额仅为示例,并非注册商费率。

包含 DNS 管理和域名信息。续费需单独购买,并按新报价定价。注册商自动续费已禁用。可用性不代表预留,注册人仍可能需要通过电子邮件验证并采取操作。

内置注册商支持的范围为 .com、.net 和 .org,普通 ASCII 名称,注册期为一年。高级域名、IDN、转入域名和过期域名恢复不在此版本范围内。

一款产品,三种角色

你的身份使用内容
域名运营商或经销商你的注册商账户、收款钱包、退款储备金和固定加价;以及用于持久保存订单的销售节点
独立供应商HTTP 供应商契约,使用你自己的语言和基础设施实现
Agent 或应用开发者已签名的 domains.*@v1 功能、JavaScript 客户端或 stdio MCP 配置
flowchart LR
  Agent["AI agent / MCP client"] -->|Discover| Hub["AIMarket Hub"]
  Hub -->|Public quotes only| Seller["Domain operator"]
  Agent -->|Private order + x402 payment| Seller
  Seller -->|Register and reconcile| Provider["Openprovider / Porkbun / HTTP supplier"]
  Agent -->|Owner-signed DNS| Seller
  Agent -->|Buyer-side connector| Vercel["Your Vercel project"]

Hub 负责发现。订单、注册人联系方式、支付授权和 DNS 操作都直接发送给销售方。此实现不收取 Hub 佣金。Vercel 令牌由买家持有。

在本地试用

使用 Node.js 22.13+;本地验证使用的是 22.22.1。在 monorepo 中的 domain-kit/ 目录下,或在 satellite checkout 的根目录下运行:

npm ci --ignore-scripts
npm run check
npm test
npm run demo

此演示会运行一个签名的 HTTP 生命周期:报价 → 模拟注册 → DNS → 续期。无需注册商账户、钱包充值或外部服务。本地 HTTP 测试需要获得在 localhost 上监听的权限。

若要进行最简单的外部 API 测试,请使用 Porkbun Sandbox 快速入门:自动生成一次性凭据、虚拟额度,以及可恢复的端到端试点。Porkbun 适配器仅限用于 sandbox,直到生产试点通过。

若要进行 Openprovider Sandbox API 集成测试,请遵循自选启用的 npm run sandbox:pilot 说明。该脚本会保留状态,并在重复运行时复用相同订单。

若要启动持久化演示服务:

cp .env.example .env
node --env-file=.env src/server.js

在另一个终端中:

DOMAIN_ALLOW_DEMO=1 node bin/domain-rails.mjs check http://127.0.0.1:9495

这会检查公开报价协议和签名;不会验证卖家身份。服务会在 data/ 中持久化加密文档和密钥。部署之间请勿丢弃此目录。

公共节点:在配置密钥前先作为演示运行

DOMAIN_MODE=auto 适用于在开始销售前就要发布的节点。没有密钥时,它是一个公开演示:可用性信息真实(.com、.net、.org 使用注册局自己的 RDAP),报价带有签名并标记为 demo,价格仅供参考,查询会正常响应,只有 register 和 renew 会被拒绝并返回 403 demo_mode。配置好所有实时设置后(生产注册商密钥或 HTTP 供应商、PAY_TO、CDP_KEY_FILE、DOMAIN_REFUND_KEY_FILE、HTTPS DOMAIN_PUBLIC_URL 和 DOMAIN_TERMS_URL、DOMAIN_UPSTREAM_COST_CONFIRMED=1),下一次启动便会开始实时销售。在此之前,/healthz 会列出仍缺失的设置名称(live_missing),绝不会显示其值。Porkbun 仍仅限用于 sandbox。modelmarket.dev 运行着这样的节点作为其域名展示页:domains.modelmarket.dev,工具包的落地页位于根目录,示例工作台则是一个可搜索名称、显示签名价格并引导完成订单的店面。这两个静态页面都位于 docs/landing/ 中,会通过同源地址调用节点;可将它们部署在自己的节点旁(运行 node docs/landing/dev.mjs 可预览)。

Agent 功能

功能用途
domains.quote@v1可用性、确切的注册价格或私有续期报价
domains.register@v1注册报价中的名称,期限为一年
domains.renew@v1使用新报价续期已拥有的域名
domains.order.status@v1恢复待处理订单并获取其签名收据
domains.info@v1到期时间、名称服务器和所需的所有者操作
domains.dns.get@v1DNS 记录和修订版本
domains.dns.set@v1替换选定的记录集,同时保留其他名称和类型的记录
domains.transfer.code@v1私有转移码(如受支持);不包含在 MCP 工具列表中

机器可读合约 · 身份验证和付款协议

连接买家
node bin/domain-rails.mjs init-owner /private/path/owner.pem

针对支持 stdio MCP 的客户端,调整 examples/mcp.json。通过可信目录固定卖家的公钥,配置所有者的签名密钥和联系信息文件,然后设置每笔购买预算和每日预算。默认禁用购买。

DOMAIN_REGISTRANT_FILE 会在本地注入联系信息。钱包密钥和所有者密钥来自私有文件,绝不会来自模型参数。付款授权和预算预留会在发送前持久化。重试会复用原始授权;结果未知时,预算会继续预留。

重试时请保留原始 client_order_id 和订单正文。收到待处理响应时,应检查状态,而不是创建第二笔购买。用户或客户端策略必须授权购买并接受卖家条款。

将域名连接到 Vercel

在买家的环境中配置 VERCEL_TOKEN_FILE、VERCEL_PROJECT_ID,以及可选的 VERCEL_TEAM_ID。MCP 客户端会公开 vercelConnect:

{"domain":"your-owned-domain.com"}

连接器采用 Vercel 当前的 DNS 建议,将顶级域名添加到固定项目,并保留现有的 TXT 验证值和无关记录。替换其他 A 记录需要显式设置 replace_existing:true。必须先通过 DNS 提供商的控制台删除冲突的 AAAA/CNAME 记录。

waiting_for_verification_or_dns 表示传播或验证仍在进行中。configured 反映的是 Vercel API 的状态,并非独立的 HTTPS 可访问性测试。卖家本身需要持久运行的 Node 进程和磁盘;它不是 Vercel Function。

自带供应商

Openprovider 和 Porkbun Sandbox 提供内置适配器。其他供应商需实现用于报价、联系人准备、提交、对账和管理的通用 HTTP 端点。运营者保留自己的账户、定价和收款目的地。

供应商规范和可运行模拟器 →

支持该规范可实现集成;但这并不意味着未经测试的供应商已可用于生产环境。我们的试点计划从 Openprovider Sandbox 和我们自己的 Agent 开始,然后使用我们自己的 Vercel 项目下的受控域名,之后再引入外部客户。

为中断的操作场景而设计

  • 持久化订单标识。 更改输入不会悄然复用现有订单。钱包签名会将付款绑定到订单和所有者密钥。
  • 不盲目重试变更操作。 付款或注册商的响应丢失时,会使用原始证据进行对账。
  • 对已证实的未交付情况退款。 退款会退回原付款方。结果不明时会保持待处理状态;退款需要有充足的储备金和正常运行的基础设施。
  • 私密管理。 所有者请求和卖家响应使用 Ed25519;文档正文使用 AES-256-GCM。数据库行标识符(包括域名)不会加密。
  • 明确的运营限制。 每个 SQLite 数据库只能运行一个卖家进程。Openprovider 的续期结果不明确时,可能需要提供有记录的运营者证据。Porkbun 重放仅在 23 小时窗口内使用持久化幂等键;对于时间更久且结果未知的操作,需要进行审核。DNS 版本检查无法针对控制台外部编辑提供原子锁定。

本项目不包含自动到期通知、续期调度器、所有者密钥恢复或通用 DNS 删除 API。运营者必须在服务客户前制定这些支持流程。请参阅 OPERATIONS.md。

仓库状态

规范源码位于 AIMarket 单仓库中的 domain-kit/。GitHub 独立仓库为 alexar76/domain-operator-kit。在单仓库根目录下,对应的命令为 npm test --prefix domain-kit(以及 npm run check --prefix domain-kit)。项目包含 Node 22/24 CI 工作流、Docker/Compose 定义和本地品牌资源。该工作流已准备就绪;本 README 并未声称它已在 GitHub 上运行。本地测试徽章链接到一份带日期的验证记录。

此软件包仍设为 private:true,以防意外发布到 npm。快速入门不代表提供托管演示或已发布的软件包。

采用 MIT 许可证。基础付款对账功能改编自 AIMarket eSIM 运营者工具包;请参阅 NOTICE.md。

评论

支持 Markdown

第一次接触 MCP?

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

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