NameWhisper MCP Server
AI-powered ENS intelligence for autonomous agents. Search 3.5M+ names, get valuations, trade, and manage ENS domains — all via the Model Context Protocol.
Quick Start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"namewhisper": {
"command": "npx",
"args": ["-y", "namewhisper-mcp"]
}
}
}
Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"namewhisper": {
"command": "npx",
"args": ["-y", "namewhisper-mcp"]
}
}
}
Claude Code
claude mcp add namewhisper -- npx -y namewhisper-mcp
Direct Usage
npx namewhisper-mcp
Remote endpoint (no install)
The same 44 tools are served directly over streamable HTTP — point any remote-capable MCP client at:
https://namewhisper.ai/mcp
For Claude Code:
claude mcp add --transport http namewhisper https://namewhisper.ai/mcp
Server card: namewhisper.ai/.well-known/mcp.json · Registry: ai.namewhisper/ens-tools on the MCP Registry
What It Does
NameWhisper exposes 44 ENS tools over the Model Context Protocol, giving AI agents full access to:
- Search — natural language queries across 3.5M+ indexed ENS names with semantic vector search
- Valuation — confidence-rated price estimates using comparable sales, entity recognition, and quality signals
- Marketplace — browse listings, find underpriced names, check recent sales and offers
- Commerce — register names, list names for sale, buy listings (single or batch up to 20), make offers, accept offers, cancel listings and offers, bulk register up to 20 names in 2 transactions
- Management — renew, transfer, set records, wrap/unwrap, manage fuses, create subnames
- Agent Identity — provision ENSIP-25 agent identities, check ERC-8004 reputation, search the agent directory
- Knowledge — search ENS governance proposals, protocol docs, and community discussions
Architecture
┌──────────────┐ stdio ┌────────────────────┐ HTTPS ┌─────────────────┐
│ AI Client │ ◄────────────► │ namewhisper-mcp │ ◄──────────► │ namewhisper.ai │
│ (Claude, │ MCP JSON │ (this package) │ JSON-RPC │ (backend) │
│ Cursor, │ │ │ │ │
│ etc.) │ │ 44 tool schemas │ │ Valuation │
└──────────────┘ │ + proxy layer │ │ Database │
└────────────────────┘ │ Marketplace │
│ On-chain │
└─────────────────┘
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.
Tools Reference
Discovery
| 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 |
Intelligence
| 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 |
Commerce
| 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 |
Management
| 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 |
NameWrapper
| 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 |
Access & Recovery
| Tool | Description |
|---|---|
approve_operator | Approve/revoke operator for ENS contracts (setApprovalForAll) |
reclaim_name | Reclaim ENS Registry ownership from BaseRegistrar token |
Agent Identity
| 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) |
Knowledge & Internal
| 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 |
Configuration
| 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.
Links
- NameWhisper — namewhisper.ai
- Developer docs — namewhisper.ai/docs
- Agent integration guide — namewhisper.ai/guide
- llms.txt — namewhisper.ai/llms.txt
- MCP Specification — modelcontextprotocol.io
- ENSIP-25 — Agent identity standard for ENS
- ERC-8004 — Trustless Agents