mcpField
M
Mcp Rubber Duck

Mcp Rubber Duck

ローカル
github.com/nesquikmAI・エージェント1802 週間前に更新

Mcp Rubber Duck について

MCP クライアントから複数の OpenAI 互換 LLM や Claude Code、Codex などのコマンドラインコーディングエージェントに問い合わせ、異なる視点の回答をまとめる MCP サーバーです。複数モデルの回答を比較、投票、議論させたい開発者向けです。

主な機能

  1. 01任意の OpenAI 互換 API エンドポイントへの対応
  2. 02Claude Code、Codex、Gemini CLI などのエージェント対応
  3. 03複数モデルの比較、投票、評価
  4. 04会話コンテキストの管理と自動フェイルオーバー
  5. 05ガードレール、使用量の追跡、MCP ブリッジ

活用シーン

  1. 01同じ質問を複数のモデルに送り回答を比較する
  2. 02モデル間の議論や反復レビューで提案を改善する
  3. 03複数モデルの視点から設計上のリスクとトレードオフを分析する

MCP 対応

MCP クライアントに ask_duck や duck_council などのツールと 8 種類のプロンプトテンプレートを公開します。MCP ブリッジにより、設定されたモデルから他の MCP サーバーへアクセスできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rubber-duck": {
"command": "npx",
"args": [
"-y",
"mcp-rubber-duck"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GROQ_API_KEY": "<GROQ_API_KEY>",
"DEFAULT_PROVIDER": "<DEFAULT_PROVIDER>"
}
}
}
}
起動コマンドnpx -y mcp-rubber-duck
設定が必要な環境変数
OPENAI_API_KEYシークレットOpenAI API key (starts with sk-)
GEMINI_API_KEYシークレットGoogle Gemini API key
GROQ_API_KEYシークレットGroq API key (starts with gsk_)
DEFAULT_PROVIDERDefault LLM provider to use

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-rubber-duck1.18.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Rubber Duck

複数の LLM(OpenAI 互換の HTTP API と CLI コーディングエージェントの両方)への問い合わせを仲介する、MCP(Model Context Protocol)サーバーです。ラバーダックデバッグと同じように、さまざまな AI の「アヒル」に問題を説明して、異なる視点からの回答を得られます。

npm バージョン Docker イメージ MCP レジストリ

MCP Rubber Duck - コードのデバッグを手伝う AI のアヒルたち

プロバイダーとの直接統合が採用されている理由は? MCP の sampling プリミティブ(サーバーがホストのモデルを借用する機能)は、2026-07-28 仕様 RC で廃止され、サーバーが LLM プロバイダーの API と直接統合する方式が採用されました。Rubber Duck は当初からこの方式(独自のアヒルを連れてくる方式)で動作しているため、プロトコルの今後の方向性に沿っており、移行は不要です。

特長

  • OpenAI との汎用的な互換性 -- OpenAI 互換の API エンドポイントならどれでも利用できます
  • CLI エージェントのサポート -- CLI コーディングエージェント(Claude Code、Codex、Gemini CLI、Grok、Aider)をアヒルとして利用できます
  • 複数のアヒル -- 複数の LLM プロバイダーを設定し、同時に問い合わせることができます
  • 会話管理 -- 複数のメッセージにわたってコンテキストを維持します
  • アヒル評議会 -- 設定したすべての LLM から一度に回答を得られます
  • 合意形成の投票 -- 推論と信頼度スコアを含む、複数のアヒルによる投票
  • LLM-as-Judge -- アヒルに互いの回答を評価・順位付けさせます
  • 反復的な改善 -- 2 羽のアヒルが協力して回答を改善します
  • 構造化された議論 -- オックスフォード式、ソクラテス式、敵対的な議論の形式に対応
  • MCP プロンプト -- マルチ LLM ワークフロー向けの再利用可能なプロンプトテンプレートを 8 種類用意
  • 画像入力 -- プロンプトとともに画像を、画像認識に対応したモデルへ送信できます(ドキュメント)
  • 自動フェイルオーバー -- プライマリプロバイダーに障害が発生した場合、ほかのプロバイダーに切り替えます
  • ヘルスモニタリング -- すべてのプロバイダーの状態をリアルタイムで確認できます
  • 使用状況の追跡 -- プロバイダーごとにリクエスト、トークン、推定コストを追跡できます
  • MCP ブリッジ -- アヒルをほかの MCP サーバーに接続し、機能を拡張できます(ドキュメント)
  • ガードレール -- レート制限、トークン制限、パターンブロック、個人情報のマスキングを備えた、プラグイン可能な安全レイヤー(ドキュメント)
  • きめ細かなセキュリティ -- セッションベースの承認に対応した、サーバーごとの承認制御
  • インタラクティブ UI -- 比較、投票、議論、使用状況の各ツール向けに、リッチな HTML パネルを提供(MCP Apps経由)
  • ツールアノテーション -- ツールの動作(読み取り専用、破壊的など)に関する MCP 準拠のヒント
  • 構造化出力 -- 構造化 JSON を返すツールに outputSchema を設定し、クライアント側の検証に対応(Cursor、VS Code/Copilot)
  • 仕様に沿った設計 -- サーバー側の sampling が廃止された現在、MCP の 2026-07-28 仕様で推奨される方法に従い、プロバイダー API に直接接続します(SEP-2577)

