Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

run.domani/domani

REMOTE · DOMANI.RUN · SCANNED OCT 2

Internet identity for AI agents: register or broker domains, email, DNS - pay by card or USDC.

Available components

0 this week 39 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Install

How do I install the run.domani/domani MCP server?

run.domani/domani is a hosted endpoint at https://domani.run/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · domani.run

# add to Claude Code
claude mcp add --transport http run-domani-domani 'https://domani.run/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "run-domani-domani": {
      "url": "https://domani.run/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "run-domani-domani": {
      "type": "http",
      "url": "https://domani.run/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.run-domani-domani]
url = "https://domani.run/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "run-domani-domani": {
      "type": "remote",
      "url": "https://domani.run/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add run-domani-domani --url 'https://domani.run/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  run-domani-domani:
    url: "https://domani.run/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "run-domani-domani": {
      "Transport": "http",
      "Url": "https://domani.run/mcp"
    }
  }
}
# add to Vellum
assistant mcp add run-domani-domani -t streamable-http -u 'https://domani.run/mcp'
// mcp.json
{
  "mcpServers": {
    "run-domani-domani": {
      "type": "http",
      "url": "https://domani.run/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 1 Sept 26 0
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Transport: pass → unverified ▼ security
    • Authorization: fail → pass ▲ security
    • First check of Authorization: partial security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • First check of Schema quality: unverified functional
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
    • Tool “create_mailbox” rewrote its description, which is the text the model reads security
    • Tool “create_webhook” rewrote its description, which is the text the model reads security
    • Tool “get_activation” rewrote its description, which is the text the model reads security
    • Tool “provision_agent” rewrote its description, which is the text the model reads security
    • Tool “set_email_webhook” rewrote its description, which is the text the model reads security
    • Tool “test_email_webhook” rewrote its description, which is the text the model reads security
    • Tool “update_webhook” rewrote its description, which is the text the model reads security
    • “create_webhook” added an optional parameter “headers” cosmetic
    • “provision_agent” added an optional parameter “webhook_headers” cosmetic
    • “set_email_webhook” added an optional parameter “headers” cosmetic
    • “update_webhook” added an optional parameter “headers” cosmetic
  • 22 Aug 26 0
    • Tool “cancel_plan” rewrote its description, which is the text the model reads security
    • Tool “upgrade_plan” rewrote its description, which is the text the model reads security
    • Tool “cancel_plan” changed its title: Cancel Pro Plan → Cancel Paid Plan cosmetic
    • Tool “upgrade_plan” changed its title: Upgrade to Pro → Upgrade Plan cosmetic
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 2 Oct 2026 · Probed https://domani.run/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=domani.run CN=YE1,O=Let's Encrypt,C=US 3 Sept 2026 2 Dec 2026 ECDSA 256 ECDSA-SHA384 5eede2c575a4a399afb967c7ab765a4e095
SANs: *.domani.run, domani.run
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of domani.run. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
run. present 37315 8 Verified
domani.run. present 2371 13 Verified
domani.run. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer realm="domani", resource_metadata="https://domani.run/.well-known/oauth-protected-resource"

Bearer realm="domani", resource_metadata="https://domani.run/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' https://js.stripe.com https://vercel.live https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self' https://api.stripe.com https://cloudflare-dns.com https://vercel.live https://va.vercel-scripts.com; frame-src https://js.stripe.com https://vercel.live
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()
www-authenticate Bearer realm="domani", resource_metadata="https://domani.run/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://domani.run/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://domani.run/mcp
Authorisation server https://domani.run

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://domani.run/mcp Auth required 401
http (plaintext) http://domani.run/mcp HTTPS enforced 308 https://domani.run/mcp
MCP tools · 122 exposed · ~13,182 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
import_domain ~73

Import an external domain you already own (registered at GoDaddy, Namecheap, Cloudflare, etc.) to manage through domani.run. Free, no transfer needed. Returns a TXT record to add at your DNS provider for ownership verification.

NameTypeReqDescription
domainstringyesDomain to import, e.g. mysite.com

No output schema declared.

No examples provided.

list_audit_events ~94

The account's security audit trail, newest first: token lifecycle (created/revoked/escalation attempts), spend-cap and max_price denials, charges, payout requests. Use it to review what the account's tokens have been doing.

NameTypeReqDescription
limitinteger–Events to return (default 50)
typestring–Filter by event type, e.g. purchase.denied_cap, token.created

No output schema declared.

No examples provided.

list_backorders ~42

List the user's backorders (watching, caught, failed, cancelled, expired). Optionally filter by status.

NameTypeReqDescription
statusstring–Filter by status

No output schema declared.

No examples provided.

list_broker_requests ~55

List your domain acquisition requests and their status (sourcing/contacted/negotiating/agreed/no_contact/declined). Requires deals:read scope.

NameTypeReqDescription
statusstring–Filter by status, or 'all'

No output schema declared.

No examples provided.

list_domains ~14

List all domains you own

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_email_folders ~61

List canonical mailbox folders, virtual views, server-derived total/unread counts, and backend capabilities. API: GET /api/emails/{address}/folders.

NameTypeReqDescription
domainstringyesMailbox domain
slugstringyesMailbox slug

No output schema declared.

No examples provided.

list_email_messages ~229

List messages in a system folder or virtual view. Defaults to Inbox. Supports pagination, direction and search filters. API: GET /api/emails/{address}/messages.

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
directionstring–Filter by direction: 'in' for received, 'out' for sent
domainstringyesMailbox domain
folderstring–System folder. Mutually exclusive with view. Defaults to inbox
fromstring–Filter by sender address (case-insensitive, partial match)
limitnumber–Max messages to return (default 20, max 100)
slugstringyesMailbox slug
spamboolean–Filter by spam flag. Pass false to hide spam-flagged inbound; omit to include all.
subjectstring–Filter by subject (case-insensitive, partial match)
tostring–Filter by recipient address (case-insensitive, partial match)
viewstring–Virtual view. Mutually exclusive with folder

No output schema declared.

No examples provided.

list_identities ~24

List the free agent identities (<handle>.domani.run) you've claimed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_invoices ~67

List the user's payment invoices. Returns invoice number, amount, date, and links to view/download the PDF. Each invoice is generated by Stripe when a domain is purchased, renewed, or transferred.

NameTypeReqDescription
limitinteger–Max invoices to return (default 20, max 100)

No output schema declared.

No examples provided.

list_mail_rules ~57

List a mailbox's inbound filtering rules, in the priority order they are applied. API: GET /api/emails/{address}/rules.

NameTypeReqDescription
domainstringyesMailbox domain
slugstringyesMailbox slug

No output schema declared.

No examples provided.

list_mailbox_aliases ~53

List all alias addresses that deliver into a mailbox. API: GET /api/emails/{address}/aliases.

NameTypeReqDescription
domainstringyesMailbox domain
slugstringyesMailbox slug

No output schema declared.

No examples provided.

list_mailbox_changes ~79

Incrementally synchronize a mailbox with an opaque cursor. Call without a cursor before a bounded full snapshot, then replay changes from next_cursor. API: GET /api/email/changes.

NameTypeReqDescription
cursorstring–Opaque next_cursor from the previous response
limitinteger––
mailbox_idstringyesAccessible mailbox ID

No output schema declared.

No examples provided.

list_mailbox_credentials ~63

List the app passwords for a hosted mailbox (labels + metadata; secrets are shown only once at creation). API: GET /api/emails/{address}/credentials.

NameTypeReqDescription
domainstringyesHosted mailbox domain
slugstringyesHosted mailbox slug

No output schema declared.

No examples provided.

list_mailboxes ~58

List all your email addresses. Optionally filter by domain. API: GET /api/emails (or GET /api/email).

NameTypeReqDescription
domainstring–Filter by domain, e.g. mysite.com. Omit to list all

No output schema declared.

No examples provided.

list_negotiations ~66

List your active and past price negotiations (as buyer or seller). Counterparties are anonymized. Requires deals:read scope.

NameTypeReqDescription
rolestring–Filter by your role
statusstring–Filter by status (open|agreed|completed|all)

No output schema declared.

No examples provided.

list_providers ~38

List all supported hosting and email providers with their connection methods, target requirements, and setup notes

NameTypeReqDescription
categorystring–Filter by category

No output schema declared.

No examples provided.

list_services ~24

List all supported services for domain verification (Stripe, Google Search Console, etc.)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_suppressions ~78

List addresses on your suppression list - hard bounces and complaints (added automatically) plus manual entries. Sends to these addresses are skipped. API: GET /api/suppressions.

NameTypeReqDescription
cursorstring–Pagination cursor from a previous response
limitnumber–Max entries to return (default 50, max 100)

No output schema declared.

No examples provided.

list_tlds ~108

List all available TLDs with registration and renewal pricing

NameTypeReqDescription
limitnumber–Max results to return
max_pricenumber–Maximum registration price in USD
min_pricenumber–Minimum registration price in USD
offsetnumber–Pagination offset
orderstring–Sort order (default: asc)
searchstring–Filter TLDs containing this string
sortstring–Sort field. Defaults to tld

No output schema declared.

No examples provided.

list_tokens ~39

List all API tokens for your account. Shows token name, masked key, creation date, last used, and expiration status. Expired tokens are marked.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_webhook_deliveries ~74

Get recent delivery attempts for a webhook - shows event type, HTTP status, number of attempts, and any errors. Useful for debugging webhook issues.

NameTypeReqDescription
limitinteger–Maximum number of deliveries to return (default 20)
webhook_idstringyesID of the webhook to get deliveries for

No output schema declared.

No examples provided.

list_webhooks ~32

List all webhook endpoints configured for the user's account. Returns URL, subscribed events, and active status for each webhook.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

make_offer ~101

Open an anonymous price negotiation on a listed domain with an initial offer (below or at the asking price). The seller can counter, accept, or decline. Neither side sees the other's identity. Requires deals:write scope.

NameTypeReqDescription
domainstringyesThe listed domain to negotiate on, e.g. premium.com
messagestring–Optional message to the seller
offernumberyesYour initial offer in USD, e.g. 500

No output schema declared.

No examples provided.

mark_messages_read ~121

Retry-safely mark messages read or unread and return a durable per-item receipt. Reuse the exact idempotency key after timeouts. API: PATCH /api/emails/{address}/messages/read.

NameTypeReqDescription
domainstringyesMailbox domain
idempotency_keystringyesCaller-stable key for this exact logical batch
message_idsarrayyesIDs of messages to mark
readbooleanyestrue = mark as read, false = mark as unread
slugstringyesMailbox slug

No output schema declared.

No examples provided.

plan_domain_adoption ~96

Read-only planner for an existing domain. Inspects registrar, nameservers, DNS provider, DNSSEC, account state, transfer eligibility, and price. Returns safe next actions. Call this before asking for an EPP code. Connecting is free and leaves registrar and DNS unchanged. Transferring preserves nameservers and never migrates DNS implicitly.

NameTypeReqDescription
domainstringyesExisting domain to inspect, e.g. mysite.com

No output schema declared.

No examples provided.

provision_agent ~262

Give an AI agent a complete internet identity in one call: buy a domain, set up email, create a mailbox, and (optionally) register an authenticated webhook for inbound email. Use this when someone wants to 'give my agent a domain and email' or 'set up an agent from scratch'. Confirm the domain and price with the user first (it charges for the domain). Webhook inputs are validated before any charge; repeated calls reuse the same mailbox and webhook URL. Header values are encrypted and never returned.

NameTypeReqDescription
domainstringyesDomain to give the agent, e.g. myagent.run. Bought if not already owned.
namestring–Display name for outbound email.
payment_methodstring–How to pay for the domain: card, usdc, or balance (marketplace credit).
slugstring–Mailbox local part, e.g. 'hi' for hi@domain. Default 'hi'.
webhook_headersobject–Optional delivery auth. Only Authorization and X-API-Key are accepted; values are never returned.
webhook_urlstring–Optional HTTPS URL to receive inbound email + domain events.
yearsinteger–Registration years (1-10, default 1).

No output schema declared.

No examples provided.

release_identity ~29

Release a free identity handle so it's available again.

NameTypeReqDescription
slugstringyesThe handle to release

No output schema declared.

No examples provided.

remove_mail_rule ~66

Remove an inbound filtering rule from a mailbox. API: DELETE /api/emails/{address}/rules/{ruleId}.

NameTypeReqDescription
domainstringyesMailbox domain
rule_idstringyesThe rule ID to remove
slugstringyesMailbox slug

No output schema declared.

No examples provided.

remove_mailbox_alias ~78

Remove an alias address from a mailbox. Email to that address stops being delivered. API: DELETE /api/emails/{address}/aliases/{alias}.

NameTypeReqDescription
aliasstringyesAlias address to remove - a bare slug or full address
domainstringyesMailbox domain
slugstringyesMailbox slug

No output schema declared.

No examples provided.

remove_suppression ~60

Remove an address from your suppression list so you can email it again (e.g. after the recipient fixed their mailbox). API: DELETE /api/suppressions/{address}.

NameTypeReqDescription
addressstringyesEmail address to remove from the suppression list

No output schema declared.

No examples provided.

renew_domain ~170

Renew a domain you own for additional years. Always confirm with the user before calling this.

NameTypeReqDescription
domainstringyesDomain to renew, e.g. mysite.com
max_pricenumber–Ceiling in USD for the renewal charge. Fails with PRICE_ABOVE_MAX (nothing charged) if the real price is above it.
payment_chainstring–Chain the USDC payment was sent on.
payment_methodstring–Payment method: 'card' to charge card on file, 'usdc' to pay with USDC. Overrides the user's default preference for this request.
payment_txstring–Transaction hash of a USDC payment already sent on-chain.
yearsnumber–Number of years to renew (1-10, default 1)

No output schema declared.

No examples provided.

replay_webhook_delivery ~88

Redeliver one immutable webhook event. Requires a caller-stable idempotency key; retries with the same key return the same receipt and never send twice.

NameTypeReqDescription
delivery_idstringyesOriginal delivery ID from list_webhook_deliveries
idempotency_keystringyesStable unique key for this replay operation
webhook_idstringyesWebhook ID

No output schema declared.

No examples provided.

reply_to_message ~203

Reply to an email message. For shared human-agent mailboxes, first heartbeat composing presence and pass coordination plus a stable idempotency_key; the server atomically rejects stale/double replies. Threading headers are automatic. API: POST /api/emails/{address}/messages/{id}/reply.

NameTypeReqDescription
allboolean–Reply-all: auto-CC original To and CC recipients (default: false)
cc––Additional CC recipients (overrides auto-CC when all=true)
coordinationobject–Compose lease and reply generation returned by heartbeat_conversation_presence
domainstringyesMailbox domain
htmlstring–HTML reply body
idempotency_keystring–Required with coordination; reuse this exact key after timeouts
message_idstringyesID of the message to reply to
slugstringyesMailbox slug
textstring–Plain text reply body

No output schema declared.

No examples provided.

resend_email_verification ~60

Resend a verification email for your WHOIS contact email. If the contact email matches your login email, it's already verified. Rate limited to once per 15 minutes.

NameTypeReqDescription
emailstring–Email to verify (defaults to your contact email)

No output schema declared.

No examples provided.

respond_to_broker_inquiry ~162

Owner-agent path: respond to a broker's acquisition inquiry using the token from the outreach email in your inbox - fully autonomous, no email round-trip, no magic-link. offer/counter names a price and opens/advances an anonymous negotiation; accept agrees to the buyer's current offer on the table; decline/opt_out ends it. Token-authorized (no scope needed).

NameTypeReqDescription
actionstringyesoffer/counter to name a price; accept to take the buyer's current offer; decline to refuse; opt_out to stop contact
pricenumber–Your asking price in USD (required for offer/counter)
tokenstringyesThe outreach token from your inquiry email (reply-to is broker+<token>@)

No output schema declared.

No examples provided.

respond_to_offer ~96

Counter, accept, or decline the current offer in a negotiation when it's your turn. 'accept' locks the price at the amount on the table; the buyer then finalizes payment. Requires deals:write scope.

NameTypeReqDescription
actionstringyesYour response
counternumber–New amount in USD (required when action=counter)
messagestring––
negotiation_idstringyesThe negotiation ID

No output schema declared.

No examples provided.

restore_dns ~82

Restore DNS records from the server-side backup (created by snapshot_dns or during transfers). Uses diff to avoid duplicates. Call snapshot_dns first to create a backup. Pass dry_run to preview what would be applied without writing.

NameTypeReqDescription
domainstringyesDomain name to restore DNS for
dry_runboolean–Preview only - returns would_apply without writing anything

No output schema declared.

No examples provided.

revoke_mailbox_credential ~79

Revoke an app password on a hosted mailbox. Any mail client using it stops connecting. API: DELETE /api/emails/{address}/credentials/{id}.

NameTypeReqDescription
credential_idstringyesApp password id from list_mailbox_credentials
domainstringyesHosted mailbox domain
slugstringyesHosted mailbox slug

No output schema declared.

No examples provided.

revoke_token ~47

Revoke an API token immediately. The token will stop working. Use list_tokens to find token IDs.

NameTypeReqDescription
token_idstringyesID of the token to revoke (from list_tokens)

No output schema declared.

No examples provided.

rotate_email_webhook_secret ~66

Regenerate the HMAC signing secret for a mailbox webhook. The old secret is immediately invalidated. API: POST /api/emails/{address}/webhook/rotate.

NameTypeReqDescription
domainstringyesMailbox domain
slugstringyesMailbox slug

No output schema declared.

No examples provided.

search ~181

Check availability and price for one or more domains. Pass full domain names (e.g. mysite.com). For bulk TLD search, pass an array like ["myapp.com", "myapp.io", "myapp.dev"]. Uses RDAP + retail pricing.

NameTypeReqDescription
domainsarrayyesFull domain names to check, e.g. ["myapp.com", "myapp.io"]
max_pricenumber–Maximum price in USD to filter results
orderstring–Sort order (default: asc)
sortstring–Sort results by price or TLD name (default: price)
sourcestring–Filter results: 'all' (default), 'primary' (new registrations only), 'secondary' (marketplace listings only). Use source='secondary' with domains=['*'] to browse all marketplace listings.

No output schema declared.

No examples provided.

sell_domain ~92

List a domain you own for sale on the Domani marketplace. Buyers can purchase it directly via the API. The domain must be active and not already listed. Requires domains:write scope.

NameTypeReqDescription
descriptionstring–Optional listing description
domainstringyesDomain to list for sale, e.g. premium.com
pricenumberyesSale price in USD (e.g. 5000)

No output schema declared.

No examples provided.

send_email ~309

Send an email from one of your mailboxes. Specify domain and slug to identify the sender mailbox. Supports text and/or HTML body, CC/BCC, attachments (base64), and threading via In-Reply-To/References. Rate limited to 100 sends per hour per mailbox. API: POST /api/emails/{address}/send.

NameTypeReqDescription
allow_risky_contentboolean–Deprecated compatibility field. Public HTTPS third-party auth links are allowed with a warning; objective safety blocks cannot be overridden
attachmentsarray–File attachments (max 10, max 40MB total)
bcc––BCC recipient(s)
cc––CC recipient(s)
domainstringyesSender mailbox domain, e.g. mysite.com or domani.run
htmlstring–HTML body
idempotency_keystring–Unique key to prevent duplicate sends. If a message with this key was already sent from this mailbox, the original result is returned.
in_reply_tostring–Message-ID of the email being replied to (for threading)
referencesstring–Space-separated Message-ID chain (for threading)
reply_tostring–Reply-to email address
slugstringyesSender mailbox slug, e.g. hello or k7x9m2
subjectstring–Email subject line
textstring–Plain text body
to–yesRecipient email address(es)

No output schema declared.

No examples provided.

set_auto_renew ~62

Enable or disable auto-renew for a domain you own. When enabled, the domain will be renewed automatically before expiry.

NameTypeReqDescription
domainstringyesDomain name to configure
enabledbooleanyestrue to enable auto-renew, false to disable

No output schema declared.

No examples provided.

set_catch_all ~122

Route any email sent to an unmatched address on a domain into a designated mailbox. Anything that does not match a mailbox, subaddress, or alias lands in the catch-all. The mailbox must already exist on the domain. API: PUT /api/domains/{domain}/email/catch-all.

NameTypeReqDescription
domainstringyesDomain to set the catch-all on, e.g. mysite.com
mailboxstringyesCatch-all mailbox - a bare slug ('inbox') or full address ('inbox@mysite.com') on this domain

No output schema declared.

No examples provided.

set_contact ~198

Set your WHOIS contact information (recommended for ICANN compliance, required before transfers). You can purchase domains without setting contact info first - a default contact is used until you set your own.

NameTypeReqDescription
address1stringyesStreet address line 1
address2string–Street address line 2 (optional)
citystringyesCity
countrystringyesISO 3166-1 alpha-2 country code, e.g. US, GB, FR
emailstringyesContact email address
first_namestringyesFirst name
last_namestringyesLast name
org_namestring–Organization name (optional)
phonestringyesPhone in +CC.NUMBER format, e.g. +1.5551234567
postal_codestringyesPostal/ZIP code
statestringyesState or province

No output schema declared.

No examples provided.

set_dns ~185

Upsert DNS records for a domain you own, at the rrset level: records at a (type, name) you send replace that rrset; rrsets you don't mention are preserved (NS never touched). An automatic zone backup is taken before every write. Best practice: call get_dns first and pass its zone_version so a concurrent change fails with DNS_VERSION_CONFLICT instead of being clobbered. Common patterns: Vercel (A @ 76.76.21.21), GitHub Pages (CNAME @ user.github.io), Cloudflare Pages (CNAME @ project.pages.dev)

NameTypeReqDescription
domainstringyesDomain name to set DNS records for
recordsarrayyesArray of DNS records to set
zone_versionstring–The zone_version from get_dns - rejects the write with DNS_VERSION_CONFLICT if the zone changed since

No output schema declared.

No examples provided.

set_domain_redirect ~121

Forward a domain you own to another URL (e.g. brand.com -> brand.dev). The domain must point at domani's nameservers/parking IP. Permanent (308) by default, or temporary (307). Send an empty url to stop forwarding.

NameTypeReqDescription
domainstringyesThe domain to forward (must be one you own)
permanentboolean–true = permanent redirect (default), false = temporary
urlstringyesTarget URL to forward to, e.g. https://brand.dev. Empty string clears the redirect.

No output schema declared.

No examples provided.

set_email_forward ~117

Configure inbound handling for a mailbox: forward incoming emails to another address (in addition to storing) and/or drop spam-flagged messages. Set forward_to to null to remove forwarding. API: PATCH /api/emails/{address}.

NameTypeReqDescription
domainstringyesMailbox domain
drop_spamboolean–If true, spam-flagged inbound is dropped (not stored or webhooked)
forward_to––Email address to forward to, or null to remove
slugstringyesMailbox slug

No output schema declared.

No examples provided.

set_email_webhook ~176

Set or remove the inbound webhook URL for a mailbox. Incoming emails are signed, durable, and retried up to three times. A non-secret HTTPS URL may be configured here; never request or pass Authorization or X-API-Key values through chat/MCP—operators use the CLI environment-variable options. Set the URL to null to remove. API: PUT /api/emails/{address}/webhook or DELETE /api/emails/{address}/webhook.

NameTypeReqDescription
domainstringyesMailbox domain
headersobject–Optional auth headers for trusted non-model clients. Never request or pass values through model context. Only Authorization and X-API-Key are accepted; send {} to clear them.
slugstringyesMailbox slug
webhook_url–yesHTTPS webhook URL, or null to remove

No output schema declared.

No examples provided.

Common questions

What is the run.domani/domani MCP server?

run.domani/domani is an MCP server listed in the public MCP registry as run.domani/domani. Internet identity for AI agents: register or broker domains, email, DNS - pay by card or USDC. This page covers its hosted endpoint (https://domani.run/mcp).

Is the run.domani/domani MCP server safe to use?

run.domani/domani scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the run.domani/domani MCP server expose?

run.domani/domani exposes 122 tools: get_account, get_activation, search, suggest_domains, list_tlds, and 117 more. Their descriptions and schemas cost roughly 13,182 tokens of context every time the server is loaded.

Does the run.domani/domani MCP server require authentication?

Yes. run.domani/domani asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the run.domani/domani MCP server still maintained?

run.domani/domani is still listed as active in the MCP registry. We last reached this channel on 2 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.