AI-powered ENS name intelligence with search, valuation, and trading tools across 3.6M+ Ethereum Name Service domains.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The nw-terminal MCP server exposes 44 tools, focused primarily on general-purpose capabilities. Its published description reads: "AI-powered ENS name intelligence with search, valuation, and trading tools across 3.6M+ Ethereum Name Service domains". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates nw-terminal F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Hidden instructions in a tool description" and "Hidden instructions in a tool description". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check nw-terminal's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add nw-terminal to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://namewhisper.ai/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
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
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 — inclu
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
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: provision_agent_identity
A tool description contains imperative text aimed at the model (e.g. "ignore previous", "before answering read …").
/agent/<name>. IMPORTANT: The calling AI MUST execute all steps in the reRecommendationRemove model-directed instructions from tool descriptions.
tool: register_agent
A tool description contains imperative text aimed at the model (e.g. "ignore previous", "before answering read …").
automatically. IMPORTANT: after this transaction confirms, read the new aRecommendationRemove model-directed instructions from tool descriptions.
tool: search_ens_names
A tool description tries to alter the model’s use of another tool.
presidents" use enumerate_entities instead (it returns correctly-spelled labels).RecommendationDescriptions must describe only their own tool.
tool: search_ens_names
A database tool exposes a query/sql parameter that is a free-form string with no allow-list or parameterisation constraint — a raw-string injection surface. A tool exposing structured filters or an `enum` of named queries does not fire.
unconstrained query parameter "query"RecommendationExpose parameterised operations instead of a raw query string; never build queries from unvalidated model output.
tool: enumerate_entities
A tool description tries to alter the model’s use of another tool.
tead of scottiepippen) or invent people who don't exist (e.g. "johncarltonRecommendationDescriptions must describe only their own tool.
tool: get_name_details
A tool description tries to alter the model’s use of another tool.
nstead of guessing; bulk_set_records works for any name where isPublicResoRecommendationDescriptions must describe only their own tool.
tool: check_availability
A tool description tries to alter the model’s use of another tool.
els returned by enumerate_entities. Do NOT feed it names you invented/typed yourseRecommendationDescriptions must describe only their own tool.
tool: get_market_activity
A tool description tries to alter the model’s use of another tool.
ke volume?" use wash_check.RecommendationDescriptions must describe only their own tool.
tool: get_expiring_names
A tool description tries to alter the model’s use of another tool.
ry filters. Use search_ens_names for pattern/price/theme queries instead. SCOPE:RecommendationDescriptions must describe only their own tool.
tool: wash_check
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
", "is the sale history of X suspicious/fake/real?", "are these tradesRecommendationRemove side-channel parameters; constrain tool inputs.
tool: wash_check
A tool description tries to alter the model’s use of another tool.
ere, do NOT use get_name_details or get_market_activity for that (those return sRecommendationDescriptions must describe only their own tool.
tool: find_alpha
A tool description tries to alter the model’s use of another tool.
this instead of search_ens_names + repeated get_valuation when the user asRecommendationDescriptions must describe only their own tool.
tool: get_primary_name
A tool description tries to alter the model’s use of another tool.
correctly after set_primary_name - Check if a wallet has any primary name configRecommendationDescriptions must describe only their own tool.
tool: provision_agent_identity
A tool description tries to alter the model’s use of another tool.
uding the final set_ens_records step. Agent identity is not complete until theRecommendationDescriptions must describe only their own tool.
tool: make_offer
A tool description tries to alter the model’s use of another tool.
aces. Tip: Use get_valuation first to understand fair market value before maRecommendationDescriptions must describe only their own tool.
tool: purchase_name
A tool description tries to alter the model’s use of another tool.
n override with the 'action' parameter.RecommendationDescriptions must describe only their own tool.
tool: bulk_register
A tool description tries to alter the model’s use of another tool.
gistration, use bulk_set_records to configure all names at once with addresses,RecommendationDescriptions must describe only their own tool.
tool: create_listing
A tool description tries to alter the model’s use of another tool.
petitively. Use get_name_details to confirm the name is unwrapped vs wrapped befRecommendationDescriptions must describe only their own tool.
tool: cancel_listing
A tool description tries to alter the model’s use of another tool.
as a buyer, use cancel_offer instead.RecommendationDescriptions must describe only their own tool.
tool: cancel_offer
A tool description tries to alter the model’s use of another tool.
n listings, use cancel_listing.RecommendationDescriptions must describe only their own tool.
tool: accept_offer
A tool description tries to alter the model’s use of another tool.
if needed. Use get_name_details to see the offer hash and confirm the highest oRecommendationDescriptions must describe only their own tool.
tool: batch_purchase
A tool description tries to alter the model’s use of another tool.
er than calling purchase_name once per name. For each name it picks the cheapRecommendationDescriptions must describe only their own tool.
tool: sweep
A tool description tries to alter the model’s use of another tool.
c names (that's batch_purchase). Pick the cohort with 'category' (a collectioRecommendationDescriptions must describe only their own tool.
tool: batch_create_listings
A tool description tries to alter the model’s use of another tool.
d of aborting the whole batch — partial success is normal. Requires operaRecommendationDescriptions must describe only their own tool.
tool: renew_ens_name
A tool description tries to alter the model’s use of another tool.
ist: first call get_wallet_portfolio to find the names, IGNORE every EXPIRED and PRERecommendationDescriptions must describe only their own tool.
tool: transfer_ens_name
A tool description tries to alter the model’s use of another tool.
recipient with get_name_details or any other lookup — get_name_details returnsRecommendationDescriptions must describe only their own tool.
tool: bulk_set_records
A tool description tries to alter the model’s use of another tool.
record types as set_ens_records: address records (ETH, BTC, SOL, etc.), text reRecommendationDescriptions must describe only their own tool.
tool: bulk_transfer_ens_names
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
e a recipient. Conversational flow for "send all my names" / "transfer my nRecommendationRemove side-channel parameters; constrain tool inputs.
tool: bulk_transfer_ens_names
A tool description tries to alter the model’s use of another tool.
u and never use get_name_details to resolve a recipient. Conversational flow foRecommendationDescriptions must describe only their own tool.
tool: set_primary_name
A tool description tries to alter the model’s use of another tool.
nstead of seeing "0x1234...abcd", they'd see "myname.eth". Requirements:RecommendationDescriptions must describe only their own tool.
tool: manage_ens_name
A tool description tries to alter the model’s use of another tool.
is over calling get_name_details + get_valuation separately — this tool is purpoRecommendationDescriptions must describe only their own tool.
tool: register_agent
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: purchase_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: bulk_register
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: cancel_listing
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: cancel_offer
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: accept_offer
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: batch_purchase
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: sweep
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: batch_create_listings
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
orders back to https://namewhisper.ai/api/orderbook/submit-bulk (up to 500 per request) to store. NW-native onRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: renew_ens_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: transfer_ens_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: set_ens_records
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: bulk_set_records
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: bulk_transfer_ens_names
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: set_primary_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: set_resolver
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: wrap_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: unwrap_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: manage_fuses
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: approve_operator
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: reclaim_name
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: find_alpha
An unusually long description is a common injection-padding tactic.
description length 2517 charsRecommendationKeep descriptions concise.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
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
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_AUC
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 r
Get recent ENS marketplace activity — sales, new listings, offers, mints, transfers, renewals, and burns. Filter by event type. Returns event details including name, price (in ETH), buyer/seller addre
List ENS names by lifecycle window — THE tool for "which names are in premium / on Dutch auction", "names in grace period", "what's expiring soon / about to drop". Statuses: - premium: 90-111 days pas
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 t
Get all ENS names owned by a wallet address. Returns each name with label, tags, expiry, registration date, and active listing/offer prices. Useful for portfolio analysis and wallet profiling. If you
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 select
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: - Re
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 → se
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
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, A
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
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, P
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 or
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 sec
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
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 nam
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 u
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 signatu
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. Ac
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.
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
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
Transfer multiple ENS names in a single transaction via Multicall3 — bulk send. Much cheaper and faster than transferring names one at a time. Supports up to 20 names per batch. Automatically detects
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", th
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
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
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 (re
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 CANNO
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
Bulk-create subnames under a parent ENS name in a single transaction. Designed for agent fleet deployment — create identities like agent001.company.eth, agent002.company.eth, etc. Each subname can hav
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 paren
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 toke
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 r
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
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
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+ chai
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
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.).
Get usage statistics for this MCP server session. Returns tool call counts, success rates, and average latency.