Skip to content

docs(discovery): adopt AI Catalog urn:air: identifier convention (ADR 0015)#31

Merged
dsp-ant merged 6 commits into
mainfrom
adopt-urn-air-identifier
Jun 19, 2026
Merged

docs(discovery): adopt AI Catalog urn:air: identifier convention (ADR 0015)#31
dsp-ant merged 6 commits into
mainfrom
adopt-urn-air-identifier

Conversation

@tadasant

@tadasant tadasant commented Jun 18, 2026

Copy link
Copy Markdown
Member

What & why

Adopts the AI Catalog urn:air: identifier-naming convention standardized in Agent-Card/ai-catalog#36 (ADR 0015) for this extension's discovery docs.

This repo's only identifier-naming surface is the MCP Catalog Entry in docs/discovery.md. It previously used a repo-local urn:mcp:server:<name> URN. docs/discovery.md describes the MCP Catalog as "a minimal, MCP-scoped subset of the AI Catalog specification" whose entries "can be used as-is within a full AI Catalog document" — a claim the old format contradicted, since the AI Catalog now standardizes the domain-anchored urn:air:{publisher}:{namespace}:{name} form.

Changes (doc-only, docs/discovery.md)

  • Replace the urn:mcp:server:<name> convention with the AI Catalog urn:air: form.
  • Document the segments for an MCP server:
    • publisher — the publisher's domain (forward DNS), e.g. example.com, matching ADR 0015's framing that the publisher is a domain.
    • namespace — optional, populated per the AI Catalog specification (the examples omit it).
    • name — the server-name suffix (the segment after the / in the referenced Server Card's reverse-DNS name), e.g. weather.
  • So a Server Card named com.example/weather can be referenced as urn:air:example.com:weather.
  • Update all 4 catalog examples accordingly.

Design notes for reviewers

  • Forward-DNS publisher, anchored on the publisher's domain per ADR 0015.
  • Server Card schema deliberately untouched. schema.ts/schema.json have no identifier/identity field — the card carries name (reverse-DNS) only — so this is a discovery-doc change, not a schema change. Keeps the PR minimal and avoids pre-empting unresolved SEP-2127 discussion.
  • Related open question: issue Remove the MCP Catalog #26 ("Remove the MCP Catalog") — this aligns the identifier format while the MCP Catalog exists and does not pre-empt that discussion.

Verification

  • Self-review (fresh-eyes) done. Ran independent in-process reviews of the diff across iterations; findings (an incorrectly-attributed urn:air:local: form; reverse- vs forward-DNS publisher) were addressed.
  • ADR 0015 cross-checked against source — verified the urn:air:{publisher}:{namespace}:{name} form, the forward-domain example urn:air:example.com:..., and the optional namespace against the raw adr/0015-agent-identifier-naming.md in PR #36.
  • All 4 examples internally consistent with the documented mapping; example url hosts match the publisher domains.
  • No stale referencesgrep confirms zero remaining urn:mcp:server: occurrences.
  • Schema untouched & in syncnpm run check✓ schema.json is up to date; tsc --noEmit passes.
  • Examples validatenpm run validateAll 7 example(s) passed.
  • Formattingnpm run format:check (prettier) passes on all tracked files.
  • CI green — confirmed on the pushed branch (build, CodeQL, Analyze all pass).

Local proof:

$ npm run check
✓ schema.json is up to date     (+ tsc --noEmit, no errors)

$ npm run validate
All 7 example(s) passed.

$ npm run format:check
All matched files use Prettier code style!

Documentation-only change; no UI and no runtime/logic behavior to exercise beyond the schema toolchain above.

🤖 Generated with Claude Code

tadasant and others added 6 commits June 18, 2026 20:19
…DR 0015)

Align the MCP Catalog Entry `identifier` with the domain-anchored
`urn:air:{publisher}:{namespace}:{name}` naming convention standardized
in Agent-Card/ai-catalog#36 (ADR 0015), replacing the repo-local
`urn:mcp:server:<name>` format.

The MCP Catalog is documented as "a minimal, MCP-scoped subset of the AI
Catalog specification" whose entries "can be used as-is within a full AI
Catalog document" — a claim the old `urn:mcp:server:` format
contradicted. Maps the Server Card reverse-DNS `name` (`{publisher}/{name}`)
to `urn:air:{publisher}:mcp:{name}`, and clarifies that the discovery
`identifier` is decoupled from cryptographic trust identity per ADR 0015.

Doc-only change to docs/discovery.md; the Server Card schema has no
identifier field and is unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…her note

Address fresh-eyes review: ADR 0015 does not define a urn:air:local: form
(it permits any open-text identifier for local/closed catalogs), and note
that MCP's reverse-DNS publisher segment matches the ADR's own MCP examples.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Per review feedback, anchor the identifier on the publisher's forward-DNS
domain (e.g. example.com) to match ADR 0015's framing that the publisher
segment is a domain, and its canonical example urn:air:example.com:mcp:weather.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Re-pad the Catalog Entry table after the identifier example shortened;
fixes the failing format:check CI step. No content change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@SamMorrowDrums

Copy link
Copy Markdown
Collaborator

Good catch, I hope this will remain stable from here. 🤞

@tadasant

Copy link
Copy Markdown
Member Author

@SamMorrowDrums let's wait for the AI Catalog PR to land before merging this

AI Catalog is not stable yet, but we plan to have a target stable v1 date set during the next Thursday call

@dsp-ant dsp-ant merged commit e42749b into main Jun 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants