live · mcp.mariothomas.com

MCP DNS Registry

A reference implementation of DNS-based MCP server discovery. This endpoint speaks JSON-RPC 2.0 — not HTTP in a browser.

If you're seeing this page in your browser or this error:
{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error"}}

That is expected. This endpoint requires a POST request with a JSON-RPC 2.0 body. A browser visiting the URL directly sends a GET request with no body, which the server correctly rejects. Use the curl commands below to interact with the registry.

DNS Record

Any compliant agent resolves the _mcp TXT record at this domain to discover the registry.

verify the dns record
$ dig TXT _mcp.mariothomas.com +short
v=mcp1   registry=https://mcp.mariothomas.com/registry   public=true   auth=https://auth.mariothomas.com/token   version=2026-02

Registered Servers

articles
Published articles and writing from mariothomas.com
public
locations
Cities visited with corresponding dates
public
documents
Private document catalogue — requires bearer token
authenticated

Query the Registry

Call discover_servers to retrieve all servers visible to the request. Unauthenticated requests return public servers only.

discover public servers
$ curl -X POST https://mcp.mariothomas.com/registry \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"discover_servers","arguments":{}}}' | jq
list available tools
$ curl -X POST https://mcp.mariothomas.com/registry \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | jq

Further Reading

Architecture paper, full specification, and source code for this reference implementation.