Alpaca Trading API integration for Model Context Protocol (MCP)
Name Whisper — ENS Intelligence Layer is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
44 MCP tools to search, value, register, trade, and manage ENS names. AI-powered intelligence layer.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http name-whisper-ens-intelligence-layer-mcp https://namewhisper.ai/mcp
# 2 — ask your agent for something these tools do
# search_ens_names, enumerate_entities, get_name_details and 41 more
Name Whisper — ENS Intelligence Layer costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http name-whisper-ens-intelligence-layer-mcp https://namewhisper.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
44 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Natural language search query (e.g. "cheap 3-letter words", "ocean themed names", "is coffee.eth taken?") |
Enumerate 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 r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | yes | Real-world entity category ONLY — e.g. "NBA hall of fame players", "Pixar feature films", "F1 world champions", "US presidents", "Italian cities", "Beatles songs". Be specific ("NBA hall of famers" go |
| filter | string | no | Which slice to return. "available" = registerable names only (most common for "what can I buy" queries). "registered" = names already owned. "all" = both, with status. Default: all. |
Get 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 names
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name or label (e.g. "vitalik" or "vitalik.eth") |
Check 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 expiry
| Parameter | Type | Required | Notes |
|---|---|---|---|
| names | array | yes | Array of ENS names or labels to check (max 100). e.g. ["coffee", "tea.eth", "pixel"] |
Find 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name or label to find similar names for (e.g. "coffee", "pixel.eth") |
| limit | number | no | Max results (default 20, max 50) |
Get 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name or label to value (e.g. "coffee" or "coffee.eth") |
Get 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 first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| eventTypes | array | no | Filter by event type. Defaults to all three; see the tool description for what each means. |
| collection | string | no | Restrict to names in one collection, by slug — e.g. "10k-club", "999-club", "3-letter-dictionary". Use it whenever the user names a club or collection; without it the results are the WHOLE market and |
| limit | integer | no | Max results (default 25, max 100) |
| offset | integer | no | Pagination offset |
List 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 names
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Lifecycle window: "premium" = in the 21-day post-grace Dutch auction (registerable at a decaying premium), "grace" = 0-90d past expiry (NOT registerable, holder can renew), "active" = registered names |
| days | number | no | For status "active"/"all": look-ahead window in days (default 30). |
| minLength | number | no | Minimum label length in CHARACTERS. Length alone does NOT imply digits — a "4-digit" query needs charType:"numbers" too, or 4-letter names leak in. |
| maxLength | number | no | Maximum label length in CHARACTERS (see minLength note re digits). |
| charType | string | no | Character composition filter. When this tool is the right one AND the request is for digits — "N-digit", "numeric", or a digit club (999 Club = 3-digit, 10K Club = 4-digit, 100K Club = 5-digit) — set |
| category | string | no | Collection slug filter (e.g. "crypto-terms", "999-club") |
| dictionaryOnly | boolean | no | Only dictionary words |
| sortBy | string | no | Sort order (default expires ascending — closest to dropping first). "grade" = best expected auction outcome first; use it for "which premium names are worth the most / best opportunities". |
| minGrade | string | no | Only names graded at least this well (A best). Combine with sortBy:"grade" for the shortlist. |
| limit | number | no | Max results (default 25, max 100) |
Assess 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 judgmen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tx_hash | string | no | Transaction hash to look up pre-computed wash score |
| label | string | no | ENS label (e.g. "defirm") for live analysis, or to pick one name out of a multi-name (bulk sweep) tx_hash lookup |
| buyer | string | no | Buyer wallet address for live analysis |
| seller | string | no | Seller wallet address for live analysis |
| price_eth | number | no | Sale price in ETH for live analysis |
Get 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"; "whi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wallet | string | yes | Ethereum wallet address (0x...) or ENS name |
| status | string | no | Lifecycle filter, applied BEFORE paging. "GRACE_PERIOD" = expired ≤90 days, the window right before premium — use it for "my names close to / about to hit premium". "EXPIRING_SOON" = active, ≤90 days |
| limit | number | no | Max results (default 100, max 200) |
| offset | number | no | Pagination offset. Page until totalMatching names have been seen — the summary counts the whole portfolio, the rows are one page. |
Scan 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 — the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| maxPriceEth | number | no | Maximum listing price in ETH (e.g. 1.0). Omit for no cap — never pass a huge sentinel number. |
| minDiscountPct | number | no | Minimum discount vs the engine fair value. Default 20%. Range: 1-99. |
| minLength | integer | no | Minimum label length (e.g. 3 for 3-letter names and up) |
| maxLength | integer | no | Maximum label length (e.g. 5 for up to 5-letter names). Omit for no cap — never pass a huge sentinel number. |
| charType | string | no | Filter by character type |
| minConfidence | string | no | Minimum engine confidence. Floored at MEDIUM — find_alpha never returns LOW-confidence (thin-comp) picks. HIGH = 20+ comps, MEDIUM = 10+. |
| limit | number | no | Max results to return. Default 25, max 100. |
Check 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 this
| Parameter | Type | Required | Notes |
|---|---|---|---|
| walletAddress | string | yes | Ethereum wallet address (0x...) to check reverse resolution for |
Provision 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 mandator
| Parameter | Type | Required | Notes |
|---|---|---|---|
| purpose | string | yes | What the agent does (e.g. "DeFi trading bot", "data analytics agent", "social media manager", "infrastructure monitor") |
| budgetEth | number | no | Maximum budget in ETH for name acquisition (default: 0.1) |
| walletAddress | string | yes | Agent wallet address (will own the name and sign transactions) |
| preferences | object | no | Optional naming preferences |
| agentRegistry | object | no | ENSIP-25 agent registry binding. If provided, the provisioning flow will include the agent-registration text record that links this ENS name to your on-chain agent identity. |
Place 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to make an offer on (e.g. "coffee.eth") |
| amountEth | number | yes | Offer amount in ETH (placed on-chain as WETH) |
| currency | string | no | Offer currency. Seaport offers settle in WETH; ETH is treated as WETH. |
| expiryHours | integer | no | Offer expiry in hours (default: 72, at most 8760: one year) |
| walletAddress | string | yes | Your wallet address (the offer maker / buyer) |
Purchase 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, Grails
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to purchase (e.g. "coffee.eth") |
| maxPriceEth | number | no | Maximum price willing to pay in ETH: a listing's price, or for a registration the registration fee plus any premium and the Name Whisper fee |
| walletAddress | string | yes | Buyer wallet address (will own the name) |
| duration | integer | no | Registration duration in days. ENS protocol minimum is 28 days; maximum is 3650 (10 years); default is 365 (1 year). Sub-year is allowed. |
| durationYears | number | no | DEPRECATED — use duration (days) instead. Number of years (converted to days internally). |
| action | string | no | Action: buy_listing (purchase listed name), register (register available name), auto (detect automatically) |
| orderHash | string | no | Specific Seaport order hash to fulfill. Use this when the user has chosen a specific listing from multiple options. |
Register 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 names; un
| Parameter | Type | Required | Notes |
|---|---|---|---|
| names | array | yes | Array of ENS names to register (e.g. ["coffee.eth", "tea.eth"]). Max 20 per batch. |
| walletAddress | string | yes | Wallet address that will own all registered names |
| duration | integer | no | Registration duration in days, applied to every name in the batch. ENS protocol minimum is 28 days; maximum is 3650 (10 years); default is 365 (1 year). |
| durationYears | number | no | DEPRECATED — use duration (days) instead. Number of years (converted to days internally). |
List 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to list (e.g. "coffee.eth") |
| priceEth | number | yes | Total listing price in ETH (buyer pays this; seller receives it minus the 1% marketplace fee) |
| walletAddress | string | yes | Wallet address of the seller. Must own the name. |
| durationSeconds | integer | no | Listing duration in seconds (default: 30 days / 2592000, at most 31536000: one year) |
Cancel 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'
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderHash | string | yes | Seaport order hash of the listing to cancel (from get_name_details or the orderbook) |
| walletAddress | string | yes | Wallet address of the seller. Must match the original offerer on the order. |
| alsoCancel | array | no | Up to 8 more of your listings FOR THE SAME NAME to cancel atomically in the same tx (e.g. the OpenSea-variant counterpart of an NW listing). Seaport.cancel() accepts an array — cancelling N orders cos |
Cancel 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 eve
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderHash | string | yes | Seaport order hash of the offer to cancel (from get_name_details or the orderbook) |
| walletAddress | string | yes | Wallet address of the bidder. Must match the original offerer on the order. |
| alsoCancel | array | no | Up to 8 more of your offers ON THE SAME NAME to cancel in the same tx (e.g. the OpenSea-variant of an NW offer). Cancelling N orders costs barely more than cancelling one. |
Accept 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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderHash | string | yes | Seaport order hash of the buyer's offer to accept |
| walletAddress | string | yes | Your wallet address (the seller). Must own the ENS name in the offer. |
Buy 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| names | array | yes | Array of ENS names to buy (e.g. ["coffee.eth", "tea.eth"]). Max 20 per batch. |
| walletAddress | string | yes | Buyer wallet address — receives all purchased names. |
Floor-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'/'maxLength'
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | Collection slug to sweep, as used by the marketplace (e.g. "999-club", "10k-club", "three-letter"). Comma-separate for multiple. Optional if q/charType/length is given. |
| q | string | no | Label text filter (substring), e.g. "punk" to sweep names containing punk. |
| charType | string | no | Restrict to a character class. "mixed" covers any label combining letters and digits; "hex" narrows to just the all-hex-digit ones (abc666, 1a2b). |
| minLength | integer | no | Minimum label length. |
| maxLength | integer | no | Maximum label length. |
| count | integer | no | How many names to sweep, cheapest-first (max 20 per tx). Defaults to 10 if no budget is given. |
| maxBudgetEth | number | no | Total ETH budget — keeps buying up the floor until adding the next cheapest would exceed this. |
| maxPriceEth | number | no | Per-name price cap — skip any listing above this so a pricey outlier just off the floor is not swept up. |
| walletAddress | string | yes | Buyer wallet address — receives all swept names. |
Bulk-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 cal
| Parameter | Type | Required | Notes |
|---|---|---|---|
| listings | array | yes | Array of { name, priceEth }. Per-item validation (empty name, non-positive price) is collected in the errors array rather than rejecting the whole batch. |
| walletAddress | string | yes | Wallet address of the seller. Must own all the names. |
| durationSeconds | integer | no | Listing duration in seconds (applied to every name, default: 30 days, at most 31536000: one year) |
Renew 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 month),
| Parameter | Type | Required | Notes |
|---|---|---|---|
| names | yes | ENS name or array of names to renew (e.g. "coffee.eth" or ["coffee.eth", "wallet.eth"]) | |
| duration | integer | no | Duration in days to extend registration (e.g. 7 for 1 week, 28 for a month, 365 for a year). Default: 365. Minimum: 1 day. Maximum: 36500 (100 years). When a budget is also given, the budget wins: the |
| years | number | no | DEPRECATED — use duration instead. Number of years (converted to days internally). At most 100, the same ceiling as duration. |
| budgetUsd | number | no | Spend cap in USD ("renew X for $45", "put $20 into it"). The tool prices the name(s) on-chain and picks the LONGEST whole number of days whose transaction value fits under this cap — never compute the |
| budgetEth | number | no | Spend cap in ETH ("renew X with 0.02 ETH", "I only have 0.05 ETH") — ONLY when the user states an ETH amount. A dollar figure is budgetUsd even when it says ETH ("$1 of eth", "$20 worth of ETH"): neve |
Transfer 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 call a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to transfer (e.g. "coffee.eth") |
| fromAddress | string | yes | Current owner wallet address (must sign the transaction) |
| toAddress | string | yes | Recipient — either a 0x wallet address OR an ENS name (e.g. "vitalik.eth"). ENS names are resolved to their on-chain address record automatically. |
Set 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 ipfs:///i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to set records for (e.g. "myagent.eth") |
| records | object | yes | Records to set on the name |
| walletAddress | string | yes | Wallet address that owns the name (must sign the transaction) |
Set 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), content
| Parameter | Type | Required | Notes |
|---|---|---|---|
| nameRecords | array | yes | Array of name + records pairs. Max 50 names per batch. |
| walletAddress | string | yes | Wallet address that owns these names (must sign the transaction) |
Transfer 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 sa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| transfers | array | yes | Array of name + recipient pairs. Max 20 per batch. All names must be owned by fromAddress. |
| fromAddress | string | yes | Current owner wallet address (must sign the transaction). All names must be owned by this address. |
Set 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to set as primary (e.g. "myname.eth") |
| walletAddress | string | yes | Wallet address to set the primary name for (must sign the transaction) |
Change 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to change resolver for (e.g. "coffee.eth") |
| resolver | string | yes | New resolver contract address. Use "public" for the ENS Public Resolver. |
One-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. Re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to check (e.g. "coffee.eth") |
| includeRenewalPricing | boolean | no | Include on-chain renewal pricing (default: true) |
Wrap 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to wrap (e.g. "coffee.eth") |
| owner | string | yes | Address of the current name owner (must own the BaseRegistrar token) |
| fuses | array | no | Optional fuses to burn on wrap (e.g. ["CANNOT_UNWRAP"]). WARNING: irreversible. |
Unwrap 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 CA
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to unwrap (e.g. "coffee.eth") |
| owner | string | yes | Address of the current wrapped name owner |
Manage 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_CONTROL
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to manage fuses on (e.g. "coffee.eth" for owner fuses, or "sub.coffee.eth" for child fuses) |
| fuses | array | no | Fuses to burn. Required for burn actions, optional for read. Owner fuses: CANNOT_UNWRAP, CANNOT_BURN_FUSES, CANNOT_TRANSFER, CANNOT_SET_RESOLVER, CANNOT_SET_TTL, CANNOT_CREATE_SUBDOMAIN, CANNOT_APPROV |
| action | string | no | Action: "burn_owner_fuses" burns fuses on a name you own, "burn_child_fuses" burns fuses on a subname you are parent of, "read" reads current fuses |
| expiry | number | no | For burn_child_fuses only: Unix timestamp for subname expiry (cannot exceed parent expiry) |
Bulk-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 into
| Parameter | Type | Required | Notes |
|---|---|---|---|
| parentName | string | yes | Parent ENS name (e.g. "company.eth") |
| subnames | array | yes | Array of subnames to create (max 50 per batch) |
| walletAddress | string | yes | Wallet address that owns the parent name |
| allowOverwrite | boolean | no | Default false. If false, throws when any subname already exists. Set true to overwrite existing subnames (destructive — replaces current owner). |
Extend 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_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Full subname to extend (e.g. "sub.coffee.eth") |
| years | number | no | Number of years to extend from now (default: 1). Cannot exceed parent expiry. |
Approve 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 ownership C
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Address granting/revoking operator approval |
| operator | string | yes | Address being approved/revoked as operator |
| contract | string | yes | Which contract to set approval on: base_registrar (ERC-721), name_wrapper (ERC-1155), or ens_registry |
| approved | boolean | no | true to approve, false to revoke (default: true) |
Reclaim 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to reclaim (e.g. "coffee.eth") |
| owner | string | yes | Address to set as the ENS Registry owner (must own the BaseRegistrar token) |
Register 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | ENS name to register as an agent (e.g. "myagent.eth"). You must own it. |
| walletAddress | string | no | Wallet that will sign the transaction. For the adapter route this MUST be the name's current token holder. Auto-filled from ERC-8128 auth when omitted. |
| route | string | no | adapter (default): bind the agent to the name via ERC-8217 — control and marketplace visibility follow the name. direct: mint the agent NFT to your wallet, independent of the name. |
| agentURI | string | no | Override the agent registration file URI. Defaults to NameWhisper's hosted file, which is built live from the name's ENS records (agent-context, endpoints) so it stays current automatically. |
Check 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 two-w
| Parameter | Type | Required | Notes |
|---|---|---|---|
| nameOrWallet | string | yes | ENS name (e.g. "agent.eth") or wallet address (0x...) to look up |
Search 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" → sear
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Search query — agent name, capability, or description |
| capabilities | array | no | Filter by supported protocols (e.g. ["MCP", "A2A", "OASF"]) |
| minReputation | number | no | Minimum total score (0-100) |
| chain | string | no | Filter by chain name (e.g. "Ethereum Mainnet", "Base", "Solana Mainnet") |
| limit | number | no | Max results (default 25, max 50) |
Returns 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.
No parameter schema on file.
Search 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 grace p
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search query — what you want to know about ENS governance, protocol, ecosystem, or history |
| source | string | no | Filter to a specific source. Omit to search all sources. |
| limit | number | no | Number of results to return (default 6) |
Get usage statistics for this MCP server session. Returns tool call counts, success rates, and average latency.
No parameter schema on file.
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Name Whisper — ENS Intelligence Layer or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 2.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Name Whisper — ENS Intelligence Layer can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.