MARS · The open registry

Good agents.
Worth finding.

A home for what you build.
A way for the right people—and agents—to find it.

A closer lookA good agent deserves to be found.

An independent publisher places a signed entry in the catalog. Another agent finds the work it needs.

  1. 01Bring something useful
  2. 02Publish an accountable record
  3. 03Make the work discoverable
Independent publishers. A common catalog.Open protocol · Apache-2.0 implementation

A place for every capability

So much to build on.
One way to find it.

Give useful software a structured, signed record. Make its purpose, publisher, and history part of the discovery experience.

And more: services, organizations, identity roots, and MAP plugin records. Fourteen entry kinds share a common envelope.

Meet the contract

The discovery studio

Find a capability.
Get the whole picture.

Start with what you need. Narrow the field. Inspect the publisher, version and metadata behind an entry before taking the next step.

Interactive sample catalog8 fictional entries · runs in your browser
Exact tag · case-sensitive
MARS-QL
DISCOVER AgentDefinition
ORDER BY published_at DESC, entry_did ASC
LIMIT 12

Controls build the query. The examples below are filtered locally.

2 matching entriesFrom 8 examples

A place for what you make.

More than a listing.
A record to inspect.

The work. The publisher. The signature.
One accountable starting point.

An illustrated publication envelope

Structured entry content

Describe what you made.

An entry gives your agent, tool, skill, model, dataset, or service a structured place in the registry. The record makes its capabilities and metadata inspectable.

See how the record worksPublication integrity does not establish that an entry’s claims are true.

A history that stays with the work

Every version.
Part of the story.

Software changes. Its record should help you understand how.

An illustrated version journal

  1. 01 / 1.0.0active

    Publish a beginning.

    A signed entry gives the work a stable identity and a place in the catalog.

  2. 02 / 1.1.0active

    Make the next version.

    Update the record. Resolve the latest version or inspect the earlier one.

  3. 03 / 1.1.0deprecated

    Leave a clear ending.

    Deprecate or revoke work when it is time. Keep its history available to inspect.

Pin a version. Page through the journal. Read the recorded lineage.

Follow an entry’s lifecycle

Context before confidence

Look closer.
Choose with context.

A name is a beginning. Who published it, who attested to it, and who controls it tell you more.

Inspectable attestations

Evidence with a source.

Attach signed OAS credentials. Inspect their issuer and subject, with expiry and revocation accounted for. A signature establishes origin; the claim still deserves your judgment.

Understand the evidence
APublisherSigned offer
OWNERSHIPOffer → AcceptSequence-bound · Expiring
BRecipientExplicit acceptance

Bilateral ownership transfer

A handoff. With two hands.

The current publisher makes a signed, expiring offer. The recipient accepts or declines. A change of ownership is a recorded agreement between both sides.

Explore ownership

Federation, on your terms

Your own registry.
A wider world.

Choose your peers. Set the scope.
Keep your authority.

See how federation works
YOURRegistryTrust policy
Research
Agents + datasets
Studio
Tools + skills
Partner
Selected namespace
Internal
Your infrastructure
01 / Establish trust

A deliberate connection.

Configure peers and pin their keys. Federation starts with the operator’s choice and is off by default.

02 / Exchange records

Verification travels with it.

Signed envelopes, scoped sync, and durable cursors give each exchange clear boundaries.

03 / Understand the result

A complete view of partial results.

When enabled, authorized federated discovery reports which peers succeeded and which could not respond.

A familiar way in

An open registry.
A simple request.

HTTP. JSON. Your favorite language.
Start with a read. Build from there.

POST

Ask for the right capability.

Filter complete entries with a bounded MARS-QL query. The response carries entries, a total count, and cursor information.

All 35 API operations

curl / discover

MARS_URL='https://your-registry.example'

curl --fail "$MARS_URL/v1/discover/marsql" \
  -H 'Content-Type: application/json' \
  --data '{"query":"DISCOVER AgentDefinition WHERE tags CONTAINS \"research\" ORDER BY published_at DESC LIMIT 10"}'

Use your registry URL. Examples are not executed on this page.

Ready to publish? Writes require a signed record, the appropriate capability, and an idempotency key. Start with the complete contract.

The publication flow

Open to inspect. Yours to operate.

Your catalog.
Your infrastructure.

Run the Rust reference server with PostgreSQL. Choose the publishers, permissions, and peers that belong in your registry.

An explicit contract.

Rust-derived schemas and OpenAPI describe 35 operations. HTTP and JSON connect your application to the registry; WebSocket carries catalog events.

Explore the API

Controls that count.

Capability-scoped writes, idempotent mutations, protected readiness checks, federation visibility, and anchor recovery keep operators in the loop.

Inspect the controls

A considered path forward.

Sigil anchoring is staged. Weave persistence and MARS-S sharding describe the distributed architecture ahead. The reference registry uses PostgreSQL today.

Explore the architecture

The next useful thing

Build something
worth finding.

Give your work a record.
Give the next great idea a place to start.