{ jsonrpc:"2.0"; id:string | number; method:string; params?: { [key: string]: unknown; };}null.{ jsonrpc:"2.0"; id:string | number; result: { [key:string]:unknown; }}result field.resultMAY follow any JSON object structure.{ jsonrpc:"2.0"; id?: string | number; error: { code:number; message:string; data?: unknown; }}error field with acode andmessage.{ jsonrpc:"2.0"; method:string; params?: { [key: string]: unknown; };}$schema field, it defaults to JSON Schema 2020-12 (https://json-schema.org/draft/2020-12/schema)$schema field to specify a different dialect{ "type":"object", "properties": { "name": {"type":"string" }, "age": {"type":"integer","minimum":0 } }, "required": ["name"]}{ "$schema":"http://json-schema.org/draft-07/schema#", "type":"object", "properties": { "name": {"type":"string" }, "age": {"type":"integer","minimum":0 } }, "required": ["name"]}$schema field_meta_meta property/parameter is reserved by MCP to allow clients and serversto attach additional metadata to their interactions.Certain key names are reserved by MCP for protocol-level metadata, as specified below;implementations MUST NOT make assumptions about values at these keys.Additionally, definitions in theschemamay reserve particular names for purpose-specific metadata, as declared in those definitions.Key name format: valid_meta key names have two segments: an optionalprefix, and aname.Prefix:.), followed by a slash (/).-).com.example/ rather thanexample.com/).modelcontextprotocol ormcp isreserved for MCP use.io.modelcontextprotocol/,dev.mcp/,org.modelcontextprotocol.api/, andcom.mcp.tools/ are all reserved.com.example.mcp/ is NOT reserved, as the second label isexample.[a-z0-9A-Z]).-), underscores (_), dots (.), and alphanumerics in between.iconsicons property provides a standardized way for servers to expose visual identifiers for their resources, tools, prompts, and implementations. Icons enhance user interfaces by providing visual context and improving the discoverability of available functionality.Icons are represented as an array ofIcon objects, where each icon includes:src: A URI pointing to the icon resource (required). This can be:mimeType: Optional MIME type if the server’s type is missing or genericsizes: Optional array of size specifications (e.g.,["48x48"],["any"] for scalable formats like SVG, or["48x48", "96x96"] for multiple sizes)theme: Optional theme preference (light ordark) for the icon backgroundimage/png - PNG images (safe, universal compatibility)image/jpeg (andimage/jpg) - JPEG images (safe, universal compatibility)image/svg+xml - SVG images (scalable but requires security precautions as noted below)image/webp - WebP images (modern, efficient format)data: URI. ClientsMUST reject icon URIs that use unsafe schemes and redirects, such as#"https://www.w3.org/TR/SVG11/script.html" rel="noreferrer">embedded JavaScript orextended capabilities).- ConsumersMAY choose to disallow specific file types or otherwise sanitize icon files before rendering.
Implementation: Visual identifier for the MCP server/client implementationTool: Visual representation of the tool’s functionalityPrompt: Icon to display alongside prompt templatesResource: Visual indicator for different resource typesWas this page helpful?