--- a/base/index.html +++ b/head/index.html @@ -288,6 +288,7 @@
application/a2a-agent-card+json — an A2A Agent Cardapplication/mcp-server-card+json — an MCP Server Cardapplication/mcp-server+json — an MCP Registry server.json documentapplication/agent-skills+json — Agent Skill Metadata json fileapplication/agent-skills+md — an Agent Skill defined in a standard Markdown file (the suffix +md is to be registered)application/agent-skills+zip — an Agent Skill bundle (ZIP archive)A Server Card is a static discovery document for a single HTTP-based MCP
server (its identity and connection details). It is distinct from the MCP
Registry's server.json, an installable-package descriptor — a separate
-artifact type that this appendix does not address.
An MCP Server Card is a static discovery document for an individual @@ -2023,6 +2025,212 @@
This appendix describes how the MCP Registry server.json format
+(see modelcontextprotocol/registry)
+maps to AI Catalog as a first-class cataloged artifact type, enabling
+installable MCP servers to be discovered alongside other AI artifacts
+through a unified catalog.
++Two MCP server artifacts, two types. The MCP ecosystem defines two +distinct documents for a server, and AI Catalog gives each its own known +
+type:+
+- MCP Server Card (
+application/mcp-server-card+json) — a static + discovery document for a connectable HTTP server (identity, transport, + capabilities, auth). See Mapping to MCP Servers.- MCP Registry
+server.json(application/mcp-server+json) — an + installable package descriptor (package coordinates, transports, + environment variables, CLI arguments).These are different artifacts, so they use different media types. The +Server Card deliberately uses
+application/mcp-server-card+json(not +application/mcp-server+json) to leave the unqualifiedmcp-server+name for the Registryserver.jsondocument +(modelcontextprotocol/experimental-ext-server-card issue #9 / PR #18). +A catalog entry references whichever artifact fits the use case — a +server.jsonfor installable packages, a Server Card for connectable +endpoints — and a domain MAY list both.
The MCP Registry defines a server.json format for describing MCP
+servers. Each server.json document captures everything needed to
+install, configure, and connect to a single MCP server: package
+coordinates (npm, PyPI, NuGet, OCI), remote endpoints (streamable-http,
+SSE), transport configuration, environment variables, and CLI arguments.
In AI Catalog terms, a server.json document is the artifact
+content — the native metadata that a Catalog Entry references, declared
+with the known type application/mcp-server+json. AI Catalog does not
+duplicate or redefine server.json fields; it provides the discovery and
+trust layer that server.json does not address.
MCP server.json |
+AI Catalog Equivalent | +
|---|---|
server.json document (whole file) |
+Artifact content via entry url (type application/mcp-server+json) or data |
+
name (reverse-DNS identifier) |
+Entry identifier (mapped to the urn:air:{publisher}:{namespace}:{name} URN form — e.g. registry name com.pulsemcp/remote-filesystem → urn:air:pulsemcp.com:mcp:remote-filesystem). The mapping is not a mechanical transliteration: publisher is the publisher's actual domain (e.g. pulsemcp.com) and namespace is a chosen category (e.g. mcp), independent of the registry name's reverse-DNS segments. |
+
title |
+Stays in the artifact (server.json carries its own title); entry displayName is omitted unless the artifact lacks a name |
+
description |
+Entry description |
+
version |
+Entry version |
+
repository |
+Entry metadata.repository |
+
packages[] (npm, pypi, nuget, oci) |
+Inside the artifact — not surfaced in the catalog | +
remotes[] (streamable-http, sse) |
+Inside the artifact — not surfaced in the catalog | +
environmentVariables[] |
+Inside the artifact — not surfaced in the catalog | +
_meta |
+Entry metadata for catalog-level hints; otherwise stays in the artifact |
+
| (not in server.json) | +Entry publisher |
+
| (not in server.json) | +Entry trustManifest (identity, attestations, provenance) |
+
| (not in server.json) | +Entry tags for cross-artifact discovery |
+
An MCP server published as a Registry server.json maps to a Catalog
+Entry whose url points to the server.json document and whose type
+is the known type application/mcp-server+json:
{
+ "identifier": "urn:air:pulsemcp.com:mcp:remote-filesystem",
+ "version": "0.1.5",
+ "type": "application/mcp-server+json",
+ "url": "https://registry.modelcontextprotocol.io/v0/servers/com.pulsemcp%2Fremote-filesystem/versions/0.1.5",
+ "description": "MCP server for remote filesystem operations on cloud storage",
+ "tags": ["filesystem", "storage"],
+ "publisher": {
+ "identifier": "did:web:pulsemcp.com",
+ "displayName": "PulseMCP"
+ },
+ "trustManifest": {
+ "identity": "urn:air:pulsemcp.com:mcp:remote-filesystem",
+ "attestations": [
+ {
+ "type": "publisher-identity",
+ "uri": "https://trust.pulsemcp.com/certs/publisher.jwt"
+ }
+ ],
+ "provenance": [
+ {
+ "relation": "publishedFrom",
+ "sourceId": "https://github.com/pulsemcp/mcp-servers",
+ "registryUri": "https://registry.npmjs.org"
+ }
+ ]
+ },
+ "metadata": {
+ "repository": "https://github.com/pulsemcp/mcp-servers"
+ },
+ "updatedAt": "2026-03-15T10:00:00Z"
+}
+
+The url resolves to the server's server.json. In the MCP Registry, a
+specific version is addressed as
+/v0/servers/{name}/versions/{version} — where {name} is the server's
+reverse-DNS registry name, URL-encoded (the / between namespace and
+name becomes %2F) — and the response carries the server.json document
+in its server field alongside registry _meta. A client fetches the
+catalog entry for discovery and trust evaluation, then retrieves the
+server.json for operational details (packages, transports, env vars).
The MCP Registry — a centralized index of MCP servers — can be
+represented as an AI Catalog. This lets clients that understand
+application/ai-catalog+json discover installable MCP servers alongside
+A2A agents, skills, and other artifacts:
{
+ "specVersion": "1.0",
+ "host": {
+ "displayName": "MCP Server Registry",
+ "identifier": "did:web:modelcontextprotocol.io",
+ "documentationUrl": "https://modelcontextprotocol.io/docs"
+ },
+ "entries": [
+ {
+ "identifier": "urn:air:pulsemcp.com:mcp:remote-filesystem",
+ "version": "0.1.5",
+ "type": "application/mcp-server+json",
+ "url": "https://registry.modelcontextprotocol.io/v0/servers/com.pulsemcp%2Fremote-filesystem/versions/0.1.5",
+ "description": "MCP server for remote filesystem operations on cloud storage",
+ "tags": ["filesystem", "storage"]
+ },
+ {
+ "identifier": "urn:air:pulsemcp.com:mcp:pulse-fetch",
+ "version": "0.2.14",
+ "type": "application/mcp-server+json",
+ "url": "https://registry.modelcontextprotocol.io/v0/servers/com.pulsemcp.servers%2Fpulse-fetch/versions/0.2.14",
+ "description": "MCP server that extracts clean, structured content from web pages",
+ "tags": ["fetch", "web"]
+ }
+ ]
+}
+
+A Registry server.json and an MCP Server Card describe the same kind of
+thing at different lifecycle stages, and they layer naturally:
server.json (application/mcp-server+json)application/mcp-server-card+json)A domain MAY publish both as separate catalog entries — one entry of each
+type pointing at the respective artifact — so clients can pick the
+representation that matches what they are doing (provisioning vs.
+connecting). AI Catalog provides the trust and cross-ecosystem indexing
+layer over both; each artifact carries its own protocol-specific detail.
This appendix describes how the Anthropic Claude Code Plugins @@ -2031,7 +2239,7 @@ maps to AI Catalog, enabling Claude Code plugins to be discovered, indexed, and distributed through a unified catalog alongside other AI artifacts.
-The Claude Code Plugins marketplace is defined by a marketplace.json
file that lists available plugins. Each plugin is a directory containing
@@ -2050,7 +2258,7 @@
README.md