対応プロバイダー

HTTP プロバイダー(OpenAI 互換 API)

以下を含む、OpenAI 互換の API エンドポイントを持つすべてのプロバイダーに対応しています。

  • OpenAI
  • Google Gemini
  • Anthropic(OpenAI 互換エンドポイント経由)
  • Groq(オープンウェイトモデルの高速推論)
  • Together AI(幅広いオープンウェイトモデルのカタログ)
  • Perplexity(ウェブ検索に対応したオンラインモデル)
  • Anyscale、Azure OpenAI、Ollama、LM Studio、Custom
CLI プロバイダー(コーディングエージェント)

ローカルプロセスとして実行されるコマンドラインのコーディングエージェントです。

  • Claude Code (claude) -- Codex (codex) -- Gemini CLI (gemini) -- Grok CLI (grok) -- Aider (aider) -- カスタム

セットアップと設定の詳細は、CLI プロバイダーを参照してください。

クイックスタート

# Install globally
npm install -g mcp-rubber-duck

# Or use npx directly in Claude Desktop config
npx mcp-rubber-duck

Claude Desktop をお使いですか? Claude Desktop の設定に進んでください。 Cursor、VS Code、Windsurf、またはその他のツールをお使いですか? セットアップガイドを参照してください。

インストール

前提条件
  • Node.js 20 以降
  • npm または yarn
  • HTTP プロバイダー用の API キーが少なくとも 1 つ、または ローカルにインストールされた CLI コーディングエージェント
NPM からインストール
npm install -g mcp-rubber-duck
ソースからインストール
git clone https://github.com/nesquikm/mcp-rubber-duck.git
cd mcp-rubber-duck
npm install
npm run build
npm start

設定

.env ファイルまたは config/config.json を作成します。主な環境変数は次のとおりです。

変数説明
OPENAI_API_KEYOpenAI API キー
GEMINI_API_KEYGoogle Gemini API キー
GROQ_API_KEYGroq API キー
DEFAULT_PROVIDERデフォルトのプロバイダー(例:openai)
DEFAULT_TEMPERATUREデフォルトの temperature(例:0.7)
LOG_LEVELdebug、info、warn、error
MCP_SERVERMCP サーバーモードでは true に設定
MCP_BRIDGE_ENABLEDMCP Bridge を有効化(ダックが外部 MCP サーバーにアクセスできるようにします)
CUSTOM_{NAME}_*カスタム HTTP プロバイダー
CLI_{AGENT}_ENABLEDCLI エージェントを有効化(CLAUDE、CODEX、GEMINI、GROK、AIDER)

詳細なリファレンス:設定ドキュメント

インタラクティブ UI(MCP Apps)

4 つのツール(compare_ducks、duck_vote、duck_debate、get_usage_stats)は、MCP Apps を介して、対応する MCP クライアント内にリッチなインタラクティブ HTML パネルを表示できます。この MCP サーバーを対応クライアントで設定すると、追加のセットアップなしで UI が自動的に表示されます。MCP Apps に対応していないクライアントでも、同じプレーンテキストの出力を受け取れます(機能は失われません)。対応クライアントの最新の一覧は、MCP Apps リポジトリを参照してください。

ダックの比較

複数のモデルの応答を並べて比較できます。レイテンシーの表示、トークン数、モデルバッジ、エラー状態も確認できます。

ダック比較のインタラクティブ UI

ダックの投票

複数のダックに選択肢への投票をさせ、その結果を棒グラフによる視覚的な集計として表示します。コンセンサスバッジ、勝者カード、信頼度バー、折りたたみ可能な推論も含まれます。

ダック投票のインタラクティブ UI

ダックのディベート

ダック同士の複数ラウンドにわたる構造化されたディベートを、ラウンドごとのビューで表示します。形式バッジ、参加者リスト、折りたたみ可能なラウンド、統合セクションが含まれます。

ダックディベートのインタラクティブ UI

使用状況の統計

サマリーカード、展開可能な行を含むプロバイダー別の内訳、トークン分布バー、推定コストで使用状況を分析します。

使用状況統計のインタラクティブ UI

## 利用可能なツール
ツール説明
ask_duck指定した LLM プロバイダーに質問を 1 つ送信します
chat_with_duckメッセージ間でコンテキストを維持して会話します
clear_conversationsすべての会話履歴を消去します
list_ducks設定済みのプロバイダーとヘルスステータスを一覧表示します
list_modelsプロバイダーで利用可能なモデルを一覧表示します
compare_ducks複数のプロバイダーに同じ質問を同時に送信します
duck_council設定済みのすべての duck から回答を取得します
get_usage_stats使用統計と推定コストを取得します
duck_vote推論と確信度を伴う複数の duck による投票を行います
duck_judge1 つの duck に他の duck の回答を評価し、順位付けさせます
duck_iterate2 つの duck 間で回答を反復的に改善します
duck_debateduck 間で複数ラウンドの構造化された討論を行います
mcp_statusMCP Bridge のステータスと接続中のサーバーを表示します
get_pending_approvals保留中の MCP ツール承認リクエストを取得します
approve_mcp_requestduck の MCP ツールリクエストを承認または拒否します

入力スキーマを含む完全なリファレンス:ツールドキュメント

利用可能なプロンプト

プロンプト目的必須の引数
perspectives割り当てられた視点による多角的な分析problem、perspectives
assumptions計画に潜む前提を明らかにしますplan
blindspots見落とされているリスクや不足点を探しますproposal
tradeoffs選択肢を構造化して比較しますoptions、criteria
red_team多角的なセキュリティ/リスク分析target
reframeさまざまなレベルで問題を捉え直しますproblem
architecture懸念事項を網羅した設計レビューdesign、workloads、priorities
diverge_converge発散的な検討の後に収束させますchallenge

例を含む完全なリファレンス:プロンプトドキュメント

開発

npm run dev        # Development with watch mode
npm test           # Run all tests
npm run lint       # ESLint
npm run typecheck  # Type check without emit

ドキュメント

トピックリンク
セットアップガイド(すべてのツール)docs/setup.md
設定の完全なリファレンスdocs/configuration.md
Claude Desktop のセットアップdocs/claude-desktop.md
スキーマ付きのすべてのツールdocs/tools.md
プロンプトテンプレートdocs/prompts.md
CLI コーディングエージェントdocs/cli-providers.md
MCP Bridgedocs/mcp-bridge.md
ガードレールdocs/guardrails.md
Docker のデプロイdocs/docker.md
プロバイダー別のセットアップdocs/provider-setup.md
使用例docs/usage-examples.md
アーキテクチャdocs/architecture.md
ロードマップdocs/roadmap.md

トラブルシューティング

プロバイダーが動作しない
  1. API キーが正しく設定されていることを確認します
  2. エンドポイント URL が正しいことを確認します
  3. ヘルスチェックを実行します:list_ducks({ check_health: true })
  4. 詳細なエラーメッセージをログで確認します
接続の問題
  • ローカルプロバイダー(Ollama、LM Studio)の場合、実行中であることを確認します
  • ローカルエンドポイントのファイアウォール設定を確認します
  • クラウドプロバイダーへのネットワーク接続を確認します
レート制限
  • 代替プロバイダーへのフェイルオーバーを設定します
  • max_retries と timeout の設定を調整します
  • レート制限の設定についてはガードレールを参照してください

貢献

     __
   <(o )___
    ( ._> /
     `---'  Quack! Ready to debug!

皆さまからの貢献をお待ちしています!バグの修正、機能の追加、あるいは私たちの duck に新しい芸を教えるなど、ぜひ仲間に加わってください。

始めるには、貢献ガイドをご覧ください。

貢献者向けクイックスタート:

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. Conventional Commits のガイドラインに従います
  4. 新しい機能のテストを追加します
  5. プルリクエストを送信します

ライセンス

MIT License - 詳細は LICENSE file をご覧ください。

謝辞

  • ラバーダックデバッグ手法に着想を得ています
  • Model Context Protocol(MCP)を基盤としています
  • HTTP プロバイダーとの互換性のために OpenAI SDK を使用しています
  • CLI コーディングエージェント(Claude Code、Codex、Gemini CLI、Grok、Aider)をサポートしています

変更履歴

変更とリリースの詳細な履歴は、CHANGELOG.mdをご覧ください。

レジストリとディレクトリ

サポート


AI ダックパネルでデバッグをお楽しみください!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。