Skip to content

Spec: Update mediaType to type for catalogEntry and add known types#37

Merged
mindpower merged 21 commits into
mainfrom
jbu/adr-0014-mediatype-to-type
Jun 25, 2026
Merged

Spec: Update mediaType to type for catalogEntry and add known types#37
mindpower merged 21 commits into
mainfrom
jbu/adr-0014-mediatype-to-type

Conversation

@mindpower

@mindpower mindpower commented May 15, 2026

Copy link
Copy Markdown
Member

Update AI-catalog spec based on meeting agreement on date: 04/30/2026, 05/14/2026

Move from mediaType to type in CatalogEntry

  • Decision: Renamed the mediaType field to type in catalog entries to avoid confusion with generic IANA media types.
  • Open Format with Known Types: Clarified that the type field is an open text format accepting any string value. However, a set of recognized "known types" is recommended for interoperability (e.g., application/a2a-agent-card+json, application/mcp-server+json, application/ai-catalog+json, application/agent-registry, and format-specific skills like +gzip, +zip, +json). Clients are responsible for handling new or unknown types.
  • ADR Created/Updated: Added and updated ADR 0014 to document this decision.

@mindpower mindpower changed the title Spec: Update mediaType to type based on last two meetings (adr/0014) Spec: Update mediaType to type based on last meetings (adr/0014) May 15, 2026
@github-actions

github-actions Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Preview unavailable.

The pull request preview was removed because this pull request is closed.

github-actions Bot added a commit that referenced this pull request May 15, 2026
…est (which is different from the type for catalog entry) and fix the type to application/mcp-server+json in examples
github-actions Bot added a commit that referenced this pull request May 15, 2026
@mindpower mindpower changed the title Spec: Update mediaType to type based on last meetings (adr/0014) Spec: Update mediaType to type for catalogEntry and add known types May 15, 2026
Comment thread adr/0014-media-type-to-type.md Outdated
Comment thread adr/0014-media-type-to-type.md Outdated
Comment thread specification/ai-catalog.md Outdated
github-actions Bot added a commit that referenced this pull request May 20, 2026
@jdamick

jdamick commented May 21, 2026

Copy link
Copy Markdown

The attestation object already has a "type" and "mediaType" and now type in the entry is actually a media type. It seems confusing and inconsistent to me when i read this again.

Simplifies the attestation metadata schema by removing the
`mediaType` field from the `Attestation` object, following the May 28, 2026
workgroup decision.
- Removes `mediaType` from the Attestation schema definition in `ai-catalog.md`.
- Updates all trustManifest examples across the specification.
- Updates ADR 0014 to document the context, decision, and rationale for this removal.
github-actions Bot added a commit that referenced this pull request May 30, 2026
@jdamick

jdamick commented Jun 4, 2026

Copy link
Copy Markdown

lgtm

Comment thread specification/ai-catalog.md Outdated
@muscariello
muscariello requested review from a team and removed request for muscariello June 10, 2026 18:03
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
Co-authored-by: Tadas Antanavicius <[email protected]>
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
mindpower and others added 2 commits June 19, 2026 15:53
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
mindpower and others added 2 commits June 19, 2026 15:53
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
…n/mcp-server-card+json, and standardize Markdown profile URNs
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
…d correct mcp-server-card nomenclature in ADR 0014
github-actions Bot added a commit that referenced this pull request Jun 19, 2026
@Wolfe-Jam

Copy link
Copy Markdown
Contributor

hey guys, love the cards. not wishing to put yet another decision burden on your track — but I author a fair few Agent Skills (~40) and I'd love to see tags carry discovery. one word and you have everything, no matter how deep the catalog becomes — skills, context, security, images, whatever — a single tag finds them all, and it doesn't care how the entry's encoded.

I just tried the format out for myself (published a catalog with five entries) and that's where it landed for me. thanks again for the work on this.

Assisted by Claude (Opus 4.8) · Approved by James Wolfe (@Wolfe-Jam)

