mcp-rubber-duck 1.2.5 → 1.4.0

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.
Files changed (51) hide show
  1. package/.env.desktop.example +1 -1
  2. package/.env.pi.example +1 -1
  3. package/.env.template +1 -1
  4. package/.eslintrc.json +1 -0
  5. package/CHANGELOG.md +19 -0
  6. package/README.md +238 -44
  7. package/assets/mcp-rubber-duck.png +0 -0
  8. package/audit-ci.json +2 -1
  9. package/config/config.example.json +4 -4
  10. package/dist/config/config.js +4 -4
  11. package/dist/config/config.js.map +1 -1
  12. package/dist/config/types.d.ts +78 -0
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +150 -0
  16. package/dist/server.js.map +1 -1
  17. package/dist/services/consensus.d.ts +28 -0
  18. package/dist/services/consensus.d.ts.map +1 -0
  19. package/dist/services/consensus.js +257 -0
  20. package/dist/services/consensus.js.map +1 -0
  21. package/dist/tools/duck-debate.d.ts +16 -0
  22. package/dist/tools/duck-debate.d.ts.map +1 -0
  23. package/dist/tools/duck-debate.js +272 -0
  24. package/dist/tools/duck-debate.js.map +1 -0
  25. package/dist/tools/duck-iterate.d.ts +14 -0
  26. package/dist/tools/duck-iterate.d.ts.map +1 -0
  27. package/dist/tools/duck-iterate.js +195 -0
  28. package/dist/tools/duck-iterate.js.map +1 -0
  29. package/dist/tools/duck-judge.d.ts +15 -0
  30. package/dist/tools/duck-judge.d.ts.map +1 -0
  31. package/dist/tools/duck-judge.js +208 -0
  32. package/dist/tools/duck-judge.js.map +1 -0
  33. package/dist/tools/duck-vote.d.ts +14 -0
  34. package/dist/tools/duck-vote.d.ts.map +1 -0
  35. package/dist/tools/duck-vote.js +46 -0
  36. package/dist/tools/duck-vote.js.map +1 -0
  37. package/docker-compose.yml +1 -1
  38. package/package.json +1 -1
  39. package/src/config/config.ts +4 -4
  40. package/src/config/types.ts +92 -0
  41. package/src/server.ts +154 -0
  42. package/src/services/consensus.ts +324 -0
  43. package/src/tools/duck-debate.ts +383 -0
  44. package/src/tools/duck-iterate.ts +253 -0
  45. package/src/tools/duck-judge.ts +301 -0
  46. package/src/tools/duck-vote.ts +87 -0
  47. package/tests/consensus.test.ts +282 -0
  48. package/tests/duck-debate.test.ts +286 -0
  49. package/tests/duck-iterate.test.ts +249 -0
  50. package/tests/duck-judge.test.ts +296 -0
  51. package/tests/duck-vote.test.ts +250 -0
@@ -40,7 +40,7 @@ MCP_SERVER=true
40
40
 
41
41
  # OpenAI (required - get from https://platform.openai.com/api-keys)
42
42
  OPENAI_API_KEY=sk-your-openai-key-here
43
- OPENAI_DEFAULT_MODEL=gpt-4o
43
+ OPENAI_DEFAULT_MODEL=gpt-5.1
44
44
 
45
45
  # Google Gemini (optional - get from https://aistudio.google.com/apikey)
46
46
  GEMINI_API_KEY=your-gemini-key-here
package/.env.pi.example CHANGED
@@ -40,7 +40,7 @@ MCP_SERVER=true
40
40
 
41
41
  # OpenAI (required - get from https://platform.openai.com/api-keys)
42
42
  OPENAI_API_KEY=sk-your-openai-key-here
43
- OPENAI_DEFAULT_MODEL=gpt-4o-mini
43
+ OPENAI_DEFAULT_MODEL=gpt-5.1
44
44
 
45
45
  # Google Gemini (optional - get from https://aistudio.google.com/apikey)
46
46
  GEMINI_API_KEY=your-gemini-key-here
package/.env.template CHANGED
@@ -48,7 +48,7 @@ MCP_SERVER=true
48
48
  # OpenAI (https://platform.openai.com/api-keys)
49
49
  # Get your API key from: https://platform.openai.com/account/api-keys
50
50
  OPENAI_API_KEY=sk-your-openai-key-here
51
- OPENAI_DEFAULT_MODEL=gpt-4o-mini
51
+ OPENAI_DEFAULT_MODEL=gpt-5.1
52
52
 
53
53
  # Google Gemini (https://aistudio.google.com/apikey)
54
54
  # Get your API key from: https://aistudio.google.com/apikey
package/.eslintrc.json CHANGED
@@ -35,6 +35,7 @@
35
35
  "dist/",
36
36
  "node_modules/",
37
37
  "coverage/",
38
+ "tests/",
38
39
  "*.config.js"
39
40
  ]
40
41
  }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # [1.4.0](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.3.0...v1.4.0) (2025-11-30)
2
+
3
+
4
+ ### Features
5
+
6
+ * add support for latest LLM models (Nov 2025) ([80ce45f](https://github.com/nesquikm/mcp-rubber-duck/commit/80ce45f8222762ea1b12af07fd54e9a19ac8532c))
7
+
8
+ # [1.3.0](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.5...v1.3.0) (2025-11-24)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * improve JSON parsing in consensus and judge tools ([92f64e5](https://github.com/nesquikm/mcp-rubber-duck/commit/92f64e525681886bfe791d72b07f71511da62ee0))
14
+
15
+
16
+ ### Features
17
+
18
+ * add multi-agent consensus and debate tools ([55352d8](https://github.com/nesquikm/mcp-rubber-duck/commit/55352d856d59ede6cb0e8a9d763c27afe3a9e33e))
19
+
1
20
  ## [1.2.5](https://github.com/nesquikm/mcp-rubber-duck/compare/v1.2.4...v1.2.5) (2025-11-24)
2
21
 
3
22
 
package/README.md CHANGED
@@ -6,21 +6,42 @@ An MCP (Model Context Protocol) server that acts as a bridge to query multiple O
6
6
  [![Docker Image](https://img.shields.io/badge/docker-ghcr.io-blue)](https://github.com/nesquikm/mcp-rubber-duck/pkgs/container/mcp-rubber-duck)
7
7
  [![MCP Registry](https://img.shields.io/badge/MCP-Registry-green)](https://modelcontextprotocol.io/registry)
8
8
 
9
- ```
10
- __
11
- <(o )___
12
- ( ._> /
13
- `---' Quack! Ready to debug!
14
- ```
9
+ <p align="center">
10
+ <img src="assets/mcp-rubber-duck.png" alt="MCP Rubber Duck - AI ducks helping debug code" width="600">
11
+ </p>
12
+
13
+ ## Table of Contents
14
+
15
+ - [Features](#features)
16
+ - [Supported Providers](#supported-providers)
17
+ - [Quick Start](#quick-start)
18
+ - [Installation](#installation)
19
+ - [Configuration](#configuration)
20
+ - [Claude Desktop Configuration](#claude-desktop-configuration)
21
+ - [MCP Bridge](#mcp-bridge---connect-to-other-mcp-servers)
22
+ - [Available Tools](#available-tools)
23
+ - [Basic Tools](#basic-tools)
24
+ - [Multi-Agent Tools](#multi-agent-consensus--debate-tools)
25
+ - [MCP Bridge Tools](#mcp-bridge-tools)
26
+ - [Usage Examples](#usage-examples)
27
+ - [Provider-Specific Setup](#provider-specific-setup)
28
+ - [Docker Support](#docker-support)
29
+ - [Development](#development)
30
+ - [Troubleshooting](#troubleshooting)
31
+ - [Contributing](#contributing)
15
32
 
16
33
  ## Features
17
34
 
18
35
  - 🔌 **Universal OpenAI Compatibility**: Works with any OpenAI-compatible API endpoint
19
- - 🦆 **Multiple Ducks**: Configure and query multiple LLM providers simultaneously
36
+ - 🦆 **Multiple Ducks**: Configure and query multiple LLM providers simultaneously
20
37
  - 💬 **Conversation Management**: Maintain context across multiple messages
21
38
  - 🏛️ **Duck Council**: Get responses from all your configured LLMs at once
39
+ - 🗳️ **Consensus Voting**: Multi-duck voting with reasoning and confidence scores
40
+ - ⚖️ **LLM-as-Judge**: Have ducks evaluate and rank each other's responses
41
+ - 🔄 **Iterative Refinement**: Two ducks collaboratively improve responses
42
+ - 🎓 **Structured Debates**: Oxford, Socratic, and adversarial debate formats
22
43
  - 💾 **Response Caching**: Avoid duplicate API calls with intelligent caching
23
- - 🔄 **Automatic Failover**: Falls back to other providers if primary fails
44
+ - 🔁 **Automatic Failover**: Falls back to other providers if primary fails
24
45
  - 📊 **Health Monitoring**: Real-time health checks for all providers
25
46
  - 🔗 **MCP Bridge**: Connect ducks to other MCP servers for extended functionality
26
47
  - 🛡️ **Granular Security**: Per-server approval controls with session-based approvals
@@ -30,11 +51,11 @@ An MCP (Model Context Protocol) server that acts as a bridge to query multiple O
30
51
 
31
52
  Any provider with an OpenAI-compatible API endpoint, including:
32
53
 
33
- - **OpenAI** (GPT-4, GPT-3.5)
34
- - **Google Gemini** (Gemini 2.5 Flash, Gemini 2.0 Flash)
54
+ - **OpenAI** (GPT-5.1, o3, o4-mini)
55
+ - **Google Gemini** (Gemini 3, Gemini 2.5 Pro/Flash)
35
56
  - **Anthropic** (via OpenAI-compatible endpoints)
36
- - **Groq** (Llama, Mixtral, Gemma)
37
- - **Together AI** (Llama, Mixtral, and more)
57
+ - **Groq** (Llama 4, Llama 3.3)
58
+ - **Together AI** (Llama 4, Qwen, and more)
38
59
  - **Perplexity** (Online models with web search)
39
60
  - **Anyscale** (Open source models)
40
61
  - **Azure OpenAI** (Microsoft-hosted OpenAI)
@@ -44,8 +65,15 @@ Any provider with an OpenAI-compatible API endpoint, including:
44
65
 
45
66
  ## Quick Start
46
67
 
47
- ### For Claude Desktop Users
48
- 👉 **Complete Claude Desktop setup instructions below in [Claude Desktop Configuration](#claude-desktop-configuration)**
68
+ ```bash
69
+ # Install globally
70
+ npm install -g mcp-rubber-duck
71
+
72
+ # Or use npx directly in Claude Desktop config
73
+ npx mcp-rubber-duck
74
+ ```
75
+
76
+ **Using Claude Desktop?** Jump to [Claude Desktop Configuration](#claude-desktop-configuration).
49
77
 
50
78
  ## Installation
51
79
 
@@ -89,7 +117,7 @@ Create a `.env` file in the project root:
89
117
  ```env
90
118
  # OpenAI
91
119
  OPENAI_API_KEY=sk-...
92
- OPENAI_DEFAULT_MODEL=gpt-4o-mini # Optional: defaults to gpt-4o-mini
120
+ OPENAI_DEFAULT_MODEL=gpt-5.1 # Optional: defaults to gpt-5.1
93
121
 
94
122
  # Google Gemini
95
123
  GEMINI_API_KEY=...
@@ -161,20 +189,17 @@ cp config/config.example.json config/config.json
161
189
 
162
190
  This is the most common setup method for using MCP Rubber Duck with Claude Desktop.
163
191
 
164
- ### Step 1: Build the Project
192
+ ### Step 1: Install
165
193
 
166
- First, ensure the project is built:
194
+ Choose one of these options:
167
195
 
196
+ **Option A: NPM (Recommended)**
168
197
  ```bash
169
- # Clone the repository
170
- git clone https://github.com/nesquikm/mcp-rubber-duck.git
171
- cd mcp-rubber-duck
172
-
173
- # Install dependencies and build
174
- npm install
175
- npm run build
198
+ npm install -g mcp-rubber-duck
176
199
  ```
177
200
 
201
+ **Option B: From Source** (see [Installation from Source](#option-2-install-from-source))
202
+
178
203
  ### Step 2: Configure Claude Desktop
179
204
 
180
205
  Edit your Claude Desktop config file:
@@ -184,6 +209,24 @@ Edit your Claude Desktop config file:
184
209
 
185
210
  Add the MCP server configuration:
186
211
 
212
+ **If installed via NPM:**
213
+ ```json
214
+ {
215
+ "mcpServers": {
216
+ "rubber-duck": {
217
+ "command": "mcp-rubber-duck",
218
+ "env": {
219
+ "MCP_SERVER": "true",
220
+ "OPENAI_API_KEY": "your-openai-api-key-here",
221
+ "GEMINI_API_KEY": "your-gemini-api-key-here",
222
+ "DEFAULT_PROVIDER": "openai"
223
+ }
224
+ }
225
+ }
226
+ }
227
+ ```
228
+
229
+ **If installed from source:**
187
230
  ```json
188
231
  {
189
232
  "mcpServers": {
@@ -193,11 +236,8 @@ Add the MCP server configuration:
193
236
  "env": {
194
237
  "MCP_SERVER": "true",
195
238
  "OPENAI_API_KEY": "your-openai-api-key-here",
196
- "OPENAI_DEFAULT_MODEL": "gpt-4o-mini",
197
- "GEMINI_API_KEY": "your-gemini-api-key-here",
198
- "GEMINI_DEFAULT_MODEL": "gemini-2.5-flash",
199
- "DEFAULT_PROVIDER": "openai",
200
- "LOG_LEVEL": "info"
239
+ "GEMINI_API_KEY": "your-gemini-api-key-here",
240
+ "DEFAULT_PROVIDER": "openai"
201
241
  }
202
242
  }
203
243
  }
@@ -210,6 +250,8 @@ Add the MCP server configuration:
210
250
 
211
251
  **Note**: `MCP_SERVER: "true"` is required - this tells rubber-duck to run as an MCP server for any MCP client (not related to the MCP Bridge feature).
212
252
 
253
+ **Tip**: See [Configuration](#configuration) for additional options like `LOG_LEVEL`, custom model defaults, and duck nicknames.
254
+
213
255
  ### Step 3: Restart Claude Desktop
214
256
 
215
257
  1. Completely quit Claude Desktop (⌘+Q on Mac)
@@ -368,7 +410,7 @@ Ask: "Can you find React hooks documentation from Context7 and return only the k
368
410
  Duck: *searches Context7 and returns focused, essential React hooks information*
369
411
  ```
370
412
 
371
- ### 💡 Token Optimization Benefits
413
+ ### Token Optimization Benefits
372
414
 
373
415
  **Smart Token Management**: Ducks can retrieve comprehensive data from MCP servers but return only the essential information you need, saving tokens in your host LLM conversations:
374
416
 
@@ -395,9 +437,11 @@ When using `always` mode, the system remembers your approvals:
395
437
 
396
438
  This eliminates approval fatigue while maintaining security!
397
439
 
398
- ### Available Tools (Enhanced with MCP)
440
+ ## Available Tools
441
+
442
+ ### Basic Tools
399
443
 
400
- ### 🦆 ask_duck
444
+ #### 🦆 ask_duck
401
445
  Ask a single question to a specific LLM provider. When MCP Bridge is enabled, ducks can automatically access tools from connected MCP servers.
402
446
 
403
447
  ```typescript
@@ -408,7 +452,7 @@ Ask a single question to a specific LLM provider. When MCP Bridge is enabled, du
408
452
  }
409
453
  ```
410
454
 
411
- ### 💬 chat_with_duck
455
+ #### 💬 chat_with_duck
412
456
  Have a conversation with context maintained across messages.
413
457
 
414
458
  ```typescript
@@ -419,7 +463,7 @@ Have a conversation with context maintained across messages.
419
463
  }
420
464
  ```
421
465
 
422
- ### 🧹 clear_conversations
466
+ #### 🧹 clear_conversations
423
467
  Clear all conversation history and start fresh. Useful when switching topics or when context becomes too large.
424
468
 
425
469
  ```typescript
@@ -428,7 +472,7 @@ Clear all conversation history and start fresh. Useful when switching topics or
428
472
  }
429
473
  ```
430
474
 
431
- ### 📋 list_ducks
475
+ #### 📋 list_ducks
432
476
  List all configured providers and their health status.
433
477
 
434
478
  ```typescript
@@ -437,7 +481,7 @@ List all configured providers and their health status.
437
481
  }
438
482
  ```
439
483
 
440
- ### 📊 list_models
484
+ #### 📊 list_models
441
485
  List available models for LLM providers.
442
486
 
443
487
  ```typescript
@@ -447,7 +491,7 @@ List available models for LLM providers.
447
491
  }
448
492
  ```
449
493
 
450
- ### 🔍 compare_ducks
494
+ #### 🔍 compare_ducks
451
495
  Ask the same question to multiple providers simultaneously.
452
496
 
453
497
  ```typescript
@@ -457,7 +501,7 @@ Ask the same question to multiple providers simultaneously.
457
501
  }
458
502
  ```
459
503
 
460
- ### 🏛️ duck_council
504
+ #### 🏛️ duck_council
461
505
  Get responses from all configured ducks - like a panel discussion!
462
506
 
463
507
  ```typescript
@@ -466,6 +510,103 @@ Get responses from all configured ducks - like a panel discussion!
466
510
  }
467
511
  ```
468
512
 
513
+ ### Multi-Agent Consensus & Debate Tools
514
+
515
+ Research-backed tools for multi-agent coordination.
516
+
517
+ #### 🗳️ duck_vote
518
+ Have multiple ducks vote on options with reasoning and confidence scores.
519
+
520
+ ```typescript
521
+ {
522
+ "question": "Best approach for error handling?",
523
+ "options": ["try-catch", "Result type", "Either monad"],
524
+ "voters": ["openai", "gemini"], // Optional, uses all if not specified
525
+ "require_reasoning": true // Optional, default: true
526
+ }
527
+ ```
528
+
529
+ Returns vote tally, confidence scores, and consensus level (unanimous, majority, plurality, split, none).
530
+
531
+ #### ⚖️ duck_judge
532
+ Have one duck evaluate and rank other ducks' responses. Use after `duck_council`.
533
+
534
+ ```typescript
535
+ {
536
+ "responses": [/* responses from duck_council */],
537
+ "judge": "openai", // Optional, uses first available
538
+ "criteria": ["accuracy", "completeness", "clarity"], // Optional
539
+ "persona": "senior engineer" // Optional, e.g., "security expert"
540
+ }
541
+ ```
542
+
543
+ #### 🔄 duck_iterate
544
+ Iteratively refine a response between two ducks.
545
+
546
+ ```typescript
547
+ {
548
+ "prompt": "Write a function to validate email addresses",
549
+ "providers": ["openai", "gemini"], // Exactly 2 providers
550
+ "mode": "critique-improve", // or "refine"
551
+ "iterations": 3 // Optional, default: 3, max: 10
552
+ }
553
+ ```
554
+
555
+ Modes:
556
+ - **refine**: Each duck improves the previous response
557
+ - **critique-improve**: Alternates between critiquing and improving
558
+
559
+ #### 🎓 duck_debate
560
+ Structured multi-round debate between ducks.
561
+
562
+ ```typescript
563
+ {
564
+ "prompt": "Should startups use microservices or monolith for MVP?",
565
+ "format": "oxford", // "oxford", "socratic", or "adversarial"
566
+ "rounds": 2, // Optional, default: 3
567
+ "providers": ["openai", "gemini"], // Optional, uses all if not specified
568
+ "synthesizer": "openai" // Optional, duck to synthesize debate
569
+ }
570
+ ```
571
+
572
+ Formats:
573
+ - **oxford**: Structured pro/con arguments
574
+ - **socratic**: Question-based philosophical exploration
575
+ - **adversarial**: One defends, others attack weaknesses
576
+
577
+ ### MCP Bridge Tools
578
+
579
+ Tools for managing MCP server connections and tool approvals.
580
+
581
+ #### 🔗 mcp_status
582
+ Get status of MCP Bridge, connected servers, and pending approvals.
583
+
584
+ ```typescript
585
+ {
586
+ // No parameters required
587
+ }
588
+ ```
589
+
590
+ #### ✅ get_pending_approvals
591
+ Get list of pending MCP tool approvals from ducks.
592
+
593
+ ```typescript
594
+ {
595
+ "duck": "openai" // Optional, filter by duck name
596
+ }
597
+ ```
598
+
599
+ #### 🛡️ approve_mcp_request
600
+ Approve or deny a duck's MCP tool request.
601
+
602
+ ```typescript
603
+ {
604
+ "approval_id": "abc123", // Required
605
+ "decision": "approve", // "approve" or "deny"
606
+ "reason": "Not needed" // Optional, reason for denial
607
+ }
608
+ ```
609
+
469
610
  ## Usage Examples
470
611
 
471
612
  ### Basic Query
@@ -508,6 +649,52 @@ await duck_council({
508
649
  });
509
650
  ```
510
651
 
652
+ ### Multi-Agent Voting
653
+ ```javascript
654
+ // Have ducks vote on a decision
655
+ await duck_vote({
656
+ question: "Best database for a real-time chat app?",
657
+ options: ["PostgreSQL", "MongoDB", "Redis", "Cassandra"]
658
+ });
659
+ // Returns: Winner with consensus level (unanimous/majority/split)
660
+ ```
661
+
662
+ ### Judge Responses
663
+ ```javascript
664
+ // First, get responses from council
665
+ const responses = await duck_council({
666
+ prompt: "Implement a rate limiter"
667
+ });
668
+
669
+ // Then have a duck judge them
670
+ await duck_judge({
671
+ responses: responses,
672
+ criteria: ["correctness", "efficiency", "readability"],
673
+ persona: "senior backend engineer"
674
+ });
675
+ ```
676
+
677
+ ### Iterative Refinement
678
+ ```javascript
679
+ // Two ducks collaborate to improve a solution
680
+ await duck_iterate({
681
+ prompt: "Write a TypeScript function to deep clone objects",
682
+ providers: ["openai", "gemini"],
683
+ mode: "critique-improve",
684
+ iterations: 3
685
+ });
686
+ ```
687
+
688
+ ### Structured Debate
689
+ ```javascript
690
+ // Oxford-style debate on architecture
691
+ await duck_debate({
692
+ prompt: "Monorepo vs polyrepo for a growing startup",
693
+ format: "oxford",
694
+ rounds: 3
695
+ });
696
+ ```
697
+
511
698
  ## Provider-Specific Setup
512
699
 
513
700
  ### Ollama (Local)
@@ -601,7 +788,7 @@ docker compose up -d
601
788
 
602
789
  ### Platform-Specific Deployment
603
790
 
604
- #### 🖥️ Desktop/Server (macOS, Linux, Windows)
791
+ #### Desktop/Server (macOS, Linux, Windows)
605
792
 
606
793
  ```bash
607
794
  # Use desktop-optimized settings
@@ -611,7 +798,7 @@ docker compose up -d
611
798
  ./scripts/deploy.sh --platform desktop --profile with-ollama
612
799
  ```
613
800
 
614
- #### 🥧 Raspberry Pi
801
+ #### Raspberry Pi
615
802
 
616
803
  ```bash
617
804
  # Use Pi-optimized settings (memory limits, etc.)
@@ -623,7 +810,7 @@ cp .env.pi.example .env
623
810
  docker compose up -d
624
811
  ```
625
812
 
626
- #### 🌐 Remote Deployment via SSH
813
+ #### Remote Deployment via SSH
627
814
 
628
815
  ```bash
629
816
  # Deploy to remote Raspberry Pi
@@ -777,7 +964,14 @@ mcp-rubber-duck/
777
964
 
778
965
  ## Contributing
779
966
 
780
- 🦆 **Want to help make our duck pond better?**
967
+ ```
968
+ __
969
+ <(o )___
970
+ ( ._> /
971
+ `---' Quack! Ready to debug!
972
+ ```
973
+
974
+ 🦆 **Want to help make our duck pond better?**
781
975
 
782
976
  We love contributions! Whether you're fixing bugs, adding features, or teaching our ducks new tricks, we'd love to have you join the flock.
783
977
 
@@ -800,11 +994,11 @@ MIT License - see LICENSE file for details
800
994
  - Built on the Model Context Protocol (MCP)
801
995
  - Uses OpenAI SDK for universal compatibility
802
996
 
803
- ## 📝 Changelog
997
+ ## Changelog
804
998
 
805
999
  See [CHANGELOG.md](./CHANGELOG.md) for a detailed history of changes and releases.
806
1000
 
807
- ## 📦 Registry & Directory
1001
+ ## Registry & Directory
808
1002
 
809
1003
  MCP Rubber Duck is available through multiple channels:
810
1004
 
Binary file
package/audit-ci.json CHANGED
@@ -5,6 +5,7 @@
5
5
  "critical": true,
6
6
  "report-type": "summary",
7
7
  "allowlist": [
8
- "GHSA-5j98-mcp5-4vw2"
8
+ "GHSA-5j98-mcp5-4vw2",
9
+ "GHSA-wqch-xfxh-vrr4"
9
10
  ]
10
11
  }
@@ -3,15 +3,15 @@
3
3
  "openai": {
4
4
  "api_key": "${OPENAI_API_KEY}",
5
5
  "base_url": "https://api.openai.com/v1",
6
- "models": ["gpt-4o", "gpt-4o-mini", "gpt-3.5-turbo"],
7
- "default_model": "gpt-4o-mini",
6
+ "models": ["gpt-5.1", "gpt-4.1", "gpt-4o"],
7
+ "default_model": "gpt-5.1",
8
8
  "nickname": "GPT Duck",
9
9
  "temperature": 0.7
10
10
  },
11
11
  "gemini": {
12
12
  "api_key": "${GEMINI_API_KEY}",
13
13
  "base_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
14
- "models": ["gemini-2.5-flash", "gemini-2.0-flash"],
14
+ "models": ["gemini-3-pro-preview", "gemini-2.5-pro", "gemini-2.5-flash"],
15
15
  "default_model": "gemini-2.5-flash",
16
16
  "nickname": "Gemini Duck",
17
17
  "temperature": 0.7
@@ -19,7 +19,7 @@
19
19
  "groq": {
20
20
  "api_key": "${GROQ_API_KEY}",
21
21
  "base_url": "https://api.groq.com/openai/v1",
22
- "models": ["llama-3.3-70b-versatile", "mixtral-8x7b-32768", "gemma2-9b-it"],
22
+ "models": ["meta-llama/llama-4-scout-17b-16e-instruct", "meta-llama/llama-4-maverick-17b-128e-instruct", "llama-3.3-70b-versatile"],
23
23
  "default_model": "llama-3.3-70b-versatile",
24
24
  "nickname": "Groq Duck",
25
25
  "temperature": 0.7
@@ -91,8 +91,8 @@ export class ConfigManager {
91
91
  providers.openai = {
92
92
  api_key: process.env.OPENAI_API_KEY,
93
93
  base_url: 'https://api.openai.com/v1',
94
- models: ['gpt-4o', 'gpt-4o-mini', 'gpt-3.5-turbo'],
95
- default_model: process.env.OPENAI_DEFAULT_MODEL || 'gpt-4o-mini',
94
+ models: ['gpt-5.1', 'gpt-4.1', 'gpt-4o'],
95
+ default_model: process.env.OPENAI_DEFAULT_MODEL || 'gpt-5.1',
96
96
  nickname: process.env.OPENAI_NICKNAME || 'GPT Duck',
97
97
  };
98
98
  }
@@ -101,7 +101,7 @@ export class ConfigManager {
101
101
  providers.gemini = {
102
102
  api_key: process.env.GEMINI_API_KEY,
103
103
  base_url: 'https://generativelanguage.googleapis.com/v1beta/openai/',
104
- models: ['gemini-2.5-flash', 'gemini-2.0-flash'],
104
+ models: ['gemini-3-pro-preview', 'gemini-2.5-pro', 'gemini-2.5-flash'],
105
105
  default_model: process.env.GEMINI_DEFAULT_MODEL || 'gemini-2.5-flash',
106
106
  nickname: process.env.GEMINI_NICKNAME || 'Gemini Duck',
107
107
  };
@@ -111,7 +111,7 @@ export class ConfigManager {
111
111
  providers.groq = {
112
112
  api_key: process.env.GROQ_API_KEY,
113
113
  base_url: 'https://api.groq.com/openai/v1',
114
- models: ['llama-3.3-70b-versatile', 'mixtral-8x7b-32768'],
114
+ models: ['meta-llama/llama-4-scout-17b-16e-instruct', 'meta-llama/llama-4-maverick-17b-128e-instruct', 'llama-3.3-70b-versatile'],
115
115
  default_model: process.env.GROQ_DEFAULT_MODEL || 'llama-3.3-70b-versatile',
116
116
  nickname: process.env.GROQ_NICKNAME || 'Groq Duck',
117
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}