Domain Operator Kit
Connects an owned domain to a Vercel project, using Vercel's current DNS recommendations, adding the apex domain to the pinned project, and preserving existing TXT verification values and unrelated records. Supports optional replacement of existing A records and reports whether Vercel configuration or DNS verification is still pending.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Domain Operator Kitquote and register example.com for a year, then attach it to my Vercel project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ Synced from a monorepo โ but with a live history.
domain-kitmirrors the canonical AI-Factory monorepo. History here is append-only (no force-push). Pull requests are welcome โ merged PRs are imported back into the monorepo and re-synced here, so your contribution becomes canonical. ๐ฌ Issues ยท Pull requests both welcome.
An agent can build and deploy an application. This kit lets it take the next step: obtain a signed price for a domain, register it to its real owner, manage DNS and connect it to a Vercel project.
Independent operators run their own seller nodes, use their own registrar accounts and set a fixed markup per registration or renewal. Agents use a shared capability contract and a budgeted MCP client.
Pre-live release. The local tests and full Openprovider Sandbox pilot pass: registration, DNS, renewal, lost-response recovery and MCP reads. Production domain purchases, payment settlement and Vercel attachment remain unverified. The default demo buys nothing. Verification record โ
What the buyer gets
One exact domain, registered for one year to the supplied registrant. The quote shows the supplier cost, fixed markup and final amount before payment. For example, a $10 supplier cost plus a $2 markup gives a 12 USDC order; these are illustrative amounts, not a registrar tariff.
DNS management and domain information are included. Renewal is a separate purchase at a newly quoted price. Registrar autorenew is disabled. Availability is not a reservation, and registrant email verification may still require action by the owner.
The initial Openprovider scope is .com, .net and .org, ordinary ASCII names, one year. Premium names, IDNs, incoming transfers and expired-domain restoration are outside this release.
Related MCP server: ClawDaddy MCP Server
One product, three roles
You are | What you use |
A domain operator or reseller | Your registrar account, receiving wallet, refund reserve and fixed markup; a seller node with durable orders |
An independent supplier | The HTTP supplier contract, implemented in your own language and infrastructure |
An agent or app developer | Signed |
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 / your HTTP supplier"]
Agent -->|Owner-signed DNS| Seller
Agent -->|Buyer-side connector| Vercel["Your Vercel project"]The Hub handles discovery. Orders, registrant contacts, payment authorizations and DNS operations go directly to the seller. This implementation charges no Hub commission. The Vercel token stays with the buyer.
Try it locally
Use Node.js 22.13+; local verification used 22.22.1. From domain-kit/ in the monorepo, or from the root of a satellite checkout:
npm ci --ignore-scripts
npm run check
npm test
npm run demoThe demo runs a signed HTTP lifecycle: quote โ simulated registration โ DNS โ renewal. No registrar account, wallet funding or external service is needed. Local HTTP tests require permission to listen on localhost.
For the real Sandbox API integration test, follow the opt-in npm run sandbox:pilot instructions. The script retains its state and reuses the same orders on repeat runs.
For a persistent demo server:
cp .env.example .env
node --env-file=.env src/server.jsIn another terminal:
DOMAIN_ALLOW_DEMO=1 node bin/domain-rails.mjs check http://127.0.0.1:9495This checks the public quote protocol and signature; it does not certify the seller. The server persists encrypted documents and keys in data/. Do not discard that directory between deployments.
Agent capabilities
Capability | Purpose |
| Availability, exact registration price or private renewal quote |
| Register the quoted name for one year |
| Renew an owned domain using a new quote |
| Recover a pending order and retrieve its signed receipt |
| Expiry, nameservers and required owner actions |
| DNS records and revision |
| Replace selected record sets while preserving other names and types |
| Private transfer code, where supported; excluded from the MCP tool list |
Machine-readable contract ยท Authentication and payment protocol
Connect a buyer
node bin/domain-rails.mjs init-owner /private/path/owner.pemAdapt examples/mcp.json for a client that supports stdio MCP. Pin the seller's public key through a trusted catalog, configure the owner's signing key and contact file, then set a per-purchase and daily budget. Purchases default to disabled.
DOMAIN_REGISTRANT_FILE injects the contact locally. Wallet and owner keys come from private files, never model arguments. Payment authorizations and budget reservations are persisted before sending. A retry reuses its original authorization; an unknown outcome keeps its budget reserved.
Keep the original client_order_id and order body across retries. A pending response is a reason to check status, not to create a second purchase. The user or client policy must authorize purchases and acceptance of seller terms.
Connect the domain to Vercel
Configure VERCEL_TOKEN_FILE, VERCEL_PROJECT_ID and optionally VERCEL_TEAM_ID in the buyer's environment. The MCP client exposes vercelConnect:
{"domain":"your-owned-domain.com"}The connector uses Vercel's current DNS recommendations, adds the apex domain to the pinned project and preserves existing TXT verification values and unrelated records. Replacing other A records requires explicit replace_existing:true. Conflicting AAAA/CNAME records must first be removed through the DNS provider's console.
waiting_for_verification_or_dns means propagation or verification is still pending. configured reflects the Vercel API, not an independent HTTPS reachability test. The seller itself requires a persistent Node process and disk; it is not a Vercel Function.
Bring your supplier
Openprovider has a built-in adapter. Other suppliers implement the common HTTP endpoints for quotes, contact preparation, submission, reconciliation and management. Operators retain their own accounts, pricing and payment destination.
Supplier contract and runnable simulator โ
Supporting the contract makes integration possible; it does not make an untested supplier production-ready. Our pilot plan starts with Openprovider Sandbox and our own agent, then a controlled domain for our own Vercel project, before involving outside customers.
Built for interrupted operations
Durable order identity. Changed input cannot silently reuse an existing order. A wallet signature binds payment to the order and owner key.
No blind mutation retries. Lost payment and registrar responses enter reconciliation using the original evidence.
Refunds for proven non-delivery. Refunds target the original payer. Ambiguous outcomes remain pending; refunds require a funded reserve and functioning infrastructure.
Private management. Owner requests and seller responses use Ed25519; document bodies use AES-256-GCM. Database row identifiers, including domain names, are not encrypted.
Explicit operational limits. One seller process per SQLite database. Openprovider renewal ambiguity may require documented operator evidence. DNS revision checking is not an atomic lock against outside console edits.
No automatic expiry notifications, renewal scheduler, owner-key recovery or general DNS deletion API is included. Operators must provide those support procedures before serving customers. See OPERATIONS.md.
Repository status
Canonical source is domain-kit/ in the AIMarket monorepo. The GitHub satellite is alexar76/domain-operator-kit. From the monorepo root the same commands are npm test --prefix domain-kit (and npm run check --prefix domain-kit). A Node 22/24 CI workflow, Docker/Compose definitions and local branding assets are included. The workflow is prepared; this README does not claim it has run on GitHub. The local test badge links to a dated verification record.
This package remains private:true to prevent accidental npm publication. No hosted demo or published package is implied by the quickstart.
MIT licensed. Base payment reconciliation was adapted from the AIMarket eSIM operator kit; see NOTICE.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-first domain registration and DNS management, paid with USDC via x402.
Domain registration for AI agents via Stripe or x402 crypto with Cloudflare DNS.
Domain search, registration, DNS, marketplace, and checkout with your AI agent.
Internet identity for AI agents: register or broker domains, email, DNS - pay by card or USDC.
Related MCP Servers
AlicenseAqualityCmaintenanceService that lets AI Agents search, register, and configure domains1074 npm10MIT- AlicenseAqualityDmaintenanceEnables AI agents to check domain availability, purchase domains via Stripe, and perform full DNS and nameserver management. It facilitates automated domain lifecycle tasks like record updates and transfer locks without requiring CAPTCHAs.MIT
- AlicenseAqualityDmaintenanceDomain registration for AI agents. Check availability, buy domains (Stripe or x402 crypto), and auto-configure Cloudflare DNS - all without leaving your coding session.94MIT

Purple Flea Domainsofficial
AlicenseNot gradedqualityDmaintenanceBuy and manage domain names with USDC via API. Search availability, register .com/.ai/.io domains, and manage DNS records. Designed for autonomous AI agents. 15% referral commissions.10 npmMIT