Headless Domains MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Headless Domains MCP Servercheck if myagent.agent is available"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Headless Domains MCP Server
ChatGPT Plugin Extension MVP: this branch includes an isolated, read-only plugin server at
plugin_server.py. It does not replace or modify the legacyserver.pyruntime.
ChatGPT Plugin Extension MVP
The new server provides:
lookup_namecheck_availabilitylist_my_namesget_recordsa global sidebar entrypoint (
headlessdomains.app)a thread-side name inspector (
headlessdomains.name_panel)desktop composer mention search
a versioned MCP App at
ui://headlessdomains/app-v1streamable HTTP at
/mcp
It is read-only. Registration, renewal, payment, record changes, MCP Events, and public deployment are intentionally excluded.
Safe local start
Fixture mode is the default and makes no production API requests:
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
HEADLESSDOMAINS_DATA_MODE=fixture .venv/bin/python plugin_server.pyThen connect MCP Inspector to http://127.0.0.1:8787/mcp.
Production read-only lookup and availability can be enabled explicitly:
HEADLESSDOMAINS_DATA_MODE=production .venv/bin/python plugin_server.pySee:
Test
.venv/bin/python -m pytest -qOfficial Model Context Protocol (MCP) server for Headless Domains. This server exposes Headless Domains API operations to MCP-compatible clients such as Claude Desktop, Cursor, and Windsurf.
Related MCP server: FastDomainCheck MCP Server
Features
search_domain: check whether a domain is availablelookup_whois: inspect a registered identityregister_domain: register a domain with an API keysync_bio: sync agent/profile bio content with an API keyAutomatic transport selection:
stdiofor local MCP clientsssewhenPORTis present for hosted deployments
Requirements
Python 3.10+
Optional: a Headless Domains API key for authenticated tools
Local Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtEnvironment Variables
Variable | Required | Default | Purpose |
| No | unset | Sends |
| No |
| Overrides the API base URL |
| No |
| HTTP timeout in seconds |
| No |
| Override register endpoint path if the API changes |
| No |
| Override sync-bio endpoint path if the API changes |
| No | auto | Force a transport such as |
| No |
| Bind host for SSE mode |
| No | unset | When present, starts the server in |
Run Locally
For a local MCP client, the server uses stdio by default:
python server.pyYou can also run it through the MCP CLI:
mcp run server.pyClaude Desktop Configuration
Add a server entry to claude_desktop_config.json:
{
"mcpServers": {
"headlessdomains": {
"command": "mcp",
"args": [
"run",
"/absolute/path/to/headlessdomains-mcp/server.py"
],
"env": {
"HEADLESSDOMAINS_API_KEY": "your-api-key-here"
}
}
}
}If you do not need authenticated tools yet, you can omit HEADLESSDOMAINS_API_KEY.
Hosted SSE Mode
When PORT is present, server.py starts an SSE transport automatically:
PORT=8080 python server.pyTypical Railway-style launch:
HOST=0.0.0.0 PORT=8080 python server.pyTool Notes
register_domain
Requires
HEADLESSDOMAINS_API_KEYSends a base payload containing
domain,namespace,years,agreed_to_terms(true), andpayment_method("gems")Accepts
extra_payload_jsonfor API fields not hard-coded into the tool
Example:
{
"domain": "myagent.agent",
"years": 1,
"extra_payload_json": "{\"owner_email\":\"me@example.com\"}"
}sync_bio
Requires
HEADLESSDOMAINS_API_KEYSyncs to the
/domains/<domain>/bioendpointSends
domain,bio, andbio_markdownAccepts
extra_payload_jsonfor any additional API fields (likename,x,github, etc.)
Example:
{
"domain": "myagent.agent",
"bio_markdown": "# About Me",
"extra_payload_json": "{\"name\":\"My Agent Name\", \"x\":\"twitter_handle\"}"
}Docker
Build:
docker build -t headlessdomains-mcp .Run:
docker run --rm -p 8080:8080 \
-e PORT=8080 \
-e HEADLESSDOMAINS_API_KEY=your-api-key-here \
headlessdomains-mcpSmoke Testing
After installing dependencies:
python -m py_compile server.py
python - <<'PY'
import server
print(server.search_domain("example.agent"))
print(server.lookup_whois("test.agent"))
PYNotes
/temp-specsis ignored in.gitignoreso local planning docs stay out of version control.
This server cannot be deployed
Maintenance
Related MCP Connectors
Custom domains for SaaS and AI agents: search, buy, connect DNS, verify ownership and issue HTTPS.
Domain search, registration, DNS, marketplace, and checkout with your AI agent.
Custom domains API for SaaS: connect, verify, and manage customer domains, SSL, and DNS
Domain availability search, WHOIS lookup, TLD pricing and registry rules from name.ai. Read-only.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables checking domain availability using WHOIS and DNS resolution, with support for single and batch queries.29-
- AlicenseAqualityDmaintenanceEnables checking domain name availability for single or multiple domains using WHOIS and DNS verification.121MIT
- AlicenseNot gradedqualityBmaintenanceEnables checking domain name availability and pricing, and provides a registration link. Read-only: no purchases in chat.MIT

nameai-mcpofficial
FlicenseNot gradedqualityBmaintenanceEnables domain search and availability checks, WHOIS lookups, TLD registration pricing, and TLD requirement queries through MCP tools.-