Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/rubber-duck/issues.md or /mcp/rubber-duck/issues.json, or Pod over MCP.

Reported issues for rubber-duck

Pod holds 23 of 52 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to rubber-duck.

Most discussed

duck_debate 'Failed to retrieve task' error + suggestions for filesystem access and fire-and-forget wrapper

Bug: duck_debate intermittently fails with "Failed to retrieve task: Task not found"

Description

duck_debate intermittently fails with MCP error -32602: Failed to retrieve task: Task not found. This occurs randomly — not related to prompt size or provider selection. When it fails, ALL subsequent tool calls (compare_ducks, ask_duck, etc.) also fail for ~50s (the MCP client's 3-retry cycle).

Root Cause (traced through source)

duck_debate is the only tool using `registerToolTask()

Read the thread · 2026-07-19 · closed · external user · 4 comments

🚀 Migrate to Bun Runtime

🚀 Migrate to Bun Runtime

Summary

Migrate MCP Rubber Duck from Node.js/npm to Bun as the primary runtime for faster builds, tests, and development experience.

Approach: Hybrid migration - Bun for runtime/build/test, Node.js for npm publish (due to missing provenance support and auth bugs in CI).

Motivation

Read the thread · 2026-01-24 · open · 3 comments

feat: Duck Autopilot - Automatic task decomposition & workflows

🦆 Duck Enhancement Proposal

     __
   <(o )___
    ( ._> /   "Quack! Just tell me your goal, I'll handle the rest!"
     `---'

💡 The Problem

What problem would this feature solve?

Complex tasks currently require manual orchestration:

🚀 Proposed Soluti

Read the thread · 2026-01-08 · open · 3 comments

feat: Streamable HTTP transport support

🦆 Duck Enhancement Proposal

💡 The Problem

The server currently only supports stdio transport, limiting deployment to local processes launched by MCP clients. This prevents:

🚀 Proposed Solution

Add Streamable HTTP transport alongside existing stdio transport.

Benefits:

Read the thread · 2026-02-05 · open · 2 comments

feat: Add human-readable title to all tools

🦆 Duck Enhancement Proposal

💡 The Problem

Tools only have name and description fields. The MCP spec now supports a title field for human-readable display names, which improves UI presentation in clients.

🚀 Proposed Solution

Add title field to all tool definitions for better UX in MCP clients.

Example:

this.server.tool('duck_council', {
  title: 'Duck Council',
  description: 'Convene multiple ducks to discuss a topic and reach consensus',
  // ...
})

Read the thread · 2026-02-05 · closed · 2 comments

feat: Add outputSchema to voting/consensus tools

🦆 Duck Enhancement Proposal

💡 The Problem

Tool results from voting and consensus tools (duck_vote, duck_council, duck_judge, etc.) return structured JSON data, but clients have no way to validate or understand the expected output format without inspecting the response.

🚀 Proposed Solution

Add outputSchema definitions to tools that return structured data. This is supported in the MCP spec (2025-11-25) and helps:

Read the thread · 2026-02-05 · closed · 2 comments

feat: MCP Prompts - Expose discoverable prompt templates

Summary

Implement MCP Prompts capability to expose reusable, discoverable prompt templates that clients like Claude Desktop can list, autocomplete, and invoke.

Background

What Are MCP Prompts?

Prompts are reusable, discoverable prompt templates that MCP servers expose to clients. Think of them as "slash commands" that clients can list, autocomplete, and invoke.

Key difference from Tools:

Read the thread · 2026-01-13 · closed · 2 comments

feat: Duck Observability & Tracing

🦆 Duck Enhancement Proposal

     __
   <(o )___
    ( ._> /   "Quack! I see everything that happens in the pond!"
     `---'

💡 The Problem

What problem would this feature solve?

Currently, there's limited visibility into:

🚀 Proposed Solution

What would you like to happen?

Add comprehensive observab

Read the thread · 2026-01-08 · closed · 2 comments

Most recent

duck_council: add a synthesis-only output mode (return the final report, not every duck's response)

Motivated by the "fire-and-forget wrapper" suggestion in #127.

duck_council currently returns every duck's full verbose response. When an agent offloads a whole council workflow, all of that lands in the caller's context.

Ask

Add a synthesis-only output mode (or a verbosity flag) to duck_council — return just the final synthesized report instead of each duck's full answer. Optionally a mode: full | synthesis param, defaulting to current behavior for back-compat.

Why this

Read the thread · 2026-07-21 · open · 1 comment

Docs: read-only filesystem MCP Bridge recipe (+ trusted-tools-gates-calls-not-tools caveat)

Requested in #127: give ducks read-only file access (source, configs, PDFs) during code review without manual copy-paste.

This already works today via the MCP Bridge — no code change needed. Any third-party filesystem MCP server plugs in through the existing env vars:

MCP_SERVER_FS_TYPE: stdio
MCP_SERVER_FS_COMMAND: npx
MCP_SERVER_FS_ARGS: -y,@modelcontextprotocol/server-filesystem,/path/to/allowed/dir
MCP_SERVER_FS_ENABLED: 'true'
MCP_TRUSTED_TOOLS_FS: '*'

Ask

Add a documente

Read the thread · 2026-07-21 · closed · 1 comment

MCP Bridge: global MCP_TRUSTED_TOOLS='*' ignored + server-name derivation can force approval prompts

Surfaced while investigating #127 (fixed in v1.20.1). The MCP_APPROVAL_MODE=trusted + MCP_TRUSTED_TOOLS_*='*' bypass works for the common per-server case, but two real edge cases can still force an approval prompt. MCP_APPROVAL_MODE=never is a working workaround meanwhile.

1. Global MCP_TRUSTED_TOOLS='*' is silently ignored

Read the thread · 2026-07-21 · open · 1 comment

feat: duck_check — cross-vendor GO/BLOCK/ASK-HUMAN action gate for agents

🦆 Duck Enhancement Proposal

     __
   <(o )___
    ( ._> /   "Quack! Before you run that migration... let me get a second opinion."
     `---'

💡 The Problem

What problem would this feature solve?

When a coding agent (Claude Code / Cursor / Codex) is about to take a risky action — apply a diff, run a DB migration, execute a shell command, delete files — there is no cheap, cross-vendor "second opinion gate" it can consult before executing.

A single-model self-check is

Read the thread · 2026-06-09 · open · 1 comment

feat: duck_judge Panel — debiased multi-provider judging (position-bias swap, judge panel, agreement confidence, outputSchema)

🦆 Duck Enhancement Proposal

     __
   <(o )___
    ( ._> /   "I'll judge fairly... unless you put yourself first in the list."
     `---'

💡 The Problem

duck_judge exists to settle which duck gave the best answer — but today it does so with a single, position-biased, schema-less judge. That's exactly the part of the pipeline most vulnerable to silent, systematic error:

  1. One judge, no bias cancellation. The judge defaults to the first available provider (`src/tool

Read the thread · 2026-06-09 · open · 0 comments

feat: Server Card (/.well-known/mcp/server-card.json)

Summary

Implement Server Card support per draft spec SEP-1649 for auto-discovery by clients and crawlers without establishing a connection.

Split from #100 (Registry publish is done).

References

Read the thread · 2026-04-03 · open · 0 comments

feat: MCP Registry publish + Server Card

Summary

Remaining items from #97 — Registry listing and Server Card support.

Items

References

Read the thread · 2026-04-03 · closed · 1 comment

feat: Server Card (.well-known/mcp/server-card.json) for pre-connection discovery

Summary

Implement MCP Server Cards (SEP-1649) — expose a .well-known/mcp/server-card.json endpoint for pre-connection discovery.

Split from #97 (item 4).

Blocked by

Server card contents

Read the thread · 2026-04-03 · open · 0 comments

feat: MCP spec quick wins — SDK upgrade, outputSchema, Registry, Server Card

Summary

Bundle of low-effort, high-value improvements to align with the latest MCP ecosystem (Nov 2025 spec, Registry GA).

Items

Read the thread · 2026-04-03 · closed · 1 comment

feat: support image URLs in multimodal input

Summary

Currently, image input for tools like ask_duck, compare_ducks, duck_council, and chat_with_duck only accepts base64-encoded data (ImageInput.data + ImageInput.mimeType). This requires callers to handle encoding themselves, which is awkward — especially from CLI tools like Claude Code where inline images can't easily be converted to base64.

Proposal

Add url support to ImageInput, so callers can pass an image URL instead of base64:

export interface I

[Read the thread](https://github.com/nesquikm/mcp-rubber-duck/issues/87) · 2026-03-17 · closed · 1 comment

### feat: multimodal audio support (input + MCP Bridge)

## Summary

Add audio support across the full pipeline — both user-initiated audio input to ducks and audio content flowing back from MCP Bridge tool results.

## Context

The MCP protocol supports `AudioContent` (`{ type: "audio", data: base64, mimeType }`) as a first-class content type. Major providers now support audio input:

- **OpenAI**: GPT-4o-audio-preview and newer models accept audio via a separate `audio` parameter (not inline content parts like vision)
- **Gemini**: Supports inline a

[Read the thread](https://github.com/nesquikm/mcp-rubber-duck/issues/79) · 2026-03-06 · open · 0 comments

### feat: multimodal MCP Bridge — pass image tool results to LLM conversations

## Summary

When ducks use MCP Bridge to call external MCP server tools, those tools can return `ImageContent` (`{ type: "image", data: base64, mimeType }`) in their results. Currently, `EnhancedDuckProvider.handleToolCalls()` (line 268) stringifies ALL tool results to JSON text via `JSON.stringify(result.data)`, so vision-capable models never actually "see" the images.

## Real-world MCP servers that return ImageContent

This is not theoretical — many popular MCP servers return `type: "image"` 

[Read the thread](https://github.com/nesquikm/mcp-rubber-duck/issues/78) · 2026-03-06 · open · 1 comment

### feat: Multimodal support - Vision input and image/audio responses

## Summary

Add multimodal capabilities to ducks — allow sending images/audio to providers (vision input) and returning image/audio content in tool responses.

## Motivation

MCP already supports multimodal content types (`ImageContent`, `AudioContent` since protocol 2025-06-18), and most OpenAI-compatible providers support vision input. This is a natural extension that would enable ducks to analyze screenshots, diagrams, UI mockups, and other visual content.

## MCP Spec Support

The MCP protoc

[Read the thread](https://github.com/nesquikm/mcp-rubber-duck/issues/76) · 2026-03-06 · closed · 1 comment

### Add multi-round tool calling loop for MCP Bridge ducks

## Problem

`EnhancedDuckProvider.handleToolCalls()` only executes **one round** of tool calls. After executing tools and feeding results back to the LLM, it strips the `tools` parameter from the follow-up call:

```typescript
// duck-provider-enhanced.ts lines 277-283
delete followUpParams.tools;
delete followUpParams.tool_choice;

This means ducks can never chain tool calls — they get one shot, then must respond with text.

Why it matters

Useful debugging workflows require multi-step t

Read the thread · 2026-02-26 · closed · 1 comment

feat: Elicitation - Human-in-the-loop for interactive duck tools

Summary

MCP Elicitation (spec June 2025) allows servers to ask users structured questions mid-execution. This enables interactive, iterative workflows where ducks can pause and request user input before continuing.

Client Support

Client Support
Cursor (1.5+)
VS Code / GitHub Copilot
Claude Desktop
Claude Code
Zed

Use Cases

Read the thread · 2026-02-08 · open · 0 comments

The remaining reports are on the project's issue tracker.