Chain of Draft (CoD) MCP Server
チェーン・オブ・ドラフト(CoD)MCPサーバー
概要
このMCPサーバーは、研究論文「Chain of Draft:より少ない文章でより速く考える」で説明されているChain of Draft(CoD)推論アプローチを実装しています。CoDは、LLMがタスクを解決しながら最小限ながらも有益な中間推論出力を生成することを可能にする新しいパラダイムであり、トークンの使用量を大幅に削減しながら精度を維持します。
Related MCP server: Visum Thinker MCP Server
主なメリット
効率性: トークン使用量が大幅に削減されます (標準 CoT のわずか 7.6%)
速度: 生成時間が短いため応答が速い
コスト削減: LLM呼び出しのAPIコストの削減
維持された精度: CoTと比較して同等またはそれ以上の精度
柔軟性:さまざまな推論タスクやドメインに適用可能
特徴
ドラフト実装のコアチェーン
簡潔な推論手順(通常 5 語以下)
フォーマットの強制
回答抽出
パフォーマンス分析
トークン使用状況の追跡
ソリューション精度の監視
実行時間の測定
ドメイン固有のパフォーマンスメトリック
適応型単語制限
自動複雑度推定
単語数制限の動的調整
ドメイン固有のキャリブレーション
包括的なサンプルデータベース
CoTからCoDへの変換
分野固有の例(数学、コード、生物学、物理学、化学、パズル)
問題の類似性に基づく例の検索
フォーマットの強制
文字数制限を遵守するための後処理
ステップ構造の保存
遵守分析
ハイブリッド推論アプローチ
CoDとCoTの自動選択
ドメイン固有の最適化
過去の実績に基づく選抜
OpenAI APIの互換性
標準の OpenAI クライアントの代替品
補完とチャットインターフェースの両方をサポート
既存のワークフローへの簡単な統合
セットアップとインストール
前提条件
Python 3.10+ (Python実装用)
Node.js 18+(JavaScript実装用)
アントロピック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.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デスクトップを再起動します
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 サーバーは次のツールを提供します。
道具 | 説明 |
| ドラフトの連鎖推論を使って問題を解決する |
| CoDで数学の問題を解く |
| CoDでコーディングの問題を解決する |
| CoDで論理問題を解く |
| CoDとCoTのパフォーマンス統計を取得する |
| トークン削減統計を取得する |
| 問題の複雑さを分析する |
開発者の使用
Pythonクライアント
Chain of Draft クライアントを Python コード内で直接使用する場合:
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 : パフォーマンスメトリックを追跡するためのインメモリデータベース
複雑さ推定器: 問題を分析して複雑さと適切な単語制限を決定します
formatEnforcer : 推論ステップが単語数制限を遵守していることを確認する
推論セレクター: 問題の特性と過去のパフォーマンスに基づいて、CoD と CoT を自動的に選択します。
どちらの実装も同じコア原則に従い、同一の MCP ツールを提供するため、ほとんどのユースケースで互換性があります。
ライセンス
このプロジェクトはオープンソースであり、MIT ライセンスの下で利用できます。
Available Tools
7 toolsanalyze_problem_complexityC
Analyze the complexity of a problem
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The problem to analyze | |
| domain | No | Problem domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't disclose behavioral traits such as whether this is a read-only analysis, if it requires specific inputs beyond the schema, what the output format might be, or any rate limits. The description is too minimal to offer meaningful context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it front-loaded and easy to parse. However, it's so brief that it under-specifies the tool's purpose, slightly reducing its effectiveness despite the conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'analyze' entails, what results to expect, or how it fits with sibling tools. For a tool with 2 parameters and no structured behavioral hints, more context is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for both parameters ('problem' and 'domain'). The description doesn't add any meaning beyond what the schema provides, such as explaining how 'domain' influences the analysis. Since schema coverage is high, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Analyze the complexity of a problem' states a vague purpose with the verb 'analyze' and resource 'complexity of a problem', but it doesn't specify what complexity means (e.g., computational, conceptual, time) or how it differs from siblings like 'logic_solve' or 'math_solve'. It's not tautological but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention context, prerequisites, or exclusions, and with siblings like 'logic_solve' or 'code_solve' that might handle related tasks, there's no differentiation to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_of_draft_solveC
Solve a reasoning problem using Chain of Draft approach
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The problem to solve | |
| domain | No | Domain for context (math, logic, code, common-sense, etc.) | |
| max_words_per_step | No | Maximum words per reasoning step | |
| approach | No | Force 'CoD' or 'CoT' approach | |
| enforce_format | No | Whether to enforce the word limit | |
| adaptive_word_limit | No | Adjust word limits based on complexity |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'Chain of Draft approach' but doesn't disclose behavioral traits such as how it handles reasoning steps, output format, error conditions, or computational requirements. For a tool with 6 parameters and no output schema, this lack of detail is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose. It's appropriately sized and front-loaded, with no wasted words. However, it could be more structured by briefly hinting at key parameters or outcomes to improve clarity without adding bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'Chain of Draft' means, how the output is structured, or provide context for parameter usage. Without this, an AI agent might struggle to invoke the tool correctly or interpret results, especially compared to more specific siblings like 'math_solve'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters thoroughly. The description adds no meaning beyond the schema, as it doesn't explain parameter interactions (e.g., how 'max_words_per_step' relates to 'adaptive_word_limit') or provide examples. Baseline score of 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate with additional insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Solve[s] a reasoning problem using Chain of Draft approach', which provides a verb ('solve') and resource ('reasoning problem'), but it's vague about what 'Chain of Draft' entails compared to alternatives like Chain of Thought (CoT). It doesn't distinguish from siblings like 'math_solve' or 'logic_solve', leaving ambiguity about when to use this over those specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description mentions 'Chain of Draft approach' but doesn't explain its advantages over CoT or when to choose it over sibling tools like 'code_solve' or 'analyze_problem_complexity'. Usage is implied by the tool name and approach, but no clear context or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_solveC
Solve a coding problem using Chain of Draft reasoning
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The coding problem to solve | |
| approach | No | Force 'CoD' or 'CoT' approach | |
| max_words_per_step | No | Maximum words per reasoning step |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Chain of Draft reasoning' but does not explain what this entails, such as step-by-step reasoning, potential outputs, error handling, or computational limits. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose. It is appropriately sized and front-loaded, with no unnecessary words, though it could benefit from more detail to improve clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (solving coding problems with a specific reasoning approach), no annotations, and no output schema, the description is incomplete. It fails to explain what 'Chain of Draft reasoning' is, what the output looks like, or any behavioral traits, leaving significant gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters ('problem', 'approach', 'max_words_per_step') with descriptions. The description does not add any additional meaning or context beyond what the schema provides, such as examples or usage tips for parameters, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Solve[s] a coding problem using Chain of Draft reasoning', which provides a verb ('Solve') and resource ('coding problem') but is vague about what 'Chain of Draft reasoning' entails. It distinguishes from some siblings like 'logic_solve' or 'math_solve' by specifying 'coding problem', but the distinction from 'chain_of_draft_solve' is unclear, making the purpose somewhat ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions 'Chain of Draft reasoning' but does not explain when this approach is preferred over other methods or tools like 'analyze_problem_complexity' or 'logic_solve'. This lack of context leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_statsC
Get performance statistics for CoD vs CoT approaches
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter for specific domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] performance statistics,' implying a read-only operation, but doesn't specify whether it requires authentication, has rate limits, returns real-time or historical data, or what format the statistics are in. For a tool with no annotations, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get performance statistics for CoD vs CoT approaches.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's apparent complexity. Every part of the sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (performance statistics comparison), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'performance statistics' entail (e.g., metrics like accuracy, speed, cost), how CoD vs CoT are defined, or what the return values look like. For a tool that likely involves nuanced data analysis, this leaves too many gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with one parameter 'domain' documented as 'Filter for specific domain.' The description doesn't add any meaning beyond this, such as examples of domains or how filtering affects the results. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description neither compensates nor detracts from the schema's information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get performance statistics for CoD vs CoT approaches.' It specifies the verb ('Get') and resource ('performance statistics'), and distinguishes the scope (CoD vs CoT approaches). However, it doesn't explicitly differentiate from sibling tools like 'get_token_reduction' or 'analyze_problem_complexity', which might also relate to performance metrics, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context, or exclusions, and with sibling tools like 'get_token_reduction' that might overlap in performance analysis, there's no explicit comparison or usage rules. This leaves the agent without clear direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_reductionB
Get token reduction statistics for CoD vs CoT
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does (get statistics) without revealing any behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what the output format might be. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the statistics include (e.g., metrics, timeframes, or data sources), how the results are structured, or any behavioral context. For a tool that likely returns data, this leaves significant gaps in understanding its full functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately avoids mentioning any. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary complexity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as retrieving 'token reduction statistics for CoD vs CoT' (Chain-of-Draft vs Chain-of-Thought), which is a specific verb+resource combination. However, it doesn't differentiate this tool from sibling tools like 'get_performance_stats' or 'analyze_problem_complexity', which might provide related metrics, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, nor does it reference sibling tools that might offer overlapping or complementary functionality, leaving the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logic_solveC
Solve a logic problem using Chain of Draft reasoning
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The logic problem to solve | |
| approach | No | Force 'CoD' or 'CoT' approach | |
| max_words_per_step | No | Maximum words per reasoning step |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Chain of Draft reasoning' but doesn't explain what this entails, how it differs from other approaches, or any operational constraints like rate limits, error handling, or output format. The description is too vague to inform the agent about the tool's behavior beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a logic-solving tool with no annotations and no output schema, the description is insufficient. It doesn't explain the 'Chain of Draft reasoning' method, how results are returned, or any behavioral traits. The agent lacks critical context to use this tool effectively compared to its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all three parameters. The description adds no additional semantic information about the parameters beyond what's in the schema. According to the rules, with high schema coverage (>80%), the baseline score is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Solve a logic problem using Chain of Draft reasoning'. It specifies the verb ('solve'), resource ('logic problem'), and method ('Chain of Draft reasoning'). However, it doesn't explicitly differentiate from sibling tools like 'chain_of_draft_solve' or 'math_solve', which appear related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'chain_of_draft_solve', 'code_solve', and 'math_solve', there's no indication of when this specific 'logic_solve' tool is appropriate, nor any mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
math_solveC
Solve a math problem using Chain of Draft reasoning
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The math problem to solve | |
| approach | No | Force 'CoD' or 'CoT' approach | |
| max_words_per_step | No | Maximum words per reasoning step |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Chain of Draft reasoning' but does not explain what this means in practice, such as how it processes the problem, what output to expect, or any limitations (e.g., accuracy, computational constraints). This lack of detail makes it inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a math-solving tool with no annotations and no output schema, the description is incomplete. It lacks details on how the tool behaves, what the output looks like, or any error conditions. This makes it insufficient for an agent to understand the tool's full context and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters ('problem', 'approach', 'max_words_per_step') with descriptions. The description does not add any meaning beyond this, such as clarifying the 'approach' parameter's 'CoD' or 'CoT' options or providing examples. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Solve[s] a math problem using Chain of Draft reasoning', which provides a verb ('Solve') and resource ('math problem') but is vague about what 'Chain of Draft reasoning' entails. It distinguishes from some siblings like 'code_solve' or 'logic_solve' by specifying 'math problem', but the distinction from 'chain_of_draft_solve' is unclear, as both mention 'Chain of Draft'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions 'Chain of Draft reasoning' but does not explain when this approach is preferred over other methods or tools like 'analyze_problem_complexity' or 'chain_of_draft_solve'. This leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
analyze_problem_complexity - First observed
chain_of_draft_solve - First observed
code_solve - First observed
get_performance_stats - First observed
get_token_reduction - First observed
logic_solve - First observed
math_solve
TDQS
Scored across 7 tools
The tools have clear distinctions in problem domains (math, logic, code, general reasoning) but there is significant overlap between 'chain_of_draft_solve' and the domain-specific solvers (math_solve, logic_solve, code_solve), which could cause confusion about when to use the general versus specific versions. The analysis and statistics tools are clearly distinct from the solving tools.
Most tools follow a consistent snake_case pattern with descriptive names (e.g., 'analyze_problem_complexity', 'get_performance_stats'), but there's a minor inconsistency with 'chain_of_draft_solve' using a longer prefix while others use simpler domain names. The verb usage is reasonably consistent with 'solve', 'analyze', and 'get' patterns.
With 7 tools, this is well-scoped for a server focused on Chain of Draft problem-solving and analysis. The count covers solving across multiple domains plus performance analytics, without being overwhelming or too sparse for the apparent purpose.
The toolset provides good coverage for solving problems (math, logic, code, general) and analyzing performance/token usage, which aligns well with the CoD domain. A minor gap exists in not having tools for configuring or customizing the CoD approach (e.g., setting parameters), but core workflows are well supported.
Maintenance
Related MCP Connectors
Reduces AI Agent token usage by 40% via three-stage SOP workflow.
Agent-to-agent reasoning-as-a-service: chain-of-thought, analysis, and decision support.
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
Same functionality, consuming only 1/20 of the context window tokens.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnhances AI model capabilities with structured, retrieval-augmented thinking processes that enable dynamic thought chains, parallel exploration paths, and recursive refinement cycles for improved reasoning.124MIT
- AlicenseBqualityNot gradedmaintenanceProvides structured sequential thinking capabilities for AI assistants to break down complex problems into manageable steps, revise thoughts, and explore alternative reasoning paths.29-
- AlicenseNot gradedqualityCmaintenanceTransforms prompts into Chain of Draft (CoD) or Chain of Thought (CoT) format to enhance LLM reasoning quality while reducing token usage by up to 92.4%, supporting multiple LLM providers including Claude, GPT, Ollama, and local models.31 npm19MIT
- AlicenseBqualityNot gradedmaintenanceEnables AI assistants to perform structured, step-by-step reasoning by breaking down complex problems into numbered thoughts, with support for revising previous steps and exploring alternative reasoning paths.5-