{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MXCP Prompt Definition Schema", "type": "object", "required": ["mxcp", "prompt"], "properties": { "mxcp": { "type": "integer", "description": "Schema version. Must be 1.", "enum": [1], "default": 1 }, "prompt": { "$ref": "#/definitions/promptDefinition", "description": "Defines an MCP prompt endpoint." }, "metadata": { "type": "object", "properties": { "title": { "type": "string", "description": "Short display title." }, "description": { "type": "string", "description": "Longer description." } }, "description": "Optional metadata for documentation purposes." } }, "definitions": { "promptDefinition": { "type": "object", "required": ["name"], "properties": { "name": { "type": "string", "description": "Logical name identifying this prompt.", "minLength": 1 }, "description": { "type": "string", "description": "Description of this prompt." }, "tags": { "type": "array", "items": { "type": "string" }, "description": "Tags to classify the prompt." }, "parameters": { "type": "array", "description": "Input parameters used to populate the prompt.", "items": { "$ref": "common-types-schema-1.json#/definitions/paramDefinition" } }, "messages": { "type": "array", "description": "List of structured prompt messages forming the full prompt sequence.", "items": { "type": "object", "required": ["prompt"], "properties": { "role": { "type": "string", "description": "The role of the speaker of the message (e.g. 'user', 'assistant', 'system')." }, "type": { "type": "string", "description": "The content type of the message (e.g. 'text')." }, "prompt": { "type": "string", "description": "The templated prompt text (supports Jinja syntax)." } }, "additionalProperties": false } } } } } }