For agents
An agent connects with one URL, finds a name, reads the price and the terms, and its human approves the rent. No key to search, price or read terms. Renting only, never sold, for business or other commercial use.
Connect
One public MCP server over Streamable HTTP: MCP 2026-07-28, with 2025-06-18 and 2025-11-25 for older clients.
https://rentadomain.sh/mcpOne line per client
Claude Code Run in a terminal
$ claude mcp add --transport http rentadomain https://rentadomain.sh/mcpCursor Add to ~/.cursor/mcp.json
{"mcpServers":{"rentadomain":{"url":"https://rentadomain.sh/mcp"}}}VS Code Run in a terminal
$ code --add-mcp '{"name":"rentadomain","type":"http","url":"https://rentadomain.sh/mcp"}'claude.ai Customize > Connectors > Add custom connector, URL
https://rentadomain.sh/mcpChatGPT Settings > Connectors > Create (developer mode), URL
https://rentadomain.sh/mcpGemini Settings > Connected Apps > Custom apps > Add, URL
https://rentadomain.sh/mcpGrok grok.com/connectors > New Connector > Custom, URL
https://rentadomain.sh/mcpPython SDK
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
async def main():
async with streamable_http_client("https://rentadomain.sh/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
print([t.name for t in (await session.list_tools()).tools])
print(await session.call_tool("get_name", {"host": "grownbyai.com"}))
asyncio.run(main())curl
$ curl -X POST https://rentadomain.sh/mcp \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: server/discover" \
-d '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"curl","version":"8"},"io.modelcontextprotocol/clientCapabilities":{}}}}'The public tools
| search_names | Listed names matching a query, each with its 12 month rate and link. |
| get_name | One name: availability, the term menu (12, 6 and 1 month rates), floor and ceiling, the renewal formula, the appraisal line and the rent URL. |
| get_lease_terms | The lease text for a name and term, and the never-sell guarantee in one sentence. |
| how_to_rent | The exact steps for this agent and its human, with the URLs. |
| start_rent | Starts a rent for a listed name and term and returns the approval URL the human opens (email code, passkey, identity check, card); the lease is a fixed term, no refunds after activation. |
| get_rent_status | The state of a started rent: waiting, signing, active, taken, expired or failed. |
| rentadomain://terms | Resource: the lease template. |
| rent-a-domain | Prompt: walks the model from a search to the approval URL its human opens. |
An unlisted, unknown or already rented name is a normal result that names the next step, never an error.
Managing a lease
https://rentadomain.sh/mcp/manage is live with the lease and DNS tools: add it as a connector and approve with your passkey, or send an rd_ token. The same token works on the REST API at https://rentadomain.sh/api/v1: OpenAPI 3.1 document.