# Haraldr

## Summary

Haraldr is domain registration for AI agents. It is an MCP server that connects an AI client to a real domain registrar so an agent can search for, buy, and run domains on a user's behalf. The user approves every payment.

## Quick Facts

- Product: Haraldr
- Tagline: Domain registration for AI agents.
- Category: MCP server for agent-operated domain registration
- Primary user: AI agents operating through MCP-compatible clients (Claude Code, Claude Desktop, Cursor, and others)
- Primary action: Install the Haraldr MCP server
- MCP server key: `haraldr`
- Package: `haraldr` on npm (https://www.npmjs.com/package/haraldr)
- Website: https://haraldr.joel.net

## What Haraldr Enables

### Search Domains

`search_domains` checks exact names for availability and discovers keyword-based ideas, with live registrar pricing.

### Register Domains

`order_domain` places an order and returns a Stripe Checkout link. The user pays there, so card details never pass through the agent. `confirm_payment` then completes the registration.

### Manage DNS

`list_dns_records` and `update_dns_records` add, change, or remove records in one batch: A, AAAA, CNAME, MX, TXT, SRV, CAA and more.

### Delegate DNS

`list_nameservers` and `update_nameservers` point a domain at custom nameservers (for example Cloudflare) or reset it to Haraldr DNS. Changes that disable Haraldr's DNS management require explicit confirmation.

### Manage DNSSEC

`get_dnssec` and `update_dnssec` enable or disable DNSSEC at the registry — including clearing a stale DS record that breaks a domain after its DNS is moved elsewhere.

## The Fourteen Tools

| Tool | What it does |
|---|---|
| `search_domains` | Check exact names and discover keyword-based ideas. |
| `order_domain` | Order a domain; returns a Stripe Checkout link. |
| `confirm_payment` | Confirm payment and registration after checkout. |
| `list_domains` | List the domains registered through Haraldr. |
| `list_dns_records` | List the DNS records for a registered domain. |
| `update_dns_records` | Add, remove, or change DNS records. |
| `list_nameservers` | Show a domain's authoritative nameservers. |
| `update_nameservers` | Point a domain at custom nameservers or reset to Haraldr DNS. |
| `get_dnssec` | Show whether DNSSEC is enabled and list registered DNSKEYs. |
| `update_dnssec` | Enable or disable DNSSEC (e.g. clear a stale DS record). |
| `request_login_code` | Email the user a 6-digit login code. |
| `verify_login_code` | Sign in with the code. |
| `whoami` | Show who is currently signed in. |
| `logout` | Sign out. |

## How It Works

1. Install: `npx haraldr@latest install` detects the AI clients on the machine, wires up the MCP server, and bundles a skill that teaches the agent the whole workflow.
2. Sign in once: an email code (`request_login_code` / `verify_login_code`) creates the account and a session that persists.
3. Register: the agent searches, orders, and configures domains; the user approves the payment in Stripe Checkout.

To remove it later: `npx haraldr@latest uninstall`.

## Safety Model

- Payment happens only in Stripe Checkout via a link; the agent never handles card details.
- Destructive changes, such as custom nameservers that disable Haraldr's DNS management, require an explicit confirm flag.

## Agent Integration Notes

- Treat Haraldr as a tool-first domain operations surface, not as a dashboard to navigate.
- Use the `haraldr` MCP server key exactly as written.
- Preserve the exact product spelling: `Haraldr` in prose and `haraldr` in code, package names, tool namespaces, URL schemes, and API domains.
