@@ -7,7 +7,18 @@ import { connectToServer } from './client-helper.js';
77
88export class PromptsListScenario implements ClientScenario {
99 name = 'prompts-list' ;
10- description = 'Test listing available prompts' ;
10+ description = `Test listing available prompts.
11+
12+ **Server Implementation Requirements:**
13+
14+ **Endpoint**: \`prompts/list\`
15+
16+ **Requirements**:
17+ - Return array of all available prompts
18+ - Each prompt MUST have:
19+ - \`name\` (string)
20+ - \`description\` (string)
21+ - \`arguments\` (array, optional) - list of required arguments` ;
1122
1223 async run ( serverUrl : string ) : Promise < ConformanceCheck [ ] > {
1324 const checks : ConformanceCheck [ ] = [ ] ;
@@ -76,7 +87,25 @@ export class PromptsListScenario implements ClientScenario {
7687
7788export class PromptsGetSimpleScenario implements ClientScenario {
7889 name = 'prompts-get-simple' ;
79- description = 'Test getting a simple prompt without arguments' ;
90+ description = `Test getting a simple prompt without arguments.
91+
92+ **Server Implementation Requirements:**
93+
94+ Implement a prompt named \`test_simple_prompt\` with no arguments that returns:
95+
96+ \`\`\`json
97+ {
98+ "messages": [
99+ {
100+ "role": "user",
101+ "content": {
102+ "type": "text",
103+ "text": "This is a simple prompt for testing."
104+ }
105+ }
106+ ]
107+ }
108+ \`\`\`` ;
80109
81110 async run ( serverUrl : string ) : Promise < ConformanceCheck [ ] > {
82111 const checks : ConformanceCheck [ ] = [ ] ;
@@ -142,7 +171,29 @@ export class PromptsGetSimpleScenario implements ClientScenario {
142171
143172export class PromptsGetWithArgsScenario implements ClientScenario {
144173 name = 'prompts-get-with-args' ;
145- description = 'Test parameterized prompt' ;
174+ description = `Test parameterized prompt.
175+
176+ **Server Implementation Requirements:**
177+
178+ Implement a prompt named \`test_prompt_with_arguments\` with arguments:
179+ - \`arg1\` (string, required) - First test argument
180+ - \`arg2\` (string, required) - Second test argument
181+
182+ Returns (with args \`{arg1: "hello", arg2: "world"}\`):
183+
184+ \`\`\`json
185+ {
186+ "messages": [
187+ {
188+ "role": "user",
189+ "content": {
190+ "type": "text",
191+ "text": "Prompt with arguments: arg1='hello', arg2='world'"
192+ }
193+ }
194+ ]
195+ }
196+ \`\`\`` ;
146197
147198 async run ( serverUrl : string ) : Promise < ConformanceCheck [ ] > {
148199 const checks : ConformanceCheck [ ] = [ ] ;
@@ -215,7 +266,39 @@ export class PromptsGetWithArgsScenario implements ClientScenario {
215266
216267export class PromptsGetEmbeddedResourceScenario implements ClientScenario {
217268 name = 'prompts-get-embedded-resource' ;
218- description = 'Test prompt with embedded resource content' ;
269+ description = `Test prompt with embedded resource content.
270+
271+ **Server Implementation Requirements:**
272+
273+ Implement a prompt named \`test_prompt_with_embedded_resource\` with argument:
274+ - \`resourceUri\` (string, required) - URI of the resource to embed
275+
276+ Returns:
277+
278+ \`\`\`json
279+ {
280+ "messages": [
281+ {
282+ "role": "user",
283+ "content": {
284+ "type": "resource",
285+ "resource": {
286+ "uri": "<resourceUri from arguments>",
287+ "mimeType": "text/plain",
288+ "text": "Embedded resource content for testing."
289+ }
290+ }
291+ },
292+ {
293+ "role": "user",
294+ "content": {
295+ "type": "text",
296+ "text": "Please process the embedded resource above."
297+ }
298+ }
299+ ]
300+ }
301+ \`\`\`` ;
219302
220303 async run ( serverUrl : string ) : Promise < ConformanceCheck [ ] > {
221304 const checks : ConformanceCheck [ ] = [ ] ;
@@ -288,7 +371,33 @@ export class PromptsGetEmbeddedResourceScenario implements ClientScenario {
288371
289372export class PromptsGetWithImageScenario implements ClientScenario {
290373 name = 'prompts-get-with-image' ;
291- description = 'Test prompt with image content' ;
374+ description = `Test prompt with image content.
375+
376+ **Server Implementation Requirements:**
377+
378+ Implement a prompt named \`test_prompt_with_image\` with no arguments that returns:
379+
380+ \`\`\`json
381+ {
382+ "messages": [
383+ {
384+ "role": "user",
385+ "content": {
386+ "type": "image",
387+ "data": "<base64-encoded-png>",
388+ "mimeType": "image/png"
389+ }
390+ },
391+ {
392+ "role": "user",
393+ "content": {
394+ "type": "text",
395+ "text": "Please analyze the image above."
396+ }
397+ }
398+ ]
399+ }
400+ \`\`\`` ;
292401
293402 async run ( serverUrl : string ) : Promise < ConformanceCheck [ ] > {
294403 const checks : ConformanceCheck [ ] = [ ] ;
0 commit comments