Skip to content

thenamespace/ens-mcp

ENS MCP Server

Install in Cursor Install in VS Code npm version

Connect AI assistants to ENS (Ethereum Name Service) for name lookups, profile information, availability checks, and pricing.

Installation

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/mcp
Claude 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/mcp
OpenCode

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-mcp

HTTP Transport:

npx -y ens-mcp --http --port 8080

The 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-mcp

💬 Example Natural Language Queries

Once 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?

Available Tools

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 🥷

About

Connect AI assistants to ENS for name lookups, profile information, availability checks, and pricing.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors