domani

domani

Enables AI agents to register domains, manage DNS, create mailboxes, and send/receive email through typed tools.

Category
访问服务器

README

domani

Domains and email - for humans and AI agents.

Register domains, manage DNS, create mailboxes, send and receive email. From your terminal, your agent, or the web.

npm version license

How it works

domani gives you one account and multiple ways in:

  • Web - Dashboard with a full inbox (compose, reply, threads), DNS editor, domain management
  • CLI - This package. Everything the web app does, from your terminal
  • MCP Server - typed tools for Claude Code, Cursor, Codex, and any MCP-compatible agent
  • OpenClaw - clawhub install domani
  • Agent Skill - Step-by-step guide your agent can follow. Install with npx skills add domani.run
  • REST API - Direct HTTP access to everything

All interfaces share the same API key and the same data.

Install

npm install -g domani-cli

Secure MCP bridge

Agent plugins can use Domani without placing an API key in a prompt, shell history, or editor configuration:

domani login
domani mcp serve

domani login stores the credential in the operating-system keychain when one is available. The stdio bridge resolves it locally and forwards MCP requests to https://domani.run/mcp; stdout remains reserved for JSON-RPC messages.

For an agent acting on someone else's behalf, request a scoped, expiring credential instead of their account key:

domani login --scopes domains:read,search --label "Project agent" --expires-in 86400

The approval screen shows the requested access and the resulting credential is stored in the keychain without being printed.

This installs the domani command. Or run directly with npx:

npx domani-cli search myapp .com .dev .ai

Quick start

# Domain
domani search myapp .com .io .dev     # Check availability
domani buy myapp.dev                  # Purchase a domain
domani connect myapp.dev vercel       # Auto-configure DNS for Vercel

# Email
domani email create hello@myapp.dev               # Create hello@myapp.dev
domani email send hello@myapp.dev \
  --to hi@friend.com --subject "Hello" --body "Sent from my terminal"
domani email forward hello@myapp.dev \
  --forward-to me@gmail.com                        # Forward inbound to personal email

# Health
domani status myapp.dev               # DNS, SSL, email, expiry check

Examples

# Find available domains with a budget
domani search startup --expand --max-price 20

# AI-powered name suggestions
domani suggest "minimalist productivity app" --style brandable --tlds com,dev,ai

# Buy multiple domains at once
domani buy startup.dev startup.ai --yes

# Set up Vercel + Google Workspace in two commands
domani connect startup.dev vercel
domani connect startup.dev google-workspace

# Full email workflow: create, send, check inbox, forward
domani email create hello@startup.dev
domani email send hello@startup.dev \
  --to investor@vc.com --subject "Deck" --body "Here's our deck."
domani email inbox hello@startup.dev --direction in
domani email forward hello@startup.dev --forward-to me@gmail.com

# Webhook for inbound emails (for bots, support systems, etc.)
domani email webhook hello@startup.dev --url https://myapp.dev/hooks/email

# Export DNS records before making changes
domani dns startup.dev snapshot
domani dns startup.dev set TXT @ "v=spf1 include:_spf.google.com ~all"

# Pipe to jq (auto-JSON when piped, no --json needed)
domani list | jq '.domains[] | {domain, expires_at}'

# Introspect command schemas for agent integration
domani schema buy --json

Commands

Domains

domani search <name> [tlds...]    Check availability across TLDs (--expand for 30+)
domani suggest <prompt>           AI-powered domain suggestions (--style, --lang, --tlds)
domani buy <domains...>           Purchase one or more domains
domani adopt <domain>             Inspect and plan a safe connection or transfer
domani transfer <domain>          Transfer registration, preserving current nameservers
domani renew <domain>             Renew a domain (--years 1-10)
domani import <domain>            Import a domain you own elsewhere (DNS monitoring only)
domani list                       List your domains
domani status <domain>            Health check (DNS, SSL, email, expiry)
domani tlds                       List all TLDs with pricing (--sort, --max-price)
domani whois <domain>             WHOIS/RDAP lookup

Email

