mcpField
C
Chain of Draft (CoD) MCP Server

Chain of Draft (CoD) MCP Server

本地服务
github.com/stat-guyAI 与智能体1286 周前更新

关于 Chain of Draft (CoD) MCP Server

Chain of Draft (CoD) MCP Server 将简短推理步骤用于问题求解,适合希望减少推理文本并查看性能指标的开发者。它提供自适应字数限制,并可在 CoD 与 CoT 之间选择。

主要功能

  1. 01简短推理步骤与答案提取
  2. 02按问题复杂度调整字数限制
  3. 03检索领域示例
  4. 04跟踪令牌、准确率与耗时
  5. 05在 CoD 与 CoT 间选择

适用场景

  1. 01用精简步骤求解数学问题
  2. 02处理代码与逻辑问题
  3. 03比较 CoD 与 CoT 的表现

MCP 相关

它通过 MCP 向客户端提供问题求解、复杂度分析和性能统计工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Chain of Draft(CoD)MCP 服务

概述

此 MCP 服务实现了研究论文《Chain of Draft:少写一点,思考更快》中介绍的 Chain of Draft(CoD)推理方法。CoD 是一种新颖的范式,支持大模型在解决任务时生成简洁而有用的中间推理结果,大幅减少令牌用量,同时保持准确性。

主要优势

  • 高效:大幅减少令牌用量(最低仅为标准 CoT 的 7.6%)
  • 快速:生成时间更短,响应速度更快
  • 节省成本:降低大模型调用的 API 成本
  • 保持准确性:与 CoT 相比,准确性相近甚至更高
  • 灵活:适用于各种推理任务和领域

功能

  1. Chain of Draft 核心实现

    • 简洁的推理步骤(通常不超过 5 个词)
    • 格式强制规范
    • 答案提取
  2. 性能分析

    • 令牌用量跟踪
    • 解答准确性监控
    • 执行时间测量
    • 特定领域的性能指标
  3. 自适应词数限制

    • 自动估算复杂度
    • 动态调整词数限制
    • 特定领域的校准
  4. 全面的示例数据库

    • CoT 到 CoD 的转换
    • 特定领域的示例(数学、代码、生物学、物理学、化学、谜题)
    • 根据问题相似度检索示例
  5. 格式强制规范

    • 后处理,确保遵守词数限制
    • 保留步骤结构
    • 遵守情况分析
  6. 混合推理方法

    • 自动在 CoD 和 CoT 之间进行选择
    • 特定领域的优化
    • 基于历史性能进行选择
  7. 兼容 OpenAI API

    • 可直接替换标准 OpenAI 客户端
    • 支持 completions 和 chat 接口
    • 轻松集成到现有工作流中

设置与安装

前置条件
  • Python 3.10+(用于 Python 实现)
  • Node.js 18+(用于 JavaScript 实现)
  • Anthropic API 密钥
Python 安装
  1. 克隆代码仓库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 在 .env 文件中配置 API 密钥:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务:
    python server.py
    
JavaScript 安装
  1. 克隆代码仓库
  2. 安装依赖项:
    npm install
    
  3. 在 .env 文件中配置 API 密钥:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务:
    node index.js
    

集成 Claude Desktop

要集成 Claude Desktop:

  1. 从 claude.ai/download 安装 Claude Desktop

  2. 创建或编辑 Claude Desktop 配置文件:

    ~/Library/Application Support/Claude/claude_desktop_config.json
    
  3. 添加服务配置(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"
                }
            }
        }
    }
    
  4. 重启 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 实现
  1. AnalyticsService:跟踪不同问题领域和推理方法的性能指标
  2. ComplexityEstimator:分析问题,以确定合适的字数限制
  3. ExampleDatabase:管理和检索示例,并将 CoT 示例转换为 CoD 格式
  4. FormatEnforcer:确保推理步骤符合字数限制
  5. ReasoningSelector:根据问题特征智能选择 CoD 或 CoT
JavaScript 实现
  1. analyticsDb:用于跟踪性能指标的内存数据库
  2. complexityEstimator:分析问题,以确定复杂度和合适的字数限制
  3. formatEnforcer:确保推理步骤符合字数限制
  4. reasoningSelector:根据问题特征和历史性能自动选择 CoD 或 CoT

两种实现都遵循相同的核心原则,并提供相同的 MCP 工具,因此在大多数使用场景中可以互换。

许可证

本项目采用 MIT 许可证开源。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。