此MCP服务器实现了链式草稿(CoD)推理方法,该方法在研究论文“链式草稿:通过少写来更快思考”中有所描述。CoD是一种新型范式,允许大型语言模型(LLMs)在解决问题时生成简洁但信息丰富的中间推理输出,显著减少令牌使用量同时保持准确性。
核心链式草稿实现
性能分析
自适应词数限制
全面示例数据库
格式强制执行
混合推理方法
OpenAI API兼容性
pip install -r requirements.txt
.env文件中配置API密钥:
ANTHROPIC_API_KEY=your_api_key_here
python server.py
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 Desktop
您也可以使用Claude CLI添加服务器:
# 对于Python实现
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "python3 /absolute/path/to/cod/server.py"
# 对于JavaScript实现
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "node /absolute/path/to/cod/index.js"
链式草稿服务器提供以下工具:
| 工具 | 描述 |
|---|---|
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代码中直接使用链式草稿客户端:
from client import ChainOfDraftClient
# 创建客户端
cod_client = ChainOfDraftClient()
# 直接使用
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/Node.js应用程序:
import { Anthropic } from "@anthropic-ai/sdk";
import dotenv from "dotenv";
// 加载环境变量
dotenv.config();
// 创建Anthropic客户端
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// 导入链式草稿客户端
import chainOfDraftClient from './lib/chain-of-draft-client.js';
// 使用客户端
async function solveMathProblem() {
const result = await chainOfDraftClient.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两种实现方式,两者都由几个集成组件组成:
两种实现遵循相同的核心原则,并提供相同的MCP工具,使其在大多数情况下可互换使用。
本项目是开源的,采用MIT许可证。 </中文翻译>