converse-mcp-server 3.5.0 → 3.6.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/README.md CHANGED
@@ -293,7 +293,7 @@ Any other model works via its full `provider/model` slug or the `openrouter:` na
293
293
  ### Claude Agent SDK Models
294
294
 
295
295
  - **claude** (aliases: `claude-sdk`, `claude-code`): Claude via the Claude Agent SDK
296
- - Defaults to Claude Fable 5; pick a specific model with `claude:fable` or `claude:opus`
296
+ - Defaults to Claude Fable 5.1 (`claude-fable-5-1`); `claude:fable` and `claude:fable-5.1` select 5.1, `claude:fable-5` selects 5.0, and `claude:opus` selects Opus 5
297
297
  - Uses Claude Code CLI authentication (`claude login`) - no API key needed
298
298
  - Direct filesystem access from working directory
299
299
  - Unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
@@ -436,7 +436,7 @@ Use `"auto"` for automatic model selection, or specify exact models:
436
436
  "opus"; // -> claude-opus-4-8 (Anthropic API)
437
437
 
438
438
  // SDK providers (subscription-based, no API key)
439
- "claude"; // -> Claude Agent SDK (Claude Fable 5)
439
+ "claude"; // -> Claude Agent SDK (Claude Fable 5.1)
440
440
  "claude:opus"; // -> Claude Agent SDK (Claude Opus 4.8)
441
441
  "copilot:gpt-5.6-terra"; // -> GitHub Copilot SDK
442
442
  ```
@@ -450,7 +450,7 @@ Provider priority order (subscription-based SDK providers first, then API-key pr
450
450
 
451
451
  1. Codex (`codex`)
452
452
  2. Gemini via Antigravity CLI (`gemini` → Gemini 3.8 Flash, `gemini:pro`)
453
- 3. Claude Agent SDK (`claude` → Claude Fable 5)
453
+ 3. Claude Agent SDK (`claude` → Claude Fable 5.1)
454
454
  4. Copilot (`copilot`)
455
455
  5. OpenAI (`gpt-5.6`)
456
456
  6. Google (`gemini-pro`)
@@ -462,6 +462,8 @@ Provider priority order (subscription-based SDK providers first, then API-key pr
462
462
 
463
463
  The system will use the first 3 providers that are available (authenticated SDK or valid API key). This enables automatic multi-model consensus without manually specifying models.
464
464
 
465
+ **Antigravity CLI permissions:** The `gemini`, `gemini:flash`, and `gemini:pro` aliases launch `agy` with `--dangerously-skip-permissions` because headless calls cannot prompt for tool approval. All tool permission requests are auto-approved, including shell commands and file writes; a read-only prompt is not an enforced security boundary. Use this provider only with trusted prompts and context. This also applies when `auto` selects it. The Google API provider is unaffected.
466
+
465
467
  ### Advanced Configuration
466
468
 
467
469
  #### Manual Installation Options
package/docs/API.md CHANGED
@@ -468,11 +468,13 @@ Any other model works via its full `provider/model` slug (e.g. `anthropic/claude
468
468
 
469
469
  **Claude** is available through the Claude Agent SDK, using Claude Code CLI authentication instead of an API key:
470
470
 
471
- - **Model**: `claude` (aliases: `claude-sdk`, `claude-code`) — defaults to Claude Fable 5
472
- - **Model selection**: `claude:fable` (Claude Fable 5) or `claude:opus` (Claude Opus 5); unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
471
+ - **Model**: `claude` (aliases: `claude-sdk`, `claude-code`) — defaults to Claude Fable 5.1 (`claude-fable-5-1`)
472
+ - **Model selection**: `claude:fable` or `claude:fable-5.1` (Claude Fable 5.1), `claude:fable-5` (Claude Fable 5.0), or `claude:opus` (Claude Opus 5); unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
473
473
  - **Authentication**: `claude login` — no `ANTHROPIC_API_KEY` needed
474
474
  - **Direct file access**: reads files from the working directory
475
- - `reasoning_effort` and sampling parameters are managed by the SDK
475
+ - **Reasoning effort**: `reasoning_effort` maps to the SDK's `effort` option: `low`, `medium`, `high`, `xhigh`, or `max`; `none` and `minimal` become `low`. Omitting it retains the SDK default.
476
+ - **Turn limit**: SDK requests allow up to 100 turns (`maxTurns: 100`).
477
+ - Sampling parameters are managed by the SDK.
476
478
 
477
479
  ### Gemini via Antigravity CLI (subscription)
478
480
 
@@ -522,7 +524,7 @@ Use `"auto"` for automatic selection, or specify exact models:
522
524
  "z-ai/glm-5.2:online" // OpenRouter with web search opt-in
523
525
  "fable" // Anthropic API (-> claude-fable-5)
524
526
  "opus" // Anthropic API (-> claude-opus-5)
525
- "claude" // Claude Agent SDK (-> Claude Fable 5)
527
+ "claude" // Claude Agent SDK (-> Claude Fable 5.1)
526
528
  "claude:opus" // Claude Agent SDK (Claude Opus 5)
