h3-mcp logoh3-mcp

Extensions

Advertise capabilities beyond the core spec.

Extensions let a server declare optional, namespaced functionality in ServerCapabilities.extensions. Identifiers require a reverse-DNS prefix.

defineMcpHandler({
  name: "my-server",
  version: "1.0.0",
  extensions: { "io.modelcontextprotocol/tasks": {} },
  tools: [/* ... */],
});

The map is echoed verbatim on server/discover, so the value can carry extension-specific configuration rather than just {}.

Extensions are negotiated by advertisement only: if one side lacks an extension, the other must fall back to core behavior or return an error. Never assume a client understands one because it connected.

Note

extensions is capability plumbing. Declaring io.modelcontextprotocol/tasks advertises the Tasks extension but does not implement tasks/*h3-mcp does not ship those methods yet. Only advertise what you actually serve.

Extensions are a modern-era concept: the field is absent from the legacy initialize response.

h3-mcp logo

h3-mcp  MCP servers, built on H3.