…skills+md in catalog and ADR, also added agent-skills+json for skills metadata json file
github-actions Bot added a commit that referenced this pull request Jun 22, 2026
@dsp-ant
dsp-ant self-requested a review June 25, 2026 15:28
github-actions Bot added a commit that referenced this pull request Jun 25, 2026
@mindpower
mindpower merged commit 5faaa27 into main Jun 25, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in AI Catalog Jun 25, 2026
github-actions Bot added a commit that referenced this pull request Jun 25, 2026
SamMorrowDrums pushed a commit to modelcontextprotocol/experimental-ext-server-card that referenced this pull request Jul 13, 2026
…14) (#32)

## What

Adapts the **MCP Catalog Entry** in `docs/discovery.md` to [AI Catalog
PR #37](Agent-Card/ai-catalog#37) / ADR 0014,
which renames the `CatalogEntry.mediaType` member to **`type`** and
reframes its description as an open-text *type identifier* rather than a
strict IANA media type.

Changes (docs-only, `docs/discovery.md`):

- Renames the `mediaType` member to `type` in the Catalog Entry table.
- Updates the member description to mirror ADR 0014: "An identifier
specifying the type of the referenced artifact."
- Updates the `type` key in all four example catalog entries.
- Updates the client-validation prose (`type` set to … / "ignore entries
with unrecognized types").

## Rebase / conflict resolution

This branch was rebased onto the current `main` to resolve a merge
conflict in `docs/discovery.md`. The conflict came from changes that
landed on `main` after this branch was cut:

- **#31** — `urn:air:` identifier adaptation (ADR 0015). **Preserved.**
- **#39 / #14** — removal of the `displayName` field from MCP Catalog
entries. **Preserved** — this PR does **not** reintroduce `displayName`;
it only renames the field `mediaType` → `type` on top of main's current
structure.

The resolved diff is exactly the `mediaType` → `type` rename (table row,
four examples, validation prose) applied on top of main — nothing from
either side's intent was dropped.

## Scope decision — value deliberately kept as
`application/mcp-server-card+json`

This PR renames the **field only**. The value stays
`application/mcp-server-card+json` and is **not** changed to ADR 0014's
known-type `application/mcp-server+json`. Rationale:

- ADR 0014 explicitly makes `type` an **open-text** format ("any string
value is accepted"); `application/mcp-server+json` is a non-binding
"known type," and ecosystem types are "governed externally" (i.e., by
MCP). So keeping a more precise MCP-governed value is compatible with
ADR 0014, not a contradiction.
- This repo **deliberately** chose `application/mcp-server-card+json`
over `application/mcp-server+json` (issue #9 / PR #18) to avoid
colliding with the MCP Registry's `server.json` concept — a distinction
the README documents in "Relationship to the MCP Registry."

**Flag for maintainers:** AI Catalog's ADR 0014 known-types list uses
`application/mcp-server+json` for MCP. Whether this repo should also
adopt that value (reversing issue #9 / PR #18 and re-introducing the
`server.json` naming collision) is a separate, more consequential
decision and is intentionally **out of scope** here. Happy to file a
cross-repo issue if maintainers want to pursue it.

## What is intentionally NOT changed

- The **Server Card document's own HTTP media type** (`Accept` /
`Content-Type` negotiation, the reserved `/server-card` location prose).
That is a genuine IANA media type, not the renamed catalog field, and
ADR 0014 does not touch it.
- `schema.ts` / `schema.json` — the Server Card schema has no
`mediaType`/`type` member; this convention lives only in the discovery
doc.

## Verification

- [x] Rebased onto latest `main`; merge conflict in `docs/discovery.md`
resolved, preserving both #31 (`urn:air:`) and #39 (`displayName`
removal). PR now reports `MERGEABLE`.
- [x] `npm run check` — `schema.json` up to date, `tsc --noEmit` clean
- [x] `npm run validate` — all 7 examples pass
- [x] `npm run format:check` — `docs/discovery.md` clean, including
markdown table re-alignment
- [x] Verified zero `mediaType` field tokens remain (`git grep
mediaType` → no matches)
- [x] Verified the Server Card HTTP media-type prose was left intact (no
over-reach)
- [x] **CI green** — `build`, `Analyze (actions)`, and `CodeQL` all pass
on the rebased head
([run](https://github.com/modelcontextprotocol/experimental-ext-server-card/actions/runs/29278815978))
- [x] Independent fresh-eyes subagent review: **APPROVE** (rename
complete & correct; no `displayName` reintroduced; value unchanged;
Server Card media-type prose intact; no stray `mediaType`; no conflict
markers)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: tadasant <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

9 participants