converse-mcp-server 2.22.7 → 2.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/API.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- The Converse MCP Server provides four main tools through the Model Context Protocol (MCP):
5
+ The Converse MCP Server provides five main tools through the Model Context Protocol (MCP):
6
6
 
7
7
  1. **Chat Tool** - Single-provider conversational AI with context support and AI summarization
8
8
  2. **Consensus Tool** - Multi-provider parallel execution with response aggregation and combined summaries
9
- 3. **Check Status Tool** - Monitor and retrieve results from asynchronous operations with intelligent summaries
10
- 4. **Cancel Job Tool** - Cancel running background operations
9
+ 3. **Conversation Tool** - Turn-based multi-model round-table where models respond sequentially, each seeing the full running transcript
10
+ 4. **Check Status Tool** - Monitor and retrieve results from asynchronous operations with intelligent summaries
11
+ 5. **Cancel Job Tool** - Cancel running background operations
11
12
 
12
13
  All tools support both **synchronous** (immediate response) and **asynchronous** (background processing) execution modes. When AI summarization is enabled, tools automatically generate titles and summaries for better context understanding.
13
14
 
@@ -350,6 +351,165 @@ conv_architecture_design/
350
351
  }
351
352
  ```
352
353
 
354
+ ### Conversation Tool
355
+
356
+ **Description**: Turn-based multi-model round-table. Unlike consensus (parallel, all models answer the same prompt), models here respond **sequentially in the order given**, and each model sees the full running transcript of every turn before it. One tool call runs exactly **one lap** (one turn per model). The caller drives more laps by passing back the returned `continuation_id`; every lap appends to one shared, accumulating transcript that all models see.
357
+
358
+ #### Request Schema
359
+
360
+ ```json
361
+ {
362
+ "type": "object",
363
+ "properties": {
364
+ "prompt": {
365
+ "type": "string",
366
+ "description": "The topic or question to open the round-table with. Example: 'Critique this caching strategy and propose improvements.'"
367
+ },
368
+ "models": {
369
+ "type": "array",
370
+ "items": {"type": "string"},
371
+ "minItems": 1,
372
+ "description": "Ordered list of models. ORDER MATTERS: models speak one after another in this exact order, each seeing the transcript of those before it. Example: ['codex', 'gemini', 'claude']"
373
+ },
374
+ "continuation_id": {
375
+ "type": "string",
376
+ "description": "Thread continuation ID for running more laps. Auto-generated in the first response; pass it back to run another lap where every model again sees the full accumulated transcript. You MAY change the models list on a resuming lap."
377
+ },
378
+ "turn_prompt": {
379
+ "type": "string",
380
+ "description": "Optional custom per-turn instruction appended to the round-table framing each model receives. Example: 'Focus on security implications in your turn.'"
381
+ },
382
+ "files": {
383
+ "type": "array",
384
+ "items": {"type": "string"},
385
+ "description": "File paths shared with every participant in the lap. Supports line ranges: file.txt{10:50}."
386
+ },
387
+ "images": {
388
+ "type": "array",
389
+ "items": {"type": "string"},
390
+ "description": "Image paths for visual context (absolute paths or base64)."
391
+ },
392
+ "temperature": {
393
+ "type": "number",
394
+ "minimum": 0.0,
395
+ "maximum": 1.0,
396
+ "default": 0.2,
397
+ "description": "Response randomness. Examples: 0.1 (very focused), 0.2 (analytical), 0.5 (balanced)"
398
+ },
399
+ "reasoning_effort": {
400
+ "type": "string",
401
+ "enum": ["none", "minimal", "low", "medium", "high", "max"],
402
+ "default": "medium",
403
+ "description": "Reasoning depth for thinking models."
404
+ },
405
+ "use_websearch": {
406
+ "type": "boolean",
407
+ "default": false,
408
+ "description": "Enable web search for current information (models that support it)."
409
+ },
410
+ "async": {
411
+ "type": "boolean",
412
+ "default": false,
413
+ "description": "Execute the lap in background with per-turn progress tracking. Returns continuation_id immediately."
414
+ },
415
+ "export": {
416
+ "type": "boolean",
417
+ "default": false,
418
+ "description": "Export conversation to disk. Creates folder with continuation_id name containing numbered request/response files and metadata."
419
+ }
420
+ },
421
+ "required": ["prompt", "models"]
422
+ }
423
+ ```
424
+
425
+ #### Response Format
426
+
427
+ **Synchronous Response (async=false):**
428
+
429
+ The response content begins with a status line and `continuation_id:` line (the status line is omitted in the test environment), followed by a JSON result object:
430
+
431
+ ```
432
+ ✅ COMPLETED | CONVERSATION | conv_abc123 | 3.2s elapsed | 2/2 turns | codex, gemini
433
+ continuation_id: conv_abc123
434
+
435
+ {
436
+ "status": "conversation_complete",
437
+ "models_consulted": 2,
438
+ "successful_turns": 2,
439
+ "failed_turns": 0,
440
+ "turns": [
441
+ {
442
+ "model": "codex",
443
+ "provider": "codex",
444
+ "status": "success",
445
+ "response": "Opening analysis of the caching strategy...",
446
+ "position": 0
447
+ },
448
+ {
449
+ "model": "gemini",
450
+ "provider": "gemini-cli",
451
+ "status": "success",
452
+ "response": "Building on codex's point about TTLs, I'd add...",
453
+ "position": 1
454
+ }
455
+ ],
456
+ "continuation": {
457
+ "id": "conv_abc123",
458
+ "messageCount": 3
459
+ },
460
+ "settings": {
461
+ "temperature": 0.2,
462
+ "models_requested": ["codex", "gemini"]
463
+ }
464
+ }
465
+ ```
466
+
467
+ A turn that failed is recorded with `"status": "failed"` and an `"error"` note rather than aborting the lap; the response reports `successful_turns`/`models_consulted` accordingly and lists failed models in trailing failure details.
468
+
469
+ **Asynchronous Response (async=true):**
470
+ ```json
471
+ {
472
+ "content": "⏳ SUBMITTED | CONVERSATION | conv_xyz789 | 1/1 | Started: 01/12/2023 10:30:00 | \"Caching Round-Table\" | codex, gemini",
473
+ "continuation": {
474
+ "id": "conv_xyz789",
475
+ "status": "processing"
476
+ },
477
+ "async_execution": true
478
+ }
479
+ ```
480
+
481
+ When complete, `check_status` for the continuation_id renders the full lap transcript (the async result carries a top-level `content` field with the rendered transcript) plus the AI-generated title and final summary.
482
+
483
+ #### Example Usage
484
+
485
+ **Basic two-model lap:**
486
+ ```json
487
+ {
488
+ "prompt": "Should we adopt event sourcing for the order service?",
489
+ "models": ["codex", "gemini"]
490
+ }
491
+ ```
492
+
493
+ **Continuing the round-table (another lap):**
494
+ ```json
495
+ {
496
+ "prompt": "Now focus specifically on the migration path.",
497
+ "models": ["codex", "gemini"],
498
+ "continuation_id": "conv_abc123"
499
+ }
500
+ ```
501
+
502
+ **Async round-table with a custom per-turn instruction:**
503
+ ```json
504
+ {
505
+ "prompt": "Review this module design.",
506
+ "models": ["codex", "gemini", "claude"],
507
+ "files": ["/project/src/orders/design.md"],
508
+ "turn_prompt": "Call out concrete failure modes you would test for.",
509
+ "async": true
510
+ }
511
+ ```
512
+
353
513
  ## Supported Models
354
514
 
355
515
  ### OpenAI Models
@@ -1271,7 +1431,7 @@ describe('New Provider', () => {
1271
1431
 
1272
1432
  ### Overview
1273
1433
 
1274
- Both Chat and Consensus tools support asynchronous execution mode for long-running operations. When `async: true` is specified:
1434
+ The Chat, Consensus, and Conversation tools support asynchronous execution mode for long-running operations. When `async: true` is specified:
1275
1435
 
1276
1436
  1. **Immediate Response**: Returns a `continuation_id` instantly
1277
1437
  2. **Background Processing**: Job runs in the background with streaming support