返回市场
MCP-草稿提示工具链

MCP-草稿提示工具链

作者:brendancopley15 星标更新:2025-09-08

项目介绍

MseeP.ai 安全评估徽章

MCP 草稿链 (CoD) 提示工具

smithery 徽章 版本 包大小 许可证 星标数 分支数 在 MseeP 上验证

概述

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

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

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

支持 BYOLLM

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

支持的 LLM 集成

  • 云服务
    • Anthropic Claude
    • OpenAI GPT 模型
    • Mistral AI
  • 本地模型
    • Ollama(所有模型)
    • 本地 LLama 变体
    • 支持聊天完成 API 的任何模型

配置您的 LLM

  1. 云服务

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

    # 首先安装 Ollama
    curl https://ollama.ai/install.sh | sh
    
    # 拉取您偏好的模型
    ollama pull llama2
    # 或
    ollama pull mistral
    # 或其他模型
    
    # 配置工具以使用 Ollama
    export MCP_LLM_PROVIDER=ollama
    export MCP_OLLAMA_MODEL=llama2  # 或您选择的模型
    
  3. 自定义本地模型

    # 指向您的本地模型 API
    export MCP_LLM_PROVIDER=custom
    export MCP_CUSTOM_LLM_ENDPOINT=http://localhost:your_port
    

致谢

本项目实现了作为 Claude 的模型上下文协议 (MCP) 提示工具的草稿链 (CoD) 推理方法。核心草稿链实现基于 stat-guy 的工作。我们对他们在开发这种高效推理方法方面的开创性工作表示感谢。

原始仓库: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. .env 文件中配置 API 密钥:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务器:
    python server.py
    

JavaScript/TypeScript 安装

  1. 克隆仓库
  2. 安装依赖项:
    npm install
    
  3. .env 文件中配置 API 密钥:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 构建并运行服务器:
    # 使用 Nx 编译 TypeScript 文件
    npm run nx build
    
    # 启动服务器
    npm start
    
    # 开发模式下自动重载:
    npm run dev
    

可用脚本:

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

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

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

单可执行应用程序 (SEA)

本项目支持使用 Node.js 22+ 和 @getlarge/nx-node-sea 插件构建单可执行应用程序 (SEA)。这允许您创建不需要在目标系统上安装 Node.js 的独立可执行文件。

构建 SEA 可执行文件

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

# 为所有平台构建
npm run build:sea

# 为特定平台构建
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 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-prompt-tool": {
                "command": "python3",
                "args": ["/绝对路径/to/cod/server.py"],
                "env": {
                    "ANTHROPIC_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    

    或对于 JavaScript 版本:

    {
        "mcpServers": {
            "chain-of-draft-prompt-tool": {
                "command": "node",
                "args": ["/绝对路径/to/cod/index.js"],
                "env": {
                    "ANTHROPIC_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    
  4. 重启 Claude Desktop

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

# 对于 Python 实现
claude mcp add chain-of-draft-prompt-tool -e ANTHROPIC_API_KEY="your_api_key_here" "python3 /绝对路径/to/cod/server.py"

# 对于 JavaScript 实现
claude mcp add chain-of-draft-prompt-tool -e ANTHROPIC_API_KEY="your_api_key_here" "node /绝对路径/to/cod/index.js"

使用 Dive GUI

Dive 是一个优秀的开源 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)
  • 🔄 MCP 在 stdio 和 SSE 模式下的无缝集成
  • 🌍 多语言界面
  • 💡 自定义指令和系统提示
  • 🔄 自动更新

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

使用 MCP Inspector 测试

该项目包括与 MCP Inspector 工具的集成,该工具提供了一个可视界面来测试和调试 MCP 工具。这对于开发或检查工具行为特别有用。

运行 Inspector

您可以使用提供的 npm 脚本启动 MCP Inspector:

# 使用工具启动 MCP Inspector
npm run test-inspector

# 或手动运行
npx @modelcontextprotocol/inspector -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY -- node dist/index.js

这将:

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

使用 Inspector 界面

MCP Inspector 提供:

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

这使其成为以下用途的宝贵工具:

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

Inspector 默认将在 http://localhost:5173 可用。

可用工具

草稿链服务器提供以下工具:

工具描述
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 代码中直接使用草稿链客户端:

from client import ChainOfDraftClient

# 使用特定 LLM 提供商创建客户端
cod_client = ChainOfDraftClient(
    llm_provider="ollama",  # 或 "anthropic", "openai", "mistral", "custom"
    model_name="llama2"     # 指定您的模型
)

# 直接使用
result = await cod_client.solve_with_reasoning(
    problem="求解:247 + 394 = ?",
    domain="math"
)

print(f"答案:{result['final_answer']}")
print(f"推理步骤:{result['reasoning_steps']}")
print(f"使用的令牌数量:{result['token_count']}")

JavaScript/TypeScript 客户端

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

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

// 使用您偏好的 LLM 创建客户端
const client = new ChainOfDraftClient({
  provider: 'ollama',           // 或 'anthropic', 'openai', 'mistral', 'custom'
  model: 'llama2',             // 您选择的模型
  endpoint: 'http://localhost:11434'  // 对于自定义端点
});

// 使用客户端
async function solveMathProblem() {
  const result = await client.solveWithReasoning({
    problem: "求解:247 + 394 = ?",
    domain: "math",
    max_words_per_step: 5
  });
  
  console.log(`答案:${result.final_answer}`);
  console.log(`推理步骤:${result.reasoning_steps}`);
  console.log(`使用的令牌数量:${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 工具,使得它们在大多数情况下可以互换