Skip to content

docs: align Catalog mediaType with AI Catalog spec#18

Merged
SamMorrowDrums merged 2 commits into
mainfrom
sammorrowdrums/docs-align-mediatype-with-ai-catalog
Jun 8, 2026
Merged

docs: align Catalog mediaType with AI Catalog spec#18
SamMorrowDrums merged 2 commits into
mainfrom
sammorrowdrums/docs-align-mediatype-with-ai-catalog

Conversation

@SamMorrowDrums

Copy link
Copy Markdown
Collaborator

Replace application/mcp-server+json with application/mcp-server-card+json in docs/discovery.md (7 occurrences) to match the AI Catalog specification, which discovery.md cites as the standard MCP Catalog entries are a subset of.

Decision per @tadasant in #9: align with AI Catalog.

Fixes #9

SamMorrowDrums and others added 2 commits June 5, 2026 22:13
Replace application/mcp-server+json with application/mcp-server-card+json
in docs/discovery.md to match the AI Catalog specification, which
discovery.md cites as the standard MCP Catalog entries are a subset of.

Fixes #9

Co-authored-by: Copilot <[email protected]>
@SamMorrowDrums
SamMorrowDrums merged commit ecc77a4 into main Jun 8, 2026
3 checks passed
SamMorrowDrums pushed a commit 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

None yet

Development

Successfully merging this pull request may close these issues.

MCP Catalog mediaType (application/mcp-server+json) diverges from AI Catalog's application/mcp-server-card+json

2 participants