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.
- package/.env.desktop.example +1 -1
- package/.env.pi.example +1 -1
- package/.env.template +1 -1
- package/.eslintrc.json +1 -0
- package/CHANGELOG.md +19 -0
- package/README.md +238 -44
- package/assets/mcp-rubber-duck.png +0 -0
- package/audit-ci.json +2 -1
- package/config/config.example.json +4 -4
- package/dist/config/config.js +4 -4
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +78 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +150 -0
- package/dist/server.js.map +1 -1
- package/dist/services/consensus.d.ts +28 -0
- package/dist/services/consensus.d.ts.map +1 -0
- package/dist/services/consensus.js +257 -0
- package/dist/services/consensus.js.map +1 -0
- package/dist/tools/duck-debate.d.ts +16 -0
- package/dist/tools/duck-debate.d.ts.map +1 -0
- package/dist/tools/duck-debate.js +272 -0
- package/dist/tools/duck-debate.js.map +1 -0
- package/dist/tools/duck-iterate.d.ts +14 -0
- package/dist/tools/duck-iterate.d.ts.map +1 -0
- package/dist/tools/duck-iterate.js +195 -0
- package/dist/tools/duck-iterate.js.map +1 -0
- package/dist/tools/duck-judge.d.ts +15 -0
- package/dist/tools/duck-judge.d.ts.map +1 -0
- package/dist/tools/duck-judge.js +208 -0
- package/dist/tools/duck-judge.js.map +1 -0
- package/dist/tools/duck-vote.d.ts +14 -0
- package/dist/tools/duck-vote.d.ts.map +1 -0
- package/dist/tools/duck-vote.js +46 -0
- package/dist/tools/duck-vote.js.map +1 -0
- package/docker-compose.yml +1 -1
- package/package.json +1 -1
- package/src/config/config.ts +4 -4
- package/src/config/types.ts +92 -0
- package/src/server.ts +154 -0
- package/src/services/consensus.ts +324 -0
- package/src/tools/duck-debate.ts +383 -0
- package/src/tools/duck-iterate.ts +253 -0
- package/src/tools/duck-judge.ts +301 -0
- package/src/tools/duck-vote.ts +87 -0
- package/tests/consensus.test.ts +282 -0
- package/tests/duck-debate.test.ts +286 -0
- package/tests/duck-iterate.test.ts +249 -0
- package/tests/duck-judge.test.ts +296 -0
- package/tests/duck-vote.test.ts +250 -0
package/.env.desktop.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-
|
|
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-
|
|
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-
|
|
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
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
|
[](https://github.com/nesquikm/mcp-rubber-duck/pkgs/container/mcp-rubber-duck)
|
|
7
7
|
[](https://modelcontextprotocol.io/registry)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
-
|
|
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-
|
|
34
|
-
- **Google Gemini** (Gemini
|
|
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
|
|
37
|
-
- **Together AI** (Llama,
|
|
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
|
-
|
|
48
|
-
|
|
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-
|
|
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:
|
|
192
|
+
### Step 1: Install
|
|
165
193
|
|
|
166
|
-
|
|
194
|
+
Choose one of these options:
|
|
167
195
|
|
|
196
|
+
**Option A: NPM (Recommended)**
|
|
168
197
|
```bash
|
|
169
|
-
|
|
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
|
-
"
|
|
197
|
-
"
|
|
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
|
-
###
|
|
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
|
-
|
|
440
|
+
## Available Tools
|
|
441
|
+
|
|
442
|
+
### Basic Tools
|
|
399
443
|
|
|
400
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
####
|
|
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
|
-
####
|
|
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
|
-
####
|
|
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
|
-
|
|
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
|
-
##
|
|
997
|
+
## Changelog
|
|
804
998
|
|
|
805
999
|
See [CHANGELOG.md](./CHANGELOG.md) for a detailed history of changes and releases.
|
|
806
1000
|
|
|
807
|
-
##
|
|
1001
|
+
## Registry & Directory
|
|
808
1002
|
|
|
809
1003
|
MCP Rubber Duck is available through multiple channels:
|
|
810
1004
|
|
|
Binary file
|
package/audit-ci.json
CHANGED
|
@@ -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-
|
|
7
|
-
"default_model": "gpt-
|
|
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-
|
|
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-
|
|
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
|
package/dist/config/config.js
CHANGED
|
@@ -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-
|
|
95
|
-
default_model: process.env.OPENAI_DEFAULT_MODEL || 'gpt-
|
|
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-
|
|
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-
|
|
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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"}
|