链式草稿提示工具

MCP链式草稿提示工具通过将标准提示转换为链式草稿或链式思维格式,显著提升大语言模型的推理质量,同时降低token使用量并保持高准确性。

  • by brendancopley
  • Python
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 brendancopley/mcp-chain-of-draft-prompt-tool

使用说明

MCP草稿链(CoD)提示工具

概述

MCP草稿链(CoD)提示工具是一个强大的模型上下文协议工具,通过将标准提示转换为草稿链(CoD)或思维链(CoT)格式来增强LLM推理。其工作原理如下:

  1. 输入转换:您的常规提示会自动转换为CoD/CoT格式
  2. LLM处理:转换后的提示将传递给您选择的LLM(Claude、GPT、Ollama或本地模型)
  3. 增强推理:LLM使用结构化推理步骤处理请求
  4. 结果转换:回复被转换回清晰简洁的格式

这种方法显著提高了推理质量,同时减少了令牌使用并保持了高准确性。

BYOLLM支持

此工具支持“自带LLM”方法,允许您使用您选择的任何语言模型:

支持的LLM集成

  • 云服务
    • 人物克劳德
    • OpenAI GPT模型
    • 米斯特拉尔AI
  • 局部模型
    • Ollama(所有型号)
    • 局部火焰变体
    • 支持聊天完成API的任何模型

配置LLM

  1. 云服务

    # For Anthropic Claude
    export ANTHROPIC_API_KEY=your_key_here
    
    # For OpenAI
    export OPENAI_API_KEY=your_key_here
    
    # For Mistral AI
    export MISTRAL_API_KEY=your_key_here
    
  2. Ollama的本地模型

    # First install Ollama
    curl https://ollama.ai/install.sh | sh
    
    # Pull your preferred model
    ollama pull llama2
    # or
    ollama pull mistral
    # or any other model
    
    # Configure the tool to use Ollama
    export MCP_LLM_PROVIDER=ollama
    export MCP_OLLAMA_MODEL=llama2  # or your chosen model
    
  3. 自定义本地模型

    # Point to your local model API
    export MCP_LLM_PROVIDER=custom
    export MCP_CUSTOM_LLM_ENDPOINT=http://localhost:your_port
    

鸣谢

该项目实现了草稿链(CoD)推理方法,作为Claude的模型上下文协议(MCP)提示工具。草案实施的核心链基于以下工作 统计员我们感谢他们在开发这种高效推理方法方面所做的开创性工作。

原始存储库: https://github.com/stat-guy/chain-of-draft

关键利益

  • 效率:代币使用量大幅减少(仅为标准CoT的7.6%)
  • 速度:由于生成时间更短,响应速度更快
  • 成本节约:降低LLM调用的API成本
  • 保持准确性:与CoT相比,精度相似甚至有所提高
  • 灵活性:适用于各种推理任务和领域

特性

  1. 草案实施的核心链

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

    • 令牌使用跟踪
    • 解决方案精度监控
    • 执行时间测量
    • 特定领域的性能指标
  3. 自适应字数限制

    • 自动复杂度估计
    • 字数限制的动态调整
    • 特定域校准
  4. 综合示例数据库

    • CoT到CoD的转变
    • 特定领域的示例(数学、代码、生物学、物理、化学、拼图)
    • 基于问题相似度的示例检索
  5. 格式强制

    • 后处理以确保遵守字数限制
    • 台阶结构保护
    • 依从性分析
  6. 混合推理方法

    • CoD和CoT之间的自动选择
    • 特定领域优化
    • 历史绩效选择
  7. OpenAI API兼容性

    • 直接替换标准OpenAI客户端
    • 支持补全和聊天界面
    • 轻松集成到现有工作流中

设置和安装

先决条件

  • Python 3.10+(用于Python实现)
  • Node.js 22+(用于JavaScript实现)
  • Nx(用于构建单可执行应用程序)

Python安装

  1. 克隆存储库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 在中配置API密钥 .env 文件:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务器:
    python server.py
    

JavaScript/TypeScript安装

  1. 克隆存储库
  2. 安装依赖项:
    npm install
    
  3. 在中配置API密钥 .env 文件:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 构建并运行服务器:
    # Build TypeScript files using Nx
    npm run nx build
    
    # Start the server
    npm start
    
    # For development with auto-reload:
    npm run dev
    

可用脚本:

  • npm run nx build:使用Nx构建系统将TypeScript编译为JavaScript
  • npm run build:sea:为所有平台创建单个可执行应用程序
  • npm start:从运行编译后的服务器 dist
  • npm test:对服务器运行测试查询
  • npm run dev:直接使用ts节点运行TypeScript服务器(对开发有用)

该项目使用Nx作为其构建系统,提供:

  • 高效缓存和增量构建
  • 跨平台构建支持
  • 集成SEA生成
  • 依赖关系图可视化
  • 跨环境的一致构建过程

单可执行应用程序(SEA)

该项目支持使用Node.js 22+和 @getlarge/nx节点海 插件。这允许您创建不需要在目标系统上安装Node.js的独立可执行文件。

构建SEA可执行文件

该项目包括几个用于构建SEA可执行文件的脚本:

# Build for all platforms
npm run build:sea

# Build for specific platforms
npm run build:macos   # macOS
npm run build:linux   # Linux
npm run build:windows # Windows

SEA构建配置

该项目使用Nx来管理构建过程。SEA配置是通过nx-node SEA插件处理的,该插件提供了一种创建node.js单可执行应用程序的简化方法。

SEA构建过程的关键特征:

  • 跨平台支持(macOS、Linux、Windows)
  • 自动依赖绑定
  • 优化的二进制大小
  • 不需要运行时依赖关系

使用SEA可执行文件

一旦构建完成,SEA可执行文件可以在 dist 目录。这些可执行文件:

  • 完全独立
  • 不需要安装Node.js
  • 可以直接分发和运行
  • 维护原始应用程序的所有功能

对于Claude Desktop与SEA可执行文件的集成,请更新配置以使用可执行文件路径:

{
    "mcpServers": {
        "chain-of-draft-prompt-tool": {
            "command": "/path/to/mcp-chain-of-draft-prompt-tool",
            "env": {
                "ANTHROPIC_API_KEY": "your_api_key_here"
            }
        }
    }
}

Claude桌面集成

要与Claude Desktop集成,请执行以下操作:

  1. 从以下位置安装Claude Desktop claude.ai/下载

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

    ~/Library/Application Support/Claude/claude_desktop_config.json
    
  3. 添加工具配置(Python版本):

    {
        "mcpServers": {
            "chain-of-draft-prompt-tool": {
                "command": "python3",
                "args": ["/absolute/path/to/cod/server.py"],
                "env": {
                    "ANTHROPIC_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    

    或者对于JavaScript版本:

    {
        "mcpServers": {
            "chain-of-draft-prompt-tool": {
                "command": "node",
                "args": ["/absolute/path/to/cod/index.js"],
                "env": {
                    "ANTHROPIC_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    
  4. 重新启动克劳德桌面

您还可以使用Claude CLI添加该工具:

# For Python implementation
claude mcp add chain-of-draft-prompt-tool -e ANTHROPIC_API_KEY="your_api_key_here" "python3 /absolute/path/to/cod/server.py"

# For JavaScript implementation
claude mcp add chain-of-draft-prompt-tool -e ANTHROPIC_API_KEY="your_api_key_here" "node /absolute/path/to/cod/index.js"

与Dive GUI一起使用

潜水 是一个优秀的开源MCP主机桌面应用程序,它提供了一个用户友好的GUI,用于与像这样的MCP工具进行交互。它支持多种LLM,包括ChatGPT、Anthropic Claude、Ollama和其他与OpenAI兼容的模型。

与Dive整合

  1. 从他们的网站下载并安装Dive 发布页面

  2. 在Dive的MCP设置中配置草稿链工具:

{
  "mcpServers": {
    "chain-of-draft-prompt-tool": {
      "command": "/path/to/mcp-chain-of-draft-prompt-tool",
      "enabled": true,
      "env": {
        "ANTHROPIC_API_KEY": "your_api_key_here"
      }
    }
  }
}

如果您使用的是非SEA版本:

{
  "mcpServers": {
    "chain-of-draft-prompt-tool": {
      "command": "node",
      "args": ["/path/to/dist/index.js"],
      "enabled": true,
      "env": {
        "ANTHROPIC_API_KEY": "your_api_key_here"
      }
    }
  }
}

使用Dive的主要好处

  • 🌐 通用LLM支持多个API密钥管理
  • 💻 跨平台可用性(Windows、MacOS、Linux)
  • 🔄 在stdio和SSE模式下无缝集成MCP
  • 🌍 多语言界面
  • 💡 自定义说明和系统提示
  • 🔄 自动更新

使用Dive提供了一种通过现代、功能丰富的界面与Chain of Draft工具交互的便捷方式,同时保持了MCP协议的所有优点。

MCP检验员测试

该项目包括与MCP Inspector工具的集成,该工具为测试和调试MCP工具提供了一个可视化界面。这在开发过程中或当您想检查工具的行为时特别有用。

运行检查器

您可以使用提供的npm脚本启动MCP检查器:

# Start the MCP Inspector with the tool
npm run test-inspector

# Or run it manually
npx @modelcontextprotocol/inspector -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY -- node dist/index.js

这将:

  1. 在后台启动MCP服务器
  2. 在默认浏览器中启动MCP检查器界面
  3. 连接到正在运行的服务器进行测试

使用检查器界面

MCP检查员提供:

  • 🔍 工具调用和响应的实时可视化
  • 📝 MCP功能的交互式测试
  • 🔄 请求/响应历史记录
  • 🐛 每次交互的调试信息
  • 📊 性能指标和时间数据

这使其成为以下方面的宝贵工具:

  • 开发与调试
  • 了解工具行为
  • 测试不同的输入和场景
  • 验证MCP合规性
  • 性能优化

检查员将在 http://localhost:5173 默认情况下。

可用工具

Chain of Draft服务器提供以下工具:

工具 说明
chain_of_draft_solve 使用草稿链推理解决问题
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 with specific LLM provider
cod_client = ChainOfDraftClient(
    llm_provider="ollama",  # or "anthropic", "openai", "mistral", "custom"
    model_name="llama2"     # specify your model
)

# 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/TypeScript客户端

对于Types/Node.js应用程序:

import { ChainOfDraftClient } from './lib/chain-of-draft-client';

// Create client with your preferred LLM
const client = new ChainOfDraftClient({
  provider: 'ollama',           // or 'anthropic', 'openai', 'mistral', 'custom'
  model: 'llama2',             // your chosen model
  endpoint: 'http://localhost:11434'  // for custom endpoints
});

// Use the client
async function solveMathProblem() {
  const result = await client.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. 分析服务:跟踪不同问题域和推理方法的性能指标
  2. 复杂性估计器:分析问题以确定适当的字数限制
  3. 示例数据库:管理和检索示例,将CoT示例转换为CoD格式
  4. 格式执行器:确保推理步骤符合字数限制
  5. 重新分配选择器:根据问题特征在CoD和CoT之间进行智能选择

JavaScript实现

  1. analyticsDb:用于跟踪性能指标的内存数据库
  2. 复杂性估计器:分析问题以确定复杂性和适当的字数限制
  3. 格式执行器:确保推理步骤符合字数限制
  4. 推理选择器:根据问题特征和历史性能自动在CoD和CoT之间进行选择

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

许可证

这个项目是开源的,可以在麻省理工学院的许可下使用。