Skip to content

thenamespace/ens-mcp

ENS MCP Server

Install in Cursor Install in VS Code npm version

Give your AI assistant native access to the ENS (Ethereum Name Service). Look up ENS names, profile information, check name availability, get pricing, explore subnames, and query onchain records — all through natural language.

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 whether an ENS name is currently available for registration
get_name_price Get the registration price for a name at a given duration (in seconds)
get_profile_details Fetch full ENS profile: owner, resolver, expiry, text records, address records, and contenthash
get_names_for_address List all ENS names held by a given address
get_subnames_for_name Retrieve all subdomains registered under a parent ENS name
get_name_history Retrieve the event history of any ENS name
get_subgraph_records Query all record keys associated with a name

Contributing

Contributions are welcome. Feel free to open a PR.


Built with ❤️ by Namespace Ninjas 🥷

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