domani email list                    List all mailboxes
domani email create user@domain      Create a mailbox
domani email delete user@domain      Delete a mailbox
domani email inbox user@domain       List messages (--folder, --view, --direction)
domani email folders user@domain     List folder and view counts
domani email archive user@domain --message-ids m1,m2
domani email trash user@domain --message-ids m1
domani email restore user@domain --message-ids m1
domani email read|unread|star|unstar user@domain --message-ids m1,m2
domani email send user@domain        Send an email (--to, --subject, --body, --cc, --bcc)
domani email forward user@domain     Forward inbound to a personal address (--forward-to)
domani email webhook user@domain     Forward inbound as JSON to your endpoint (--url)
domani email setup --domain <domain>       Auto-configure MX, SPF, DKIM, DMARC
domani email status --domain <domain>      Check email DNS health
domani email connect --domain <domain> <provider>   Connect external provider (Gmail, Fastmail, Proton)

DNS

domani dns <domain> get            List all DNS records
domani dns <domain> set <type> <name> <value>   Add/update a record
domani dns <domain> delete <type> <name>        Remove a record
domani dns <domain> snapshot       Export DNS to file
domani dns <domain> restore        Restore DNS from snapshot
domani nameservers <domain>        Get or set nameservers (--reset for defaults)
domani connect <domain> <target>   Auto-configure DNS for a provider

Supported providers: Vercel, Netlify, Cloudflare Pages, GitHub Pages, Fly.io, Railway, Render, Google Workspace, Fastmail, Proton Mail.

Settings

domani settings <domain>           View/update auto-renew, WHOIS privacy, security lock
domani contact [view|set]          Manage WHOIS contact info
domani parking <domain>            Manage parking page (enable/disable/price)
domani analytics <domain>          View parking analytics
domani auth-code <domain>          Get EPP auth code for outbound transfer
domani transfer-away <domain>      Check outbound transfer status

Account

domani login                       Log in to domani.run (opens browser)
domani logout                      Clear saved credentials
domani me                          Show account info
domani billing                     Add or update payment method (opens browser)
domani invoices                    List payment invoices
domani token                       Print your API key
domani tokens [list|create|revoke] Manage API tokens (scoped, expiring)
domani webhooks [action]           Manage webhook endpoints

Introspection

domani schema [command]            Show command schemas for AI agent integration
domani update                      Update to the latest version
domani uninstall                   Remove domani CLI and config

Agent integration

Built for AI agents and scripts, not just humans.

TTY auto-detect: When stdout is not a terminal, the CLI automatically switches to JSON output and skips confirmation prompts. No --json flag needed.

domani list | jq '.domains[].domain'

Structured errors: In JSON mode, errors include code, hint, and fix_command for auto-recovery:

{ "error": "Not logged in", "code": "auth_required", "fix_command": "domani login" }
Code Fix Description
auth_required domani login Not logged in
payment_required domani billing No payment method on file
contact_required domani contact set WHOIS contact info missing
validation_error Read hint Invalid input
not_found - Domain doesn't exist or not owned
rate_limited Wait Retry-After Too many requests

Flags:

Flag Description
--json Force JSON output
--fields <f> Filter JSON fields (comma-separated)
--dry-run Preview mutations without executing
--yes Skip confirmation prompts

Input hardening: All inputs are validated against path traversal, control characters, query strings, and double encoding - common agent hallucinations.

Schema introspection: Run domani schema <command> --json to get parameter types, constraints, and enums before constructing a command.

Payments

Domains are charged to your saved card. Add one at domani.run/dashboard or with domani card add.

domani buy myapp.dev                     # Charged to saved card

Authentication

Method Description
domani login Interactive login (opens browser)
$DOMANI_API_KEY API key as environment variable
OS keychain Credential saved by domani login when available
~/.domani/config.json Non-secret CLI settings, plus legacy fallback on systems without a keychain

The CLI checks $DOMANI_API_KEY first, then falls back to ~/.domani/config.json.

domani login                             # Interactive (opens browser)
export DOMANI_API_KEY=domani_sk_...      # Or set env var

Scoped API tokens can be created with domani tokens create --scopes read,dns --expires-in 86400.

Environment variables

Variable Description
DOMANI_API_KEY API key (takes precedence over saved config)

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选