527
529
  "gemini" // Antigravity CLI (Gemini 3.8 Flash)
528
530
  "copilot:gpt-5.6-terra" // GitHub Copilot SDK
package/docs/PROVIDERS.md CHANGED
@@ -195,8 +195,9 @@ agy
195
195
  - **Setup Required**: Authenticate once with `claude login` (Claude Code CLI)
196
196
  - **Environment Variables**: None (uses Claude Code credentials)
197
197
  - **Supported Models**:
198
- - `claude` (aliases: `claude-sdk`, `claude-code`) - Defaults to Claude Fable 5
199
- - `claude:fable` - Claude Fable 5 explicitly
198
+ - `claude` (aliases: `claude-sdk`, `claude-code`) - Defaults to Claude Fable 5.1 (`claude-fable-5-1`)
199
+ - `claude:fable` or `claude:fable-5.1` - Claude Fable 5.1 explicitly
200
+ - `claude:fable-5` - Claude Fable 5.0 (`claude-fable-5`)
200
201
  - `claude:opus` - Claude Opus 5
201
202
  - Other `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
202
203
 
@@ -204,7 +205,9 @@ agy
204
205
  - **Subscription Access**: Uses your Claude subscription instead of API credits
205
206
  - **Local File Access**: Reads files directly from the working directory
206
207
  - **Image Support**: Via the SDK's streaming input mode
207
- - **SDK-Managed Parameters**: `reasoning_effort` and other sampling parameters are managed internally by the SDK
208
+ - **Reasoning Effort**: `reasoning_effort` maps to the SDK's `effort` option: `low`, `medium`, `high`, `xhigh`, or `max`; `none` and `minimal` become `low`. Omitting it retains the SDK default.
209
+ - **Turn Limit**: SDK requests allow up to 100 turns (`maxTurns: 100`).
210
+ - **SDK-Managed Parameters**: Sampling parameters are managed internally by the SDK.
208
211
 
209
212
  **Differences from Anthropic API Provider:**
210
213
  - **Authentication**: Claude Code login vs `ANTHROPIC_API_KEY`
@@ -341,7 +344,7 @@ The `models` array always holds plain model-name strings. Each string routes as
341
344
  "fable" // Anthropic (keyword match -> claude-fable-5)
342
345
  "opus" // Anthropic (keyword match -> claude-opus-5)
343
346
  "sonnet" // Anthropic (keyword match -> claude-sonnet-4-6)
344
- "claude" // Claude Agent SDK (defaults to Claude Fable 5)
347
+ "claude" // Claude Agent SDK (defaults to Claude Fable 5.1)
345
348
  "claude:opus" // Claude Agent SDK (Claude Opus 5)
346
349
  "gemini-2.5-pro" // Google (keyword match)
347
350
  "grok-4.5" // X.AI (keyword match)
@@ -391,4 +394,4 @@ The `models` array always holds plain model-name strings. Each string routes as
391
394
  - The 8 curated slugs work out of the box; the default is `z-ai/glm-5.2`
392
395
  - Any other model works via its full `provider/model` slug or the `openrouter:` namespace — no extra configuration
393
396
  - The first request to a non-curated slug fetches its capabilities from OpenRouter's live catalog; a slug absent from that catalog fails before inference with `MODEL_NOT_FOUND`
394
- - Append `:online` to a slug to enable web search for that request (adds a real per-request cost)
397
+ - Append `:online` to a slug to enable web search for that request (adds a real per-request cost)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "converse-mcp-server",
3
- "version": "3.5.0",
3
+ "version": "3.6.1",
4
4
  "description": "Converse MCP Server - Converse with other LLMs with chat and consensus tools",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -93,14 +93,14 @@
93
93
  ".env.example"
94
94
  ],
95
95
  "dependencies": {
96
- "@anthropic-ai/claude-agent-sdk": "^0.3.261",
97
- "@anthropic-ai/sdk": "^0.123.0",
98
- "@github/copilot-sdk": "^1.0.11",
96
+ "@anthropic-ai/claude-agent-sdk": "^0.3.263",
97
+ "@anthropic-ai/sdk": "^0.124.0",
98
+ "@github/copilot-sdk": "^1.0.13",
99
99
  "@google/genai": "^2.21.0",
100
100
  "@lydell/node-pty": "1.2.0-beta.15",
101
101
  "@mistralai/mistralai": "^2.6.4",
102
102
  "@modelcontextprotocol/sdk": "^1.30.0",
103
- "@openai/codex-sdk": "^0.153.3",
103
+ "@openai/codex-sdk": "^0.153.4",
104
104
  "cors": "^2.8.6",
105
105
  "dotenv": "^17.4.2",
106
106
  "express": "^5.2.1",
@@ -15,13 +15,15 @@
15
15
 
16
16
  import { debugLog, debugError } from '../utils/console.js';
17
17
  import { ProviderError, ErrorCodes, StopReasons } from './interface.js';
18
+ import { clampReasoningEffort } from '../utils/reasoningEffort.js';
18
19
 
19
20
  // Default underlying model when the request is just "claude" (or "claude:fable")
20
- const DEFAULT_SDK_MODEL = 'claude-fable-5';
21
+ const DEFAULT_SDK_MODEL = 'claude-fable-5-1';
22
+ const SDK_EFFORT_TIERS = ['low', 'medium', 'high', 'xhigh', 'max'];
21
23
 
22
24
  // Supported Claude SDK models with their configurations
23
25
  const SUPPORTED_MODELS = {
24
- fable: {
26
+ 'fable-5': {
25
27
  modelName: 'claude-fable-5',
26
28
  friendlyName: 'Claude Fable 5 (via Agent SDK)',
27
29
  contextWindow: 1000000,
@@ -31,15 +33,30 @@ const SUPPORTED_MODELS = {
31
33
  supportsWebSearch: false, // SDK accesses files directly, not web
32
34
  timeout: 1800000, // 30 minutes
33
35
  description:
34
- 'Claude Fable 5 via Agent SDK (default) - requires claude login authentication',
36
+ 'Claude Fable 5 via Agent SDK - requires claude login authentication',
37
+ aliases: ['claude-fable-5'],
38
+ },
39
+ fable: {
40
+ modelName: 'claude-fable-5-1',
41
+ friendlyName: 'Claude Fable 5.1 (via Agent SDK)',
42
+ contextWindow: 1000000,
43
+ maxOutputTokens: 128000,
44
+ supportsStreaming: true,
45
+ supportsImages: true,
46
+ supportsWebSearch: false,
47
+ timeout: 1800000,
48
+ description:
49
+ 'Claude Fable 5.1 via Agent SDK (default) - requires claude login authentication',
35
50
  aliases: [
36
51
  'claude',
37
52
  'claude-sdk',
38
53
  'claude-code',
39
54
  'claude:fable',
40
- 'claude-fable-5',
41
55
  'claude-fable',
42
- 'fable-5',
56
+ 'claude-fable-5-1',
57
+ 'claude-fable-5.1',
58
+ 'fable-5-1',
59
+ 'fable-5.1',
43
60
  ],
44
61
  },
45
62
  opus: {
@@ -138,7 +155,7 @@ function findModelConfig(modelName) {
138
155
 
139
156
  /**
140
157
  * Resolve the requested model to the underlying SDK model ID.
141
- * - "claude" (and bare "claude:") defaults to Claude Fable 5
158
+ * - "claude" (and bare "claude:") defaults to Claude Fable 5.1
142
159
  * - "claude:fable" / "claude:opus" select the specific model
143
160
  * - Unknown names are passed through (after prefix stripping) so users can
144
161
  * target any model ID the Agent SDK accepts (e.g. "claude:claude-sonnet-4-6")
@@ -299,19 +316,13 @@ async function* createStreamingGenerator(
299
316
  signal,
300
317
  ) {
301
318
  try {
302
- // Build query options
303
- // Use higher maxTurns to allow for file reading operations
304
319
  const queryOptions = {
320
+ ...options,
305
321
  model: options.model || DEFAULT_SDK_MODEL,
306
- maxTurns: 20, // Allow multiple turns for file operations
322
+ maxTurns: 100,
307
323
  permissionMode: 'bypassPermissions', // Don't prompt for permissions
308
324
  };
309
325
 
310
- // Add working directory if provided
311
- if (options.cwd) {
312
- queryOptions.cwd = options.cwd;
313
- }
314
-
315
326
  // Pass abort controller if provided
316
327
  // Note: The SDK expects AbortController, not AbortSignal
317
328
  if (signal) {
@@ -459,13 +470,6 @@ export const claudeProvider = {
459
470
  );
460
471
  }
461
472
 
462
- // Log unsupported parameters at debug level
463
- if (reasoning_effort !== undefined) {
464
- debugLog(
465
- '[Claude SDK] Parameter "reasoning_effort" not supported by Claude SDK (ignored)',
466
- );
467
- }
468
-
469
473
  try {
470
474
  // Get Claude SDK
471
475
  const query = await getClaudeSDK();
@@ -481,7 +485,6 @@ export const claudeProvider = {
481
485
  debugLog('[Claude SDK] Using streaming input mode for image support');
482
486
  }
483
487
 
484
- // Resolve requested model (claude/claude:fable -> claude-fable-5, claude:opus -> claude-opus-5)
485
488
  const sdkModel = resolveSdkModel(model);
486
489
  debugLog(`[Claude SDK] Resolved model "${model}" -> "${sdkModel}"`);
487
490
 
@@ -490,6 +493,9 @@ export const claudeProvider = {
490
493
  cwd: config.server?.client_cwd || process.cwd(),
491
494
  model: sdkModel,
492
495
  };
496
+ if (reasoning_effort !== undefined) {
497
+ sdkOptions.effort = clampReasoningEffort(reasoning_effort, SDK_EFFORT_TIERS);
498
+ }
493
499
 
494
500
  // Streaming mode
495
501
  if (stream) {
@@ -467,6 +467,7 @@ export async function runAgy({
467
467
  const args = [
468
468
  '-p',
469
469
  promptArg,
470
+ '--dangerously-skip-permissions',
470
471
  '--model',
471
472
  model,
472
473
  '--print-timeout',