SEP-973: Expose additional metadata for Implementations, Resources, Tools and Prompts - Model Context Protocol
https://modelcontextprotocol.org/seps/973-expose-additional-metadata-for-implementations-res • 343 KB fetched Open original page
SEP-973: Expose additional metadata for Implementations, Resources, Tools and Prompts - Model Context Protocol
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Skip to main content
Model Context Protocol home page
Search...
⌘ K Ask Assistant ⌘ I
* Blog
* GitHub
Search...
Navigation
Final
SEP-973: Expose additional metadata for Implementations, Resources, Tools and Prompts
Documentation
Specification
Extensions
Registry
SEPs
Community
* SEP Index
Final
* SEP-414: Document OpenTelemetry Trace Context Pr…
* SEP-932: Model Context Protocol Governance
* SEP-973: Expose additional metadata for Implemen…
* SEP-985: Align OAuth 2.0 Protected Resource Meta…
* SEP-986: Specify Format for Tool Names
* SEP-990: Enable enterprise IdP policy controls d…
* SEP-991: Enable URL-based Client Registration us…
* SEP-994: Shared Communication Practices/Guidelin…
* SEP-1024: MCP Client Security Requirements for Lo…
* SEP-1034: Support default values for all primitiv…
* SEP-1036: URL Mode Elicitation for secure out-of-…
* SEP-1046: Support OAuth client credentials flow i…
* SEP-1302: Formalize Working Groups and Interest G…
* SEP-1303: Input Validation Errors as Tool Executi…
* SEP-1319: Decouple Request Payload from RPC Metho…
* SEP-1330: Elicitation Enum Schema Improvements an…
* SEP-1577: Sampling With Tools
* SEP-1613: Establish JSON Schema 2020-12 as Defaul…
* SEP-1686: Tasks
* SEP-1699: Support SSE polling via server-side dis…
* SEP-1730: SDKs Tiering System
* SEP-1850: PR-Based SEP Workflow
* SEP-1865: MCP Apps - Interactive User Interfaces…
* SEP-2085: Governance Succession and Amendment Pro…
* SEP-2106: Tools `inputSchema` & `outputSchema` Co…
* SEP-2133: Extensions
* SEP-2148: MCP Contributor Ladder
* SEP-2149: MCP Group Governance and Charter Templa…
* SEP-2164: Standardize Resource Not Found Error Co…
* SEP-2207: OIDC-Flavored Refresh Token Guidance
* SEP-2243: HTTP Header Standardization for Streama…
* SEP-2260: Require Server requests to be associate…
* SEP-2322: Multi Round-Trip Requests
* SEP-2468: Recommend Issuer (iss) Parameter in MCP…
* SEP-2484: Require Conformance Tests for Standards…
* SEP-2549: TTL for List Results
* SEP-2567: Sessionless MCP via Explicit State Hand…
* SEP-2575: Make MCP Stateless
* SEP-2577: Deprecate Roots, Sampling, and Logging
* SEP-2596: Specification Feature Lifecycle and Dep…
* SEP-2663: Tasks Extension
On this page
* Abstract
* Motivation
* Current State
* Proposed State
* Rationale
* Specification
* Backwards Compatibility
* Security Implications
Final
SEP-973: Expose additional metadata for Implementations, Resources, Tools and Prompts
Copy page Copy page
Expose additional metadata for Implementations, Resources, Tools and Prompts
Copy page Copy page
Final Standards Track
This SEP has reached Final status and is preserved as a historical record of
the design as accepted. Changes made to the protocol after finalization are
not reflected here. Refer to the current
specification and its changelog for authoritative
requirements.
Field Value
SEP 973
Title Expose additional metadata for Implementations, Resources, Tools and Prompts
Status Final
Type Standards Track
Created 2025-07-15
Author(s) @jesselumarie
Sponsor None
PR #973
Abstract
This SEP proposes adding two optional fields— icons and websiteUrl . The icons and websiteUrl would be added to the Implementation schema so that clients can visually identify third-party implementations and link directly to their documentation. The icons parameter will also be added to the Tool , Resource and Prompt schemas. While this can be used by both servers and clients for all implementations, we expect it to be used initially for server-provided implementations.
Motivation
Current State
Current implementations only expose namespaced metadata, forcing clients to display generic labels with no visual cues.
Proposed State
The proposed implementation would allow us to add visual affordances and links to documentation, making it easier to visually identify which servers/clients are providing an implementation e.g. a tool in a slash command interface:
* Visual Affordance: Icons make it immediately clear to users which tool or resource source is in use.
* Discoverability: A link to documentation ( websiteUrl ) allows clients to direct users to more information with a single click.
Rationale
This design builds on prior work in web manifests (MDN) and consolidates community feedback:
* Consolidation of PRs: Merges the changes from PR #417 and PR #862 into a single, cohesive enhancement.
* Flexible Icon Sizes: Supports multiple icon sizes (e.g., 48x48 , 96x96 , or any for vector formats) to accommodate different client UI needs.
* Optional Fields: By making both fields optional, existing implementations remain fully compatible.
Specification
Extend the Implementation object as follows:
/**
* A url pointing to an icon URL or a base64-encoded data URI
*
* Clients that support rendering icons MUST support at least the following MIME types:
* - image/png - PNG images (safe, universal compatibility)
* - image/jpeg (and image/jpg) - JPEG images (safe, universal compatibility)
*
* Clients that support rendering icons SHOULD also support:
* - image/svg+xml - SVG images (scalable but requires security precautions)
* - image/webp - WebP images (modern, efficient format)
*/
export interface Icon {
/**
* A standard URI pointing to an icon resource.
*
* Consumers MUST takes steps to ensure URLs serving icons are from the
* same domain as the client/server or a trusted domain.
*
* Consumers MUST take appropriate precautions when consuming SVGs as they can contain
* executable JavaScript
*
* @format uri
*/
src : string ;
/** Optional override if the server’s MIME type is missing or generic. */
mimeType ?: string ;
/** e.g. "48x48", "any" (for SVG), or "48x48 96x96" */
sizes ?: string ;
}
/**
* Describes the MCP implementation
*/
export interface Implementation extends BaseMetadata {
version : string ;
/**
* An optional list of icons for this implementation.
* This can be used by clients to display the implementation in a user interface.
* Each icon should have a `kind` property that specifies whether it is a data representation or a URL source, a `src` property that points to the icon file or data representation, and may also include a `mimeType` and `sizes` property.
* The `mimeType` property should be a valid MIME type for the icon file, such as "image/png" or "image/svg+xml".
* The `sizes` property should be a string that specifies one or more sizes at which the icon file can be used, such as "48x48" or "any" for scalable formats like SVG.
* The `sizes` property is optional, and if not provided, the client should assume that the icon can be used at any size.
*/
icons ?: Icon [];
/**
* An optional URL of the website for this implementation.
*
* Consumers MUST takes steps to ensure URLs serving icons are from the
* same domain as the client/server or a trusted domain.
*
* Consumers MUST take appropriate precautions when consuming SVGs as they can contain
* executable JavaScript
*
* @format: uri
*/
websiteUrl ?: string ;
}
Extend the Tool , Resource and Prompt interfaces with the following type:
/**
* An optional list of icons for a resource.
* This can be used by clients to display the resource's icon in a user interface.
* Each icon should have a `kind` property that specifies whether it is a data representation or a URL source, a `src` property that points to the icon file or data representation, and may also include a `mimeType` and `sizes` property.
* The `mimeType` property should be a valid MIME type for the icon file, such as "image/png" or "image/svg+xml".
* The `sizes` property should be a string that specifies one or more sizes at which the icon file can be used, such as "48x48" or "any" for scalable formats like SVG.
* The `sizes` property is optional, and if not provided, the client should assume that the icon can be used at any size.
*/
icons ?: Icon [];
Backwards Compatibility
Both icons and websiteUrl are optional fields; clients that ignore them will fall back to existing behavior.
Security Implications
This shouldn’t introduce any new security implications.
Was this page helpful?
Yes No
SEP-932: Model Context Protocol Governance
SEP-985: Align OAuth 2.0 Protected Resource Meta…
github
Assistant
Responses are generated using AI and may contain mistakes.
Links found on this page
- /llms.txt [direct]
- Skip to main content [direct]
- Model Context Protocol home page [direct]
- Blog [direct]
- GitHub [direct]
- Documentation [direct]
- Specification [direct]
- Extensions [direct]
- Registry [direct]
- SEPs [direct]
- Community [direct]
- SEP-414: Document OpenTelemetry Trace Context Pr… [direct]
- SEP-932: Model Context Protocol Governance [direct]
- SEP-985: Align OAuth 2.0 Protected Resource Meta… [direct]
- SEP-986: Specify Format for Tool Names [direct]
- SEP-990: Enable enterprise IdP policy controls d… [direct]
- SEP-991: Enable URL-based Client Registration us… [direct]
- SEP-994: Shared Communication Practices/Guidelin… [direct]
- SEP-1024: MCP Client Security Requirements for Lo… [direct]
- SEP-1034: Support default values for all primitiv… [direct]
- SEP-1036: URL Mode Elicitation for secure out-of-… [direct]
- SEP-1046: Support OAuth client credentials flow i… [direct]
- SEP-1302: Formalize Working Groups and Interest G… [direct]
- SEP-1303: Input Validation Errors as Tool Executi… [direct]
- SEP-1319: Decouple Request Payload from RPC Metho… [direct]
- SEP-1330: Elicitation Enum Schema Improvements an… [direct]
- SEP-1577: Sampling With Tools [direct]
- SEP-1613: Establish JSON Schema 2020-12 as Defaul… [direct]
- SEP-1686: Tasks [direct]
- SEP-1699: Support SSE polling via server-side dis… [direct]
- SEP-1730: SDKs Tiering System [direct]
- SEP-1850: PR-Based SEP Workflow [direct]
- SEP-1865: MCP Apps - Interactive User Interfaces… [direct]
- SEP-2085: Governance Succession and Amendment Pro… [direct]
- SEP-2106: Tools `inputSchema` & `outputSchema` Co… [direct]
- SEP-2133: Extensions [direct]
- SEP-2148: MCP Contributor Ladder [direct]
- SEP-2149: MCP Group Governance and Charter Templa… [direct]
- SEP-2164: Standardize Resource Not Found Error Co… [direct]
- SEP-2207: OIDC-Flavored Refresh Token Guidance [direct]
- SEP-2243: HTTP Header Standardization for Streama… [direct]
- SEP-2260: Require Server requests to be associate… [direct]
- SEP-2322: Multi Round-Trip Requests [direct]
- SEP-2468: Recommend Issuer (iss) Parameter in MCP… [direct]
- SEP-2484: Require Conformance Tests for Standards… [direct]
- SEP-2549: TTL for List Results [direct]
- SEP-2567: Sessionless MCP via Explicit State Hand… [direct]
- SEP-2575: Make MCP Stateless [direct]
- SEP-2577: Deprecate Roots, Sampling, and Logging [direct]
- SEP-2596: Specification Feature Lifecycle and Dep… [direct]
- SEP-2663: Tasks Extension [direct]
- current
specification [direct]
- @jesselumarie [direct]
- #973 [direct]
|
|