agentreg

command module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2026 License: MIT Imports: 3 Imported by: 0

README

DNS for AI agents.
A self-hosted registry that lets your agents find each other by capability — with health and trust built in.

Release License Go version Platforms Status PRs welcome Listed on CodeGuilds


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. agentreg tells 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.

Install

# 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

Quickstart

# 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.

Why agentreg

  • Capability-first discovery. Ask for what you need (find search), not where it lives. Endpoints move; capabilities don't.
  • Health built in. Every agent is probed on a heartbeat. No separate monitoring stack to wire up.
  • Self-hosted, zero cloud. One static binary. Your registry, your data, your network. Nothing leaves your machine.
  • Delightful at 3 agents, load-bearing at 30. Cheap enough to adopt before you need it, so it's already there when you do.
  • Built to grow into trust. The verification layer is pluggable from day one (see Roadmap).

How it works

  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 vs. the alternatives

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.

HTTP API

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

Configuration

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

Roadmap

agentreg ships as the smallest lovable loop first, then grows toward being the trust fabric agents rely on.

  • v0.1 — the loop (now). register · list · find · heartbeat, single binary.
  • Next — trust. Pluggable verifiers: ANS identity, tools/list validation, prompt-injection checks. Verification-as-a-service.
  • Next — federation. agentctl federate across registries; the Source field lights up.
  • Later — the fabric. One client that discovers and verifies across every registry (ANS, MCP Registry, local), so agents transact across org boundaries safely.

Delightful extras on the list: a live list TUI, agentctl doctor, agentctl graph, and zero-config auto-register from an MCP manifest.

Contributing

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 .

License

MIT © Core Brim Tech


Built by Core Brim Tech · agents deserve a substrate.

Documentation

Overview

Command agentctl is the agentreg CLI and daemon.

Directories

Path Synopsis
Package cmd holds the agentctl CLI commands.
Package cmd holds the agentctl CLI commands.
internal
agent
Package agent defines the core registry record: an agent (MCP server) and its discovery, health, and provenance metadata.
Package agent defines the core registry record: an agent (MCP server) and its discovery, health, and provenance metadata.
client
Package client is a thin HTTP client the CLI uses to talk to the daemon.
Package client is a thin HTTP client the CLI uses to talk to the daemon.
registry
Package registry holds the agent records and persists them.
Package registry holds the agent records and persists them.
server
Package server exposes the registry over HTTP and runs the heartbeat loop.
Package server exposes the registry over HTTP and runs the heartbeat loop.
verify
Package verify defines the trust seam of agentreg.
Package verify defines the trust seam of agentreg.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL