Connect AI assistants to ENS (Ethereum Name Service) for name lookups, profile information, availability checks, and pricing.
Connect to ENS MCP Server:
https://ens-mcp.namespace.ninja/mcp
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"ens": {
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}VS Code
Add to .vscode/mcp.json:
{
"servers": {
"ens": {
"type": "http",
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Claude Code
claude mcp add --transport http ens https://ens-mcp.namespace.ninja/mcpClaude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ens": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ens-mcp.namespace.ninja/mcp"]
}
}
}Codex
codex mcp add ens --url https://ens-mcp.namespace.ninja/mcpOpenCode
Add to your opencode.json:
{
"mcp": {
"ens": {
"type": "remote",
"url": "https://ens-mcp.namespace.ninja/mcp",
"enabled": true
}
}
}Antigravity
Open the MCP Store panel (from the "..." dropdown in the side panel), then add a custom server with:
https://ens-mcp.namespace.ninja/mcp
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ens": {
"serverUrl": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Zed
Add to your Zed settings:
{
"context_servers": {
"ens": {
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"ens": {
"httpUrl": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Warp
Go to Settings > MCP Servers > Add MCP Server and add:
{
"ens": {
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}Kiro
Add to ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"ens": {
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Roo Code
Add to your Roo Code MCP config:
{
"mcpServers": {
"ens": {
"type": "streamable-http",
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}Other Clients
For clients that support remote MCP:
{
"mcpServers": {
"ens": {
"url": "https://ens-mcp.namespace.ninja/mcp"
}
}
}For clients that need mcp-remote:
{
"mcpServers": {
"ens": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ens-mcp.namespace.ninja/mcp"]
}
}
}Self-Hosting
You can also self-host the ENS MCP Server using the npm package.
Stdio Transport:
npx -y ens-mcpHTTP Transport:
npx -y ens-mcp --http --port 8080The server will be available at http://localhost:8080/mcp.
Environment Variables:
| Variable | Description | Default |
|---|---|---|
RPC_URL |
Ethereum mainnet RPC URL | Viem Provided Public RPC |
SUBGRAPH_URL |
ENS subgraph URL | ENSNode Public Subgraph |
Example with custom RPC and Subgraph:
RPC_URL=https://your-rpc-provider.com SUBGRAPH_URL=https://your-subgraph-provider.com npx -y ens-mcpOnce ENS MCP is installed, you can ask things like:
1️⃣ Basic Lookup
> Who owns vitalik.eth?
2️⃣ Resolver & Expiry
> What is the resolver and expiry date of vitalik.eth?
3️⃣ Records & Addresses
> Give me the ETH address and Twitter handle for vitalik.eth.
4️⃣ Reverse Lookup
> What ENS names are owned by 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?
5️⃣ Subnames
> List all subdomains under base.eth.
6️⃣ Portfolio Analysis
> Show me all ENS names owned by this address and tell me which ones are expiring soon.
7️⃣ Conditional Acquisition Strategy
> I want to get example.eth. How much does it cost for 2 years? And if it’s not available, give me the owner details and socials so I can contact them.
8️⃣ Names for Address
> What are the names owned by 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?
9️⃣ Subnames for Name
> What are the subnames under vitalik.eth?
1️⃣0️⃣ Name History
> when was the last time vitalik.eth changed its content hash?| Tool | Description |
|---|---|
is_name_available |
Check if an ENS name is available for registration |
get_name_price |
Get the price of an ENS name for a given duration |
get_profile_details |
Fetch detailed ENS profile information including ownership, resolver, expiry status, text records, address records, and content hash |
get_names_for_address |
Retrieve names owned by an address |
get_subnames_for_name |
Retrieve subnames under a given ENS name |
get_name_history |
Retrieve history of an ENS name |
get_subgraph_records |
Retrieve records keys associated with an ENS name |
Built with ❤️ by Namespace 🥷