The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Name Whisper — ENS Intelligence Layer listing page.
AI-powered ENS intelligence for autonomous agents. Search 3.5M+ names, get valuations, trade, and manage ENS domains — all via the Model Context Protocol.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Add to .cursor/mcp.json in your project root:
The same 44 tools are served directly over streamable HTTP — point any remote-capable MCP client at:
For Claude Code:
Server card: namewhisper.ai/.well-known/mcp.json · Registry: ai.namewhisper/ens-tools on the MCP Registry
NameWhisper exposes 44 ENS tools over the Model Context Protocol, giving AI agents full access to:
This package is a thin proxy. It registers tool schemas locally for your MCP client to discover, then forwards all tool calls to the NameWhisper backend at namewhisper.ai/mcp. The proprietary valuation engine, marketplace aggregation, database, and on-chain transaction building all run server-side.
No API key required. No database. No secrets. Just npx and go.
| Tool | Description |
|---|---|
search_ens_names | Natural language search with automatic intent detection — filtered, semantic, creative, or bulk availability check |
enumerate_entities | Verified, correctly-spelled label list for a real-world entity category (e.g. "F1 world champions"), grouped by available vs registered |
get_name_details | Full metadata for a name: owner, expiry, tags, listings, offers, ENSIP-25 agent bindings |
check_availability | Bulk check registration status for multiple names |
get_similar_names | Semantic vector search across 3.5M+ names using 256-dim embeddings |
get_expiring_names | Names by lifecycle window — premium (Dutch auction), grace period, or expiring soon, validated on-chain |
| Tool | Description |
|---|---|
get_valuation | Three-track valuation: comp-based + quality-reference + self-history. Entity recognition via Wikipedia/Wikidata |
get_market_activity | Recent sales, listings, offers, mints, transfers, renewals, burns |
get_wallet_portfolio | All ENS names owned by a wallet with listings, offers, and expiry data |
find_alpha | Discover names listed below comparable-sales valuation with discount % and confidence |
wash_check | Detect wash trading in ENS sales using on-chain analysis |
get_primary_name | Reverse resolution — check what ENS name is set for a wallet address |
| Tool | Description |
|---|---|
purchase_name | Register available names or buy listed names. Auto-detects action, returns transaction recipes |
batch_purchase | Buy up to 20 NameWhisper-listed names in one Seaport transaction |
sweep | Floor-sweep the cheapest N names in a category/filter (bounded by count and/or budget) in one Seaport transaction |
create_listing | List a name for sale on NameWhisper. Builds unsigned Seaport order for signing |
batch_create_listings | Bulk-list up to 10 names on NameWhisper in one signing flow (SIP-6 bulk signature) |
cancel_listing | Cancel an active listing via Seaport.cancel() on-chain — invalidates the order across all venues |
make_offer | Submit a bid on a registered name with market context |
accept_offer | Seller-side acceptance of a standing offer. Atomic WETH↔name swap via Seaport.fulfillOrder() |
cancel_offer | Cancel an offer you made via Seaport.cancel() on-chain |
bulk_register | Batch register up to 20 names in 2 transactions (commit + register) via Multicall3 |
renew_ens_name | Renew single or batch names. Any duration, anyone can renew any name |
bulk_set_records | Set resolver records across up to 50 names in one transaction |
| Tool | Description |
|---|---|
transfer_ens_name | Transfer ownership (auto-detects wrapped vs unwrapped) |
bulk_transfer_ens_names | Batch transfer up to 20 names in 1 transaction via Multicall3 |
set_ens_records | Set address records, text records, content hash, ENSIP-25 agent registration |
set_primary_name | Set reverse resolution (primary name) for a wallet |
set_resolver | Change resolver contract |
manage_ens_name | Comprehensive status check with renewal pricing and recommendations |
| Tool | Description |
|---|---|
wrap_name | Wrap into NameWrapper (ERC-721 to ERC-1155) with optional fuse burning |
unwrap_name | Unwrap back to BaseRegistrar (ERC-1155 to ERC-721) |
manage_fuses | Read or burn fuses on wrapped names (irreversible) |
mint_subnames | Bulk create subnames under a parent name |
extend_subname_expiry | Extend subname expiry within parent bounds |
| Tool | Description |
|---|---|
approve_operator | Approve/revoke operator for ENS contracts (setApprovalForAll) |
reclaim_name | Reclaim ENS Registry ownership from BaseRegistrar token |
| Tool | Description |
|---|---|
provision_agent_identity | One-call agent identity setup: name recommendations + registration recipe + ENSIP-25 records |
register_agent | Register an ENS name as an ERC-8004 agent identity on mainnet (ERC-8217 name-bound or direct-to-wallet) |
get_agent_reputation | Check ENSIP-25 agent-registration verification + ERC-8004 reputation |
search_agent_directory | Find registered AI agents by capability, reputation, or name |
get_caller_identity | Returns authenticated identity of the calling agent (requires ERC-8128) |
| Tool | Description |
|---|---|
search_knowledge | Search ENS governance, protocol docs, blog posts, forum discussions, Farcaster casts |
get_usage_stats | Session tool call counts, success rates, and latency |
| Environment Variable | Default | Description |
|---|---|---|
NAMEWHISPER_URL | https://namewhisper.ai | Backend URL (override for local development) |
Copy .env.example to .env to customize. Most users need no configuration.