Name Whisper — ENS Intelligence Layer
44 MCP tools to search, value, register, trade, and manage ENS names. AI-powered intelligence layer.
Connect it
Settings → Connectors → Add custom connector
URL: https://namewhisper.ai/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://namewhisper.ai/mcp{
"mcpServers": {
"ens-tools": {
"url": "https://namewhisper.ai/mcp"
}
}
}claude mcp add --transport http ens-tools https://namewhisper.ai/mcp{
"servers": {
"ens-tools": {
"type": "http",
"url": "https://namewhisper.ai/mcp"
}
}
}44 tools, verified live
search_ens_namesread-onlySearch ENS names using natural language. Supports all query types: - Filtered search: "4-letter words under 0.1 ETH" - Concept search: "ocean themed names" (semantic similarity across 3.5M indexed ENS names) - Creative search: "names for a coffee brand" (AI-generated suggestions) - Collection search: "crypto terms expiring soon" - Activity: "what sold recently?" - Availability check: "is coffee.et
enumerate_entitiesread-onlyEnumerate ENS-friendly labels for a finite real-world entity category and report which are available vs registered. USE THIS for ANY finite set of real-world people, companies, teams, or works â including queries that name a ROLE or PROFESSION rather than a league, e.g. "which tech founders have an available .eth?", "available CEOs / politicians / authors / footballers", "famous musicians I can
get_name_detailsread-onlyGet full details for a specific ENS name including owner, expiry, creation date, tags, active listings (with prices in ETH and USD), active offers, ENSIP-25 agent identity bindings, and ENSIP-26 agent context records. creationDate is always populated â for Vickrey-era names (isVickreyEra=true) it reflects the true first-creation date from the 2017-2019 legacy auction contract; for all other name
check_availabilityread-onlyCheck availability of one or more ENS names the user named, or labels returned by enumerate_entities. Do NOT feed it names you invented/typed yourself (especially real-world people, teams, brands, or films â models misspell those); get verified labels from enumerate_entities first. Returns status (AVAILABLE, PREMIUM_AUCTION, REGISTERED, GRACE_PERIOD, INVALID, or UNKNOWN), owner address, and expi
get_similar_namesread-onlyFind ENS names semantically similar to a given name using vector embeddings across 3.5M indexed ENS names. Returns similar names with similarity scores, status (REGISTERED / GRACE_PERIOD / PREMIUM_AUCTION / AVAILABLE), and live marketplace data. Names in GRACE_PERIOD are NOT registerable by anyone but the original holder.
get_valuationread-onlyGet a confidence-rated valuation for an ENS name based on comparable sales, entity recognition (Wikipedia/Wikidata), search interest, word frequency, and fame-scaled pricing. Returns estimated value range, background context on the name (person/place/brand/concept), comparable sales data, and a narrative explaining the valuation methodology. Essential for pricing decisions.
get_market_activityread-onlyGet recent ENS marketplace activity. Covers exactly three event types â SALE, PREMIUM_REGISTRATION and SWAP â and nothing else: it does NOT report listings, standing offers, mints, transfers, renewals or burns, so never conclude from an empty result that none of those occurred. Returns event details including name, price (in ETH), buyer/seller addresses, and timestamp. Sorted by most recent fi
get_expiring_namesread-onlyList ENS names by lifecycle window across the WHOLE market â THE tool for "which names are in premium / on Dutch auction", "names in grace period", "what's expiring soon / about to drop". NOT for the user's own names: it has no wallet filter, so "my names close to premium / in grace / expiring" must go to get_wallet_portfolio with its status parameter (live 2026-09-06 this tool answered "my name
wash_checkread-onlyAssess whether an ENS name's sale(s) are WASH TRADING / fake / self-dealt / manipulated volume. THE tool for any "is this wash trading?", "is the sale history of X suspicious/fake/real?", "are these trades legit?", "is someone wash-trading this name?" question â route straight here, do NOT use get_name_details or get_market_activity for that (those return sale rows but make NO wash-trading judgm
get_wallet_portfolioread-onlyGet all ENS names owned by a wallet address. Returns each name with label, tags, expiry, lifecycle status, registration date, and active listing/offer prices. Useful for portfolio analysis and wallet profiling. THE tool for any question about the connected wallet's OWN names by lifecycle window ("my names close to premium" â status:"GRACE_PERIOD"; "my names about to expire" â "EXPIRING_SOON";
find_alpharead-onlyScan the ENS marketplace for alpha â names listed below their valuation. Returns ranked opportunities with a discount %, fair-value range, confidence rating, and comparable data. Candidates are selected by DESIRABILITY (real curated collections, short, accessibly priced above a floor that excludes 0.001-ETH floor-dumps), then each is precision-priced by the full Name Whisper valuation engine â
get_primary_nameread-onlyCheck what primary ENS name is set for a wallet address (reverse resolution). Returns the ENS name that this address resolves to, or null if no primary name is set. This verifies both directions: - Reverse: address â name (the reverse record) - Forward: name â address (confirms the name actually points back to this wallet) If either direction is missing, the primary name won't resolve. Use
provision_agent_identitycan modifyProvision a complete ENS identity for an AI agent in one call. Describe your agent's purpose and budget â get back recommended available names, a multi-step registration recipe (commit â register â set agent records), and ready-to-sign transaction data. The registration recipe includes agent identity records (ENSIP-25: ai.agent, ai.purpose, ai.capabilities + ENSIP-26: agent-context) as a ma
make_offerPlace an offer (bid) on a registered ENS name on NameWhisper via Seaport 1.6. Returns an unsigned Seaport OrderComponents payload (plus EIP-712 domain/types) that the caller's wallet signs. The buyer offers WETH and receives the name on acceptance. After signing, POST { orderComponents, signature, label, orderType: 'offer', variant: 'nw' } to https://namewhisper.ai/api/orderbook/submit (authentic
purchase_namecan modifyPurchase an ENS name â either buy a listed name from a marketplace or register an available name directly on-chain. For AVAILABLE names: Returns a complete registration recipe with contract address, ABI, step-by-step instructions, and a pre-generated secret. Your wallet signs and submits the transactions (commit â wait 60s â register). For LISTED names: Searches all marketplaces (OpenSea,
bulk_registercan modifyRegister multiple ENS names in bulk â total 2 transactions (multiCommit + multiRegister) via NWBulkRegistrar. Much cheaper and faster than registering names one at a time. Supports up to 20 names per batch. Flow: multiCommit (1 tx, all N commitments) â wait 60 seconds â multiRegister (1 tx with total ETH for all N names). Excess ETH is refunded. Each batch shares one secret across all nam
create_listingList an ENS name for sale on NameWhisper's marketplace via Seaport 1.6. Returns an unsigned Seaport OrderComponents payload (plus EIP-712 domain/types) that the caller's wallet signs. After signing, POST the { orderComponents, signature, label, orderType: 'listing' } payload to https://namewhisper.ai/api/orderbook/submit (authenticated) to store the order. Fee structure: 1% marketplace fee baked
cancel_listingcan modifyCancel an active ENS name listing by submitting Seaport's cancel() on-chain. Returns the unsigned Seaport cancel() transaction calldata. Your wallet signs and submits; once mined, Seaport marks the order invalid and no marketplace (NW, Grails, OpenSea) can fulfill it anymore. Only the original seller (the order's offerer) can cancel. If you cross-posted to OpenSea, you signed a second 'opensea'
cancel_offercan modifyCancel an active offer you made on an ENS name. Returns unsigned Seaport cancel() calldata. Only the bidder (the order's offerer) can cancel. If the offer was cross-posted to OpenSea, you signed a second 'opensea' variant â pass BOTH order hashes as alsoCancel so one tx kills both. alsoCancel takes at most 8 other hashes (do not repeat orderHash), all offers on the same name; the result lists e
accept_offercan modifyAccept a standing offer on an ENS name you own. Returns unsigned Seaport fulfillOrder() calldata. When you submit this transaction, Seaport atomically: - Pulls the offered WETH from the buyer's wallet - Transfers the ENS name from your wallet to the buyer - Pays the fees the offer was signed with out of the WETH you receive You receive the offer amount minus those fees; the response states both,
batch_purchasecan modifyBuy up to 20 SPECIFIC listed ENS names in a SINGLE Seaport transaction, across NameWhisper, OpenSea, AND Grails listings. Use this when the user names the exact names to buy. To buy the cheapest N names in a category/collection (a floor sweep), use the 'sweep' tool instead. It's one signature and amortizes gas, far cheaper than calling purchase_name once per name. For each name it picks the chea
sweepcan modifyFloor-sweep: buy the CHEAPEST N listed ENS names in a category/collection (or matching a filter) in ONE Seaport transaction. Use this when the user wants "the cheapest N", "sweep the floor", or "buy up to X ETH of" a cohort â rather than naming specific names (that's batch_purchase). Pick the cohort with 'category' (a collection slug like "999-club") and/or 'q'/'charType'/'minLength'/'maxLengt
batch_create_listingsBulk-list up to 500 ENS names for sale on NameWhisper in one signing flow. Returns an array of unsigned Seaport OrderComponents payloads. The caller's wallet signs them all in one EIP-712 bulk signature (SIP-6), then POSTs the signed orders back to https://namewhisper.ai/api/orderbook/submit-bulk (up to 500 per request) to store. NW-native only â listings stay on NameWhisper. Cheaper UX than c
renew_ens_namecan modifyRenew an ENS name or batch of names. Returns the transaction data needed to extend registration. Unlike registration, renewal is simple â just one transaction with payment. No commit/reveal needed. Accepts any duration from 1 day up â days, weeks, months, years. ENS protocol has no minimum renewal period; this tool floors at 1 day for safety. Examples: 1 day, 7 days (1 week), 28 days (1 mont
transfer_ens_namecan modifyTransfer ownership of an ENS name to another wallet. Call this tool IMMEDIATELY â as your first and only action â whenever the user asks to transfer/send/move/give a name to someone: "transfer coffee.eth to vitalik.eth", "send myname.eth to 0xabc...". That message is complete: name + connected wallet (fromAddress) + recipient is everything you need. Do not ask for confirmation first, do not ca
set_ens_recordscan modifySet ENS resolver records for a name you own. Returns encoded transaction calldata ready to sign and broadcast. Supports: address records â ETH as a plain 0x address, non-ETH coins (BTC, SOL, LTC, DOGE, â¦) as the raw wallet-format address (bc1â¦, base58, â¦) which is ENSIP-9-encoded automatically; text records (avatar, description, url, social handles, AI agent metadata); contenthash as an i
bulk_set_recordscan modifySet ENS resolver records for multiple names in a single transaction â bulk record editing. All record updates across all names are batched into one resolver.multicall() call. Much cheaper than setting records one name at a time. Supports the same record types as set_ens_records: address records (ETH, BTC, SOL, etc.), text records (avatar, description, social handles, AI agent metadata), conten
bulk_transfer_ens_namescan modifyTransfer multiple ENS names in one batch â bulk send. Wrapped names going to the same recipient move in one transaction; each unwrapped name and unwrapped subname takes its own. Supports up to 20 names per batch. Automatically detects whether each name is wrapped (NameWrapper/ERC-1155) or unwrapped (BaseRegistrar/ERC-721) and builds the correct transfer call for each. All names can go to the
set_primary_namecan modifySet the primary ENS name (reverse resolution) for a wallet address. This controls what name is displayed when someone looks up your Ethereum address. For example, instead of seeing "0x1234...abcd", they'd see "myname.eth". Requirements: - You must own or control the ENS name - The name's ETH address record must point to your wallet - Only the wallet owner can set their own primary name When a u
set_resolvercan modifyChange the resolver contract for an ENS name. The resolver is where a name's records live (ETH address, text records, content hash, etc.). Changing the resolver points the name at a different contract. Common use cases: - Migrating to the latest ENS Public Resolver - Pointing to a custom resolver (e.g. for off-chain/CCIP-read resolution) - Fixing a name that has no resolver set Pass "public" as
manage_ens_nameread-onlyOne-shot management report for an ENS name. This is the ONLY tool you need to answer "management report", "full overview", "health check", "status check", "what should I do about X", or "tell me what to do with X" queries. Prefer this over calling get_name_details + get_valuation separately â this tool is purpose-built for status/recommendation queries and returns the full picture in one call.
wrap_namecan modifyWrap an unwrapped .eth name into the ENS NameWrapper contract. Wrapping converts the name from an ERC-721 token (BaseRegistrar) to an ERC-1155 token (NameWrapper). This enables: - Fuse permissions (restrict what can be done with the name) - Protected subnames (subnames with guaranteed permissions) - ERC-1155 compatibility for marketplaces and protocols Returns a two-step transaction recipe: appr
unwrap_namecan modifyUnwrap a .eth name from the ENS NameWrapper back to BaseRegistrar. This converts the name from an ERC-1155 token back to an ERC-721 token. All fuses are cleared upon unwrapping. Will fail if the CANNOT_UNWRAP fuse has been burned â that restriction is permanent. Use cases: - Reverting a wrapped name to standard ERC-721 for compatibility - Regaining full control after wrapping without burning
manage_fusescan modifyManage fuses on a wrapped ENS name. Fuses are permission bits that can be permanently burned to restrict what can be done with a name. Three modes: 1. **read** â Check which fuses are currently burned on a name 2. **burn_owner_fuses** â Burn fuses on a name you own (CANNOT_UNWRAP must be burned first) 3. **burn_child_fuses** â As a parent, burn fuses on a subname (e.g. burn PARENT_CANNOT_CO
mint_subnamesBulk-create subnames under a parent ENS name. Designed for agent fleet deployment â create identities like agent001.company.eth, agent002.company.eth, etc. Each subname can have its own owner and records (addresses, text records). Each subname mints in its own NameWrapper.setSubnodeRecord transaction (the mainnet NameWrapper has no multicall), so N subnames need N signatures. Records bundle int
extend_subname_expiryExtend the expiry of an ENS subname in the NameWrapper. Subnames have their own expiry that cannot exceed the parent name's expiry. This tool extends a subname's expiry. Who can call this: - The parent name owner (always) - The subname owner (only if CAN_EXTEND_EXPIRY fuse is burned on the subname) Use cases: - Extending subnames you've issued to users - Self-extending your own subname (if CAN_
approve_operatorcan modifyApprove or revoke an operator for ENS contract interactions. An approved operator can transfer ANY token owned by the approver on the specified contract. This is setApprovalForAll â it covers all tokens, not just one. Contracts: - **base_registrar** â ERC-721 tokens (unwrapped .eth names) - **name_wrapper** â ERC-1155 tokens (wrapped names and subnames) - **ens_registry** â ENS node owne
reclaim_namecan modifyReclaim ENS Registry ownership of a .eth name. This syncs the ENS Registry owner to match the BaseRegistrar token owner. Used when: - A name was transferred via direct safeTransferFrom (bypassed ENS routing) - ENS Registry ownership is out of sync with token ownership - Recovery after a contract migration or edge case The caller must own the BaseRegistrar ERC-721 token for the name. After reclai
register_agentRegister an ENS name as an ERC-8004 agent identity on Ethereum mainnet. Returns a ready-to-sign transaction. Default route binds the agent to the name itself (ERC-8217 via Adapter8004): whoever holds the name controls the agent, OpenSea shows the agent identity on the name's page, and the agent transfers with the name when sold. Alternative "direct" route mints the agent NFT to your wallet instea
get_agent_reputationread-onlyCheck if an ENS name or wallet is a registered AI agent. Returns ENSIP-25 agent-registration verification (text record bindings between ENS names and on-chain agent registries), AI metadata from text records, ERC-8004 identity + reputation data, and ERC-8217 binding status (whether the agent identity is bound to â and transfers with â the ENS name's token). ENSIP-25 verification is live and t
search_agent_directoryread-onlySearch the AI agent directory â find registered agents by name, capability, protocol support, or reputation. Powered by the live ERC-8004 registry via 8004scan (110,000+ agents indexed across 50+ chains). Returns agent identity, owner wallet/ENS, reputation scores, supported protocols (MCP/A2A/OASF), verification status, and links to 8004scan profiles. Examples: - "trading agents on Base" â
get_caller_identityread-onlyReturns the authenticated identity of the calling agent. If you connected with ERC-8128 signed requests, this resolves your wallet address to your ENS name, agent metadata, and portfolio summary. Call this first to confirm your identity is recognized. Requires ERC-8128 authentication (signed HTTP requests). See GET /mcp/auth for setup details.
search_knowledgeread-onlySearch the ENS knowledge base â governance proposals, protocol documentation, developer insights, blog posts, forum discussions, and Farcaster casts from key ENS figures (Vitalik, Nick Johnson, etc.). Powered by semantic search over curated ENS sources. USE THIS (don't answer from memory) for any "how does X work" / "what is X" / "why does ENS â¦" PROTOCOL-MECHANICS question â renewal, the g
get_usage_statsread-onlyGet usage statistics for this MCP server session. Returns tool call counts, success rates, and average latency.
Alternatives in Search & Research
Compare →MUMuA
News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.
UIUICapsuleA
Search and install interactive React components with unusual motion, via the shadcn CLI.
FRFerritin — Rust documentationA
Search and read Rust documentation for the standard library and any crate on crates.io
RTRef Tools MCPA
Token-efficient search for coding agents over public and private documentation.
FBfojin — Buddhist Canon ToolsA
Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.
Cellarion Wine RegistryA
Public wine registry and guides: search wines, grapes, regions, appellations. No account.