Chain of Draft (CoD) MCP Server について
Chain of Draft (CoD) MCP Serverは、短い推論出力と性能指標を求める開発者向けに、簡潔な推論で問題を解決します。問題の複雑さに応じて語数制限を調整し、CoDとCoTを選択できます。
主な機能
- 01簡潔な推論と回答抽出
- 02複雑さに応じた語数制限
- 03分野別の例の検索
- 04トークン・精度・時間の記録
- 05CoDとCoTの選択
活用シーン
- 01簡潔な手順で数学問題を解く
- 02コードや論理の問題に対応
- 03CoDとCoTの性能を比較
MCP 対応
問題解決、複雑さの分析、性能統計のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chain of Draft(CoD)MCP サーバー
概要
この MCP サーバーは、研究論文「Chain of Draft: Thinking Faster by Writing Less」で説明されている Chain of Draft(CoD)推論アプローチを実装しています。CoD は、タスクの解決中に LLM が最小限ながら有益な中間推論出力を生成できる新しいパラダイムです。精度を維持しながら、トークン使用量を大幅に削減します。
主なメリット
- 効率性:トークン使用量を大幅に削減します(標準的な CoT のわずか 7.6% に抑えられる場合もあります)。
- 速度:生成時間が短いため、応答が速くなります。
- コスト削減:LLM の呼び出しにかかる API コストを抑えられます。
- 精度の維持:CoT と同等、またはそれ以上の精度を実現します。
- 柔軟性:さまざまな推論タスクや分野に適用できます。
機能
-
Chain of Draft のコア実装
- 簡潔な推論ステップ(通常は 5 語以下)
- フォーマットの適用
- 回答の抽出
-
パフォーマンス分析
- トークン使用量の追跡
- 解答精度の監視
- 実行時間の測定
- 分野別のパフォーマンス指標
-
適応型の語数制限
- 複雑さの自動推定
- 語数制限の動的な調整
- 分野別の調整
-
包括的な例データベース
- CoT から CoD への変換
- 分野別の例(数学、コード、生物学、物理学、化学、パズル)
- 問題との類似性に基づく例の検索
-
フォーマットの適用
- 語数制限への準拠を確実にする後処理
- ステップ構造の維持
- 準拠状況の分析
-
ハイブリッド推論アプローチ
- CoD と CoT の自動選択
- 分野別の最適化
- 過去のパフォーマンスに基づく選択
-
OpenAI API 互換性
- 標準的な OpenAI クライアントをそのまま置き換え可能
- completions と chat の両インターフェースに対応
- 既存のワークフローに簡単に統合可能
セットアップとインストール
前提条件
- Python 3.10+(Python 実装の場合)
- Node.js 18+(JavaScript 実装の場合)
- Anthropic API キー
Python のインストール
- リポジトリをクローンします
- 依存関係をインストールします:
pip install -r requirements.txt .envファイルで API キーを設定します:ANTHROPIC_API_KEY=your_api_key_here- サーバーを起動します:
python server.py
JavaScript のインストール
- リポジトリをクローンします
- 依存関係をインストールします:
npm install .envファイルで API キーを設定します:ANTHROPIC_API_KEY=your_api_key_here- サーバーを起動します:
node index.js
Claude Desktop との統合
Claude Desktop と統合するには:
-
claude.ai/download から Claude Desktop をインストールします
-
Claude Desktop の設定ファイルを作成または編集します:
~/Library/Application Support/Claude/claude_desktop_config.json -
サーバー設定を追加します(Python 版):
{ "mcpServers": { "chain-of-draft": { "command": "python3", "args": ["/absolute/path/to/cod/server.py"], "env": { "ANTHROPIC_API_KEY": "your_api_key_here" } } } }JavaScript 版の場合:
{ "mcpServers": { "chain-of-draft": { "command": "node", "args": ["/absolute/path/to/cod/index.js"], "env": { "ANTHROPIC_API_KEY": "your_api_key_here" } } } } -
Claude Desktop を再起動します
Claude CLI を使ってサーバーを追加することもできます:
# For Python implementation
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "python3 /absolute/path/to/cod/server.py"
# For JavaScript implementation
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "node /absolute/path/to/cod/index.js"
利用可能なツール
Chain of Draft サーバーは、次のツールを提供します:
| ツール | 説明 |
|---|---|
chain_of_draft_solve | Chain of Draft 推論を使って問題を解きます |
math_solve | CoD を使って数学の問題を解きます |
code_solve | CoD を使ってコーディングの問題を解きます |
logic_solve | CoD を使って論理問題を解きます |
get_performance_stats | CoD と CoT のパフォーマンス統計を取得します |
get_token_reduction | トークン削減の統計を取得します |
analyze_problem_complexity | 問題の複雑さを分析します |
開発者向けの使用方法
Python クライアント
Python コードで Chain of Draft クライアントを直接使用する場合:
from client import ChainOfDraftClient
# Create client
cod_client = ChainOfDraftClient()
# Use directly
result = await cod_client.solve_with_reasoning(
problem="Solve: 247 + 394 = ?",
domain="math"
)
print(f"Answer: {result['final_answer']}")
print(f"Reasoning: {result['reasoning_steps']}")
print(f"Tokens used: {result['token_count']}")
JavaScript クライアント
JavaScript/Node.js アプリケーションの場合:
import { Anthropic } from "@anthropic-ai/sdk";
import dotenv from "dotenv";
// Load environment variables
dotenv.config();
// Create the Anthropic client
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// Import the Chain of Draft client
import chainOfDraftClient from './lib/chain-of-draft-client.js';
// Use the client
async function solveMathProblem() {
const result = await chainOfDraftClient.solveWithReasoning({
problem: "Solve: 247 + 394 = ?",
domain: "math",
max_words_per_step: 5
});
console.log(`Answer: ${result.final_answer}`);
console.log(`Reasoning: ${result.reasoning_steps}`);
console.log(`Tokens used: ${result.token_count}`);
}
solveMathProblem();
実装の詳細
サーバーは Python と JavaScript の両方で実装されており、どちらも複数の統合コンポーネントで構成されています:
Python 実装
- AnalyticsService:さまざまな問題領域や推論方法におけるパフォーマンス指標を追跡します
- ComplexityEstimator:問題を分析して適切な単語数の上限を決定します
- ExampleDatabase:例を管理、取得し、CoT の例を CoD 形式に変換します
- FormatEnforcer:推論ステップが単語数の上限を守るようにします
- ReasoningSelector:問題の特性に基づいて CoD と CoT のどちらを使うかを適切に選択します
JavaScript 実装
- analyticsDb:パフォーマンス指標を追跡するためのインメモリデータベースです
- complexityEstimator:問題を分析して複雑さと適切な単語数の上限を判断します
- formatEnforcer:推論ステップが単語数の上限を守るようにします
- reasoningSelector:問題の特性と過去のパフォーマンスに基づいて、CoD と CoT のどちらを使うかを自動的に選択します
どちらの実装も同じ基本原則に従い、同一の MCP ツールを提供するため、ほとんどのユースケースで相互に置き換えて使用できます。
ライセンス
このプロジェクトはオープンソースで、MIT ライセンスの下で公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。