Are you the author? Sign in to claim
DNS for AI agents: a self-hosted registry to register, discover, and health-check MCP agents. One Go binary.
DNS for AI agents.
A self-hosted registry that lets your agents find each other by capability — with health and trust built in.
Everyone is building AI agents. Nobody is building the layer that lets agents exist alongside each other — discovery, health, trust. The moment you run more than a couple of MCP servers, you're hardcoding endpoints in config files, finding out an agent is down only when something breaks, and trusting every endpoint blindly.
MCP gave agents a common language. agentreg gives them a place to find each
other.
Consul tells you where a service is.
agentregtells you what an agent can do, whether it's healthy, and (soon) how much to trust it.
One Go binary. Self-hosted. No cloud, no account, no cluster. Runs on your laptop at 3 agents and scales with you.
# Homebrew (macOS / Linux)
brew install mkk2026/tap/agentreg
# or download a binary from the latest release
# https://github.com/mkk2026/agentreg/releases
# or from source (Go 1.26+)
go install github.com/mkk2026/agentreg@latest
# 1. run the registry
agentctl serve &
# 2. register your agents
agentctl register search-agent -c search -e http://localhost:3000
agentctl register db-agent -c db-read -e http://localhost:3001
agentctl register product-api -c api,email -e http://localhost:3002
# 3. see everything, with live health
agentctl list
# 4. discover by capability — use this in your agent's startup instead of a hardcoded URL
agentctl find search
agentctl find search --format json
agentctl list:
NAME CAPABILITIES STATUS SOURCE LAST HEARTBEAT ENDPOINT
db-agent db-read unhealthy local just now http://localhost:3001
product-api api,email healthy local just now http://localhost:3002
search-agent search healthy local just now http://localhost:3000
The daemon health-checks every registered agent on an interval, so a down agent
shows up as unhealthy before it breaks something downstream. That's the
difference between reading a status table and debugging a production incident
backwards.
find search), not
where it lives. Endpoints move; capabilities don't. agentctl (CLI) ──HTTP──▶ agentreg daemon
│
├── Store in-memory + atomic JSON persistence
└── Verifier health probe, on a heartbeat loop
Two design seams make the roadmap additive instead of a rewrite:
Source field on every record (local today; peer:<id>, from:ans,
from:mcp_registry later) so federation and cross-registry ingestion don't
require a migration.
Verifier interface — v1 ships a health probe; ANS-identity,
prompt-injection, and tools/list verifiers plug into the same seam.
labels — optional operator metadata (env, team, version, …) that
rides along on every record and shows up in list. Set it via the API today:
curl -X POST http://localhost:8080/agents -H 'Content-Type: application/json' \
-d '{"name":"corebrim-search","capabilities":["search"],
"endpoint":"http://10.0.0.12:3000",
"labels":{"env":"prod","team":"platform","version":"1.4.2"}}'
| agentreg | MCP Registry | Consul | ANS (IETF) | |
|---|---|---|---|---|
| Self-hosted, no cloud dependency | ✅ | ❌ (cloud) | ✅ | ~ (ref impl) |
| Capability-based discovery | ✅ | ✅ | ~ (tags) | ✅ |
| Health checks built in | ✅ | ❌ | ✅ | ❌ |
| Single binary, 30-second setup | ✅ | n/a | ❌ (cluster) | ❌ |
| Cross-org trust / verification | 🔜 (pluggable) | ❌ | ❌ | ✅ (spec) |
| Purpose-built for agents/MCP | ✅ | ✅ | ❌ | ✅ |
agentreg isn't trying to out-spec the standards bodies — it's the tool
developers actually run, built to interoperate with them.
| Method | Path | Purpose |
|---|---|---|
POST | /agents | register an agent (JSON body) |
GET | /agents | list all agents |
GET | /agents/find?capability=X | find by capability |
POST | /agents/{name}/heartbeat | agent self-reports healthy |
GET | /healthz | daemon liveness |
agentctl serve
--port 8080 # listen port
--store ~/.agentreg/registry.json # persistence file
--heartbeat-interval 15s # how often to health-check agents
--probe-timeout 3s # per-agent probe timeout
agentreg ships as the smallest lovable loop first, then grows toward being the
trust fabric agents rely on.
tools/list validation,
prompt-injection checks. Verification-as-a-service.agentctl federate across registries; the Source
field lights up.Delightful extras on the list: a live list TUI, agentctl doctor,
agentctl graph, and zero-config auto-register from an MCP manifest.
Early days, and help is welcome. Open an issue to discuss a change, or send a PR.
git clone https://github.com/mkk2026/agentreg
cd agentreg
go test ./...
go build -o agentctl .
MIT © Core Brim Tech
Built by Core Brim Tech · agents deserve a substrate.
Run analytics queries on ClickHouse — explore schemas, execute SQL, fetch results
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases