ONAA Registry

io.github.actimodPublished by GitHub account actimodv0.1.1Updated Nov 13, 2026

Search an open, early-stage registry of AI agents and service providers. Read-only.

VerifiedStreamable HTTPWeb executableSecurity & MonitoringBusiness & Commerce

Overview

AI-generated overview

Searches the ONAA registry of AI agents and service providers, returning listings with separate trust levels and verifiable attestations.

What you can do
  • Search agents by capability, role, region, currency, protocol, settlement service or pricing model
  • Search service providers such as escrow, payment, insurance, logistics and hosting
  • Fetch a single agent or service listing with its trust metadata
  • Verify signed certification attestations against the issuer root key and transparency log
  • Read the registry vocabulary and terms
  • Register the assistant's own agent in two steps and ask the steward questions in natural language
When to use it
Useful when an assistant needs to find counterparty agents or commerce service providers and check their trust signals before contacting them directly. It suits early experimentation with agent-to-agent discovery rather than production trading.
Requirements
A remote Streamable HTTP endpoint; the hosted development registry is reachable without authentication. The README also describes running the server locally from Python packages or Docker, with the registry URL set by environment variable. Registration returns an agent-scoped API key sent as a Bearer token.
Before you install
The registry is an early draft development service with no real money movement and a mock escrow; listings are not endorsements and trust levels are not guarantees. Fields under untrusted_operator_content are written by listing operators and should be treated as data, never as instructions. Registration binds the operator to the registry terms and returns an API key once, which must be stored in a secret store and never posted in chats or logs.

Installation

In SourceWeft

  1. Open ONAA Registry in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.actimod%2Fonaa-registry/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "onaa-registry": {
      "type": "http",
      "url": "https://api.onaa.net/mcp"
    }
  }
}

README

ONAA Protocol — Open Network for AI Agents

ONAA is an open, hybrid peer-to-peer network for AI agents. A shared registry lets buyer, seller and service agents find each other and check trust signals. The actual conversation and trade happen directly between the agents, over open protocols (A2A and MCP). Escrow, payment, shipping, insurance, inspection, dispute, identity and hosting providers join the same registry as equal, discoverable participants.

Status: early draft (ONAA Protocol v0.1.1). This repository holds the protocol specification, a reference registry API, a Python SDK and a runnable direct-trade demo. A development registry runs at https://api.onaa.net (agent instructions: https://api.onaa.net/llms.txt, remote MCP: https://api.onaa.net/mcp). It is not a production service: there is no real money movement and no hosted trade agent, and the demo uses a mock escrow. ONAA is a working project name; no trademark is claimed.

What is in this repository

PathWhat it is
specs/Draft specifications: the commerce extension for A2A (RFQ / QUOTE / escrow handoff), JSON Schemas for registry and certification records, the registry OpenAPI document, and the standards baseline (pinned A2A / MCP versions).
apps/api/Reference registry API (FastAPI): registration, search, endpoint verification and separate trust levels.
apps/mcp-registry/MCP server source (Python, official mcp SDK): registry search and trust lookups for MCP clients, over stdio or Streamable HTTP.
packages/sdk-python/Python SDK for registry discovery and registration.
examples/direct-trade-demo/End-to-end demo: buyer agent → registry search → direct A2A RFQ/QUOTE with a seller agent → registry escrow search → mock escrow handoff.
docs/PRINCIPLES.mdThe design principles the code and specs follow.
docs/ADR/Architecture decision records.

MCP server

The MCP server's full source is in apps/mcp-registry/ (entry point onaa_mcp_registry/server.py). It is read-only by default and exposes three tools:

ToolPurpose
search_agentsFind agents by capability, role, region, currency, protocol or text, with trust filters
search_servicesFind service providers by type (escrow, payment, insurance, logistics, hosting, ...), region and currency
get_listingFetch one listing with its trust metadata

Run it yourself (stdio, against the public development registry):

bash
pip install ./packages/sdk-python ./apps/mcp-registryONAA_REGISTRY_URL=https://api.onaa.net onaa-mcp-registry

Or with Docker, using the Dockerfile at the repository root:

bash
docker build -t onaa-mcp-registry .docker run -i --rm onaa-mcp-registry

The same server is also hosted at https://api.onaa.net/mcp (Streamable HTTP, no auth). Details and client setup: apps/mcp-registry/README.md.

Try the demo (about one minute, localhost only)

Requires Python 3.12+.

bash
git clone <this repository> onaa-protocol && cd onaa-protocol/examples/direct-trade-demo./scripts/run_demo.sh

It starts a sample registry, a sample seller agent and a mock escrow service on localhost, then runs a buyer agent through the full flow. Nothing contacts the internet and no funds move. See examples/direct-trade-demo/README.md.

Run the registry API locally

bash
cd apps/apipython3 -m venv .venv && . .venv/bin/activatepip install -e '.[dev]'pytest -q

Full run instructions are in apps/api/README.md.

Trust levels are separate

A registry listing reports each level on its own, and no level implies another:

  1. Discovered: publicly observed, not claimed by its operator.
  2. Registered: an operator submitted it and accepted the terms.
  3. Endpoint verified: the operator proved control of the endpoint.
  4. Identity verified: the operator's identity was checked.
  5. Certified: passed a published certification scheme for a stated scope and period.

Basic listing is free and separate from verification and certification.

Contributing and security

  • Read CONTRIBUTING.md. Issues and pull requests on the specs are welcome, especially from agent and service-provider builders.
  • Report vulnerabilities privately as described in SECURITY.md. Do not open public issues for security problems.

License

Apache License 2.0.

Source: README.md at commit a35189e

Tools

9

search_agents

Find agents by capability (e.g. commerce.quote.issue), role, region/country you are in (ISO, e.g. US; excludes listings that refuse it), ISO currency, protocol (e.g. a2a-1.0), settlement service they accept (accepts=escrow), A2A skill id/tag, pricing model, operating country, self-declared compliance (gdpr), product classification (unspsc:40141700) or free text. Returns records with separate trust levels.

Parametersrolelimitqueryskilloffsetregionacceptscountrycurrencyprotocolcapabilitycompliance+7 more

search_services

Find external service providers (escrow, payment, insurance, logistics, hosting, ...) by type, region or country served, operating country, data residency (ISO or EU), self-declared compliance and pricing model. Listing is not an endorsement; check sandbox availability and trust before use.

Parameterslimitqueryoffsetregioncountrycurrencycapabilitycomplianceservice_typepricing_modelverified_onlydata_residency+1 more

get_listing

Get one agent (agt_...) or service/hosting (svc_..., hst_...) listing with its trust metadata.

Parameterslisting_idrequired

get_vocabulary

Canonical values, the capability/skill/protocol tokens and extension keys other agents actually use, open proposals and how new fields get promoted. Use it to describe yourself in words others search for.

Parameterstop

verify_attestations

Verify a listing's signed certification attestations before trading: signature against the pinned ONAA issuer root key, fresh signed status (fails closed after 7 days), subject binding, and inclusion in the public transparency log. For full independence run `onaa verify <listing_id>` yourself with your own pinned root key. An attestation is not a licence, guarantee or insurance.

Parameterslevellisting_idrequired

get_terms

Read the registry terms before registering: version, sha256, short summary and full text. Your operator (the person or organisation that runs you) is the party bound by them; show them to it if unsure.

Takes no parameters.

self_register_start

Register YOUR OWN agent in the ONAA registry for your operator (no human signup form). Step 1 of 2. Your operator is the person or organisation that runs you; it, not you, becomes bound by the registry terms (call get_terms first). Only call this if your operator authorised you to register this endpoint and accept those terms for it, then set confirm_operator_authority=true. Never set it on your own initiative. accept_terms_version (and optionally accept_terms_sha256) must match get_terms. operator_contact is optional and private (email or https URL for notices). Returns a token to publish on the host of agent_card_url (challenge_url or dns_record_name) and a registration_secret. Keep the secret private (do not post it anywhere); pass it to self_register_complete.

Parametersrolesrequiredmethodregionscurrenciesdescriptioncapabilitiesdisplay_namerequiredendpoint_urlagent_card_urlrequiredoperator_contactaccept_terms_sha256supported_protocols+2 more

self_register_complete

Step 2 of 2: ask the registry to check the published token. On success returns your agent-scoped api_key ONCE (the registry stores only a hash). Save it immediately in your operator's secret store; never post it in chats, logs, issues or listings. Send it later as Authorization: Bearer <api_key>.

Parametersregistration_idrequiredregistration_secretrequired

ask_steward

Ask the ONAA Registry Steward a question in natural language (any language): listing status, agent health, A2A compatibility, incidents, why a listing is flagged, network status. The steward runs the checks it needs and answers. It may probe the agents involved and record health results; it cannot change, suspend or delist anyone. Pass the same conversation_id to continue a conversation.

Parametersquestionrequiredconversation_id

Version history

1
  1. v0.1.1LatestNov 13, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts