粉碎MCP服务器
通过模型上下文协议进行多模型AI编排
将Crush CLI转换为Claude Code的智能MCP工具,通过自动策略选择实现跨多个AI模型的元编排。
______________________________________________________________________
这是什么?
一个MCP服务器,向Claude Code和其他MCP客户端公开Crush CLI的多模型编排功能。根据您的速度、成本和质量需求,从4种执行策略中进行选择。
Claude Code → Crush MCP Server → Crush CLI → Multiple AI Models
↑
(This Project)______________________________________________________________________
特性
✨ 4执行策略
- 快速:单型号,\;
}
class Orchestrator { private strategies: Map;
async execute(request: ExecuteRequest): Promise { const strategy = this.strategies.get(request.strategy || 'balanced'); return await strategy.execute(request.prompt, request.max_cost); } }
### 执行流程
┌──────────────────────────────────────────────────────────────┐ │ 1. User Prompt → Claude Code │ │ "Design a REST API using quality strategy" │ └────────────────────┬─────────────────────────────────────────┘ │ MCP Protocol ┌────────────────────▼─────────────────────────────────────────┐ │ 2. Crush MCP Server (This Project) │ │ - Parse strategy from request │ │ - Route to appropriate Strategy implementation │ └────────────────────┬─────────────────────────────────────────┘ │ ┌────────────────────▼─────────────────────────────────────────┐ │ 3. Quality Strategy │ │ Step 1: grok-3-mini (outline) → Cost: $0.002 │ │ Step 2: claude-sonnet-4-5 (detail) → Cost: $0.045 │ │ Step 3: iterative refinement → Cost: $0.016 │ │ │ │ Quality Score: 0.87 (target: 0.75) │ │ Total Cost: $0.063 │ │ Execution Time: 42s │ └────────────────────┬─────────────────────────────────────────┘ │ Formatted Response ┌────────────────────▼─────────────────────────────────────────┐ │ 4. Return to User via Claude Code │ │ { │ │ result: "...", │ │ metadata: { │ │ models_used: ["grok-3-mini", "claude-sonnet-4-5"], │ │ total_cost: 0.063, │ │ quality_score: 0.87, │ │ strategy: "quality" │ │ } │ │ } │ └──────────────────────────────────────────────────────────────┘
______________________________________________________________________
## 项目结构
crush-mcp-server/ ├── src/ │ ├── index.ts # MCP server (stdio transport) │ ├── orchestrator.ts # Strategy orchestration │ ├── crush-client.ts # Crush CLI wrapper │ ├── evaluator.ts # Quality evaluation (0-1 scale) │ ├── types.ts # TypeScript definitions │ └── strategies/ │ ├── base.ts # Strategy interface │ ├── fast.ts # Single model (grok-3-mini) │ ├── balanced.ts # Two models (grok → haiku) │ ├── quality.ts # Multi-model + iteration │ └── cost-optimized.ts # Budget-constrained ├── tests/ │ └── strategies.test.ts # 12 comprehensive tests ├── dist/ # Compiled JavaScript ├── QUICKSTART.md # Get started in 5 minutes ├── TESTING.md # Comprehensive testing guide ├── PROGRESS.md # Development tracker └── package.json
______________________________________________________________________
## 文档
- **[QUICKSTART.md](QUICKSTART.md)** -5分钟后开始⚡
- **[测试.md](TESTING.md)** -包含故障排除的完整测试指南
- **[PROGRESS.md](PROGRESS.md)** -发展历程和路线图
______________________________________________________________________
## 发展
### 运行测试
npm test # Run all tests npm run test:watch # Watch mode npm run test:ui # Visual UI npm run test:coverage # Coverage report
**当前**: ✅ 12/12测试通过
### 构建
npm run build # Compile TypeScript npm run dev # Watch mode (auto-rebuild) npm start # Run compiled server
### 工作流程
1. **先写测试** (TDD方法)
1. **实施策略**
1. **运行测试** (`npm test`)
1. **构建** (`npm run build`)
1. **克劳德代码测试**
______________________________________________________________________
## 战略详情
### 快速策略
// Single model, minimal tokens const result = await client.run({ model: 'grok-3-mini', prompt: userPrompt, maxTokens: 2000 }); // Target: 0.5
### 质量战略
// Step 1: Outline (grok) // Step 2: Detailed analysis (sonnet) // Step 3: Iterative refinement until quality >= 0.75 while (qualityScore 0.7
### 成本优化策略
// Calculate max tokens from budget const maxTokens = Math.min( Math.floor((budget / costPerMToken) * 1_000_000 / 2), 1000 );
const result = await client.run({ model: 'grok-3-mini', prompt, maxTokens }); // Target: Custom budget, quality: 0.5
______________________________________________________________________
## 配置
### 粉碎二进制路径
违约: `/opt/homebrew/bin/crush`
要自定义,请编辑 `src/orchestrator.ts`:
constructor(crushBinaryPath: string = '/your/custom/path/to/crush') {
### API密钥(用于实际执行)
在中配置 `~/.local/share/crush/crush.json`:
{ "providers": { "grok": { "api_key": "your-grok-api-key" }, "anthropic": { "api_key": "your-anthropic-api-key" } } }
______________________________________________________________________
## 路线图
### ✅ 完成(v0.1.0)
- 4执行策略
- MCP服务器实现
- 全面的测试套件
- 质量评价体系
- TypeScript构建系统
### 🔄 进行中
- Claude代码集成测试
- 真实世界使用验证
### 📋 计划的
- **会话管理** (CET-266)-有状态的多回合对话
- **显式多模型** (CET-265)-用户定义模型工作流程
- **性能优化** (CET-271)-缓存和响应时间
- **增强文档** (CET-269)-API参考和实例
看 [线性项目](https://linear.app/ceti-luxor/project/crush-mcp-server-fabcd9722fbc) 了解详情。
______________________________________________________________________
## 贡献
### 开发工作流程
1. **创建分支**: `git checkout -b feature/your-feature`
1. **编写测试**:添加到 `tests/strategies.test.ts`
1. **实施**:将代码添加到 `src/`
1. **测试**: `npm test` (必须通过)
1. **构建**: `npm run build`
1. **更新文档**:更新PROGRESS.md
1. **提交**: `git commit -m "feat: description"`
### 代码风格
- TypeScript严格模式
- ES2022目标
- Node16模块
- JSDoc综合评论
- TDD方法(先测试)
______________________________________________________________________
## 许可证
麻省理工学院
______________________________________________________________________
## 链接
- **线性项目**: https://linear.app/ceti-luxor/project/crush-mcp-server-fabcd9722fbc
- **Crush命令行界面**: https://github.com/charmbracelet/crush
- **MCP规范**: https://modelcontextprotocol.io
______________________________________________________________________
**状态**: ✅ 生产准备测试|🧪 集成测试正在进行中
**下一步**:重新启动Claude Code并尝试!看 [QUICKSTART.md](QUICKSTART.md)