MCP代码API-多供应商代码生成服务器
  ](https://golang.org)  ](https://github.com/cecil-the-coder/mcp-code-api/releases/latest)
高性能 模型上下文协议(MCP)服务器 支持多个AI提供商(Cerebras、OpenRouter、OpenAI、Anthropic、Gemini等)。专为 使用Claude Code、Cline或Cursor进行规划 同时利用Cerebras等快速提供商进行代码生成,以最大限度地提高速度并避免API限制。
🚀 为什么去?
Go实现相较于Node.js版本具有显著的优势:
- 性能提高10倍 用于大型代码生成任务
- 单二进制部署 -不需要Node.js运行时
- 更低的内存占用 更好地利用资源
- 跨平台编译 便于部署
- 类型安全性 更好的错误处理
- 并发处理 用于处理多个请求
✨ 特性
- 🎯 智能API路由 Cerebras和OpenRouter之间自动回退
- 🔧 单一“写入”工具 适用于所有代码操作(创建、编辑、生成)
- 🎨 增强的视觉差异 带有表情符号指示符号(✅ 添加,❌ 移除,🔍 更改)
- 🔄 自动指令系统 强制正确使用MCP工具
- 📁 上下文感知处理 支持多文件
- 💻 多IDE支持 -克劳德代码、游标、Cline、VS代码
- ⚙️ 交互式配置向导 便于设置
- 📝 综合录井 具有调试支持
📋 系统要求
- 转到1.21+ (从源头建设)
- 脑API密钥 (主要)或 OpenRouter API密钥 (回退)
- 支持的IDE:克劳德代码、游标、Cline或VS代码
🚀 快速开始
选项1:从二进制文件安装(推荐)
# Download the latest release for your platform
curl -L https://github.com/cecil-the-coder/mcp-code-api/releases/latest/download/mcp-code-api-$(uname -s)-$(uname -m) -o mcp-code-api
# Make it executable
chmod +x mcp-code-api
# Move to your PATH
sudo mv mcp-code-api /usr/local/bin/选项2:从源代码构建
# Clone the repository
git clone https://github.com/cecil-the-coder/mcp-code-api.git
cd mcp-code-api
# Build the binary
make build
# Install to system PATH
make install📱 配置
1.运行配置向导
mcp-code-api config向导将指导您完成以下操作:
- 为Cerebras和/或OpenRouter设置API密钥
- 配置首选IDE
- 测试API连接
- 正在生成配置文件
2.设置API密钥(可选手动设置)
# Cerebras API (Primary)
export CEREBRAS_API_KEY="your_cerebras_api_key"
# OpenRouter API (Optional Fallback)
export OPENROUTER_API_KEY="your_openrouter_api_key"
# Set model preferences (optional)
export CEREBRAS_MODEL="zai-glm-4.6"
export OPENROUTER_MODEL="qwen/qwen3-coder"3.启动MCP服务器
mcp-code-api server💻 IDE集成
克劳德代码
配置向导会自动设置Claude代码。配置后:
- 重新启动Claude代码
- 这
write工具将出现在您的工具列表中 - 将其用于所有代码操作
光标
- 运行配置向导
- 将生成的规则复制到Cursor→ 设置→ 开发者→ 用户规则
- 重新启动游标
克莱恩
- 运行配置向导
- 重新启动Cline
- 这
write工具将可用
VS Code
- 为VS Code安装MCP扩展
- 运行配置向导
- 重新启动VS代码
- 这
write工具将通过MCP提供
🔧 用法
MCP工具提供了一个 write 处理所有代码操作的工具:
基本用法
# In your IDE, use natural language:
"Create a REST API with Express.js that handles user authentication"
"Add input validation to the login function in auth.js"
"Generate a Python script that processes CSV files and outputs to JSON"上下文文件的高级用法
"Refactor the database connection in models.js using the pattern from utils.js"
# The tool will automatically read context files:
# - models.js (existing file to modify)
# - utils.js (context for patterns)参数
这 write 工具接受:
- 文件路径 (必需):目标文件的绝对路径
- 提示 (必填):创建/修改内容的详细说明
- 上下文文件 (可选):上下文的文件路径数组
🎨 视觉差异
Go实现通过以下方式增强了视觉差异:
- ✅ 绿色指示灯 对于新线路
- ❌ 红色指示灯 对于已删除的线路
- 🔍 更改指标 对于修改后的内容
- 📊 汇总统计 (添加、删除、修改)
- 📁 完整文件路径 为清晰起见
🔒 自动指令系统
Go实现包括一个增强的自动指令系统,该系统:
- 自动强制使用MCP工具
- 防止直接编辑文件
- 为AI模型提供清晰的说明
- 确保所有IDE的行为一致
🏗️ 发展
建筑
# Build for current platform
make build
# Build for Linux (cross-compile)
make linux
# Build all platforms
make release测试
# Run tests
make test
# Run tests with coverage
make coverage代码质量
# Format code
make format
# Run linter
make lint码头工人
# Build Docker image
make docker-build
# Run Docker container
make docker-run📁 项目结构
mcp-code-api/
├── 📄 go.mod # Go module definition
├── 📄 main.go # Entry point
├── 📁 cmd/ # CLI commands
│ ├── 📜 root.go # Root command
│ ├── 📜 server.go # Server command
│ └── 📜 config.go # Configuration command
├── 📁 internal/ # Internal packages
│ ├── 📁 api/ # API integrations
│ │ ├── 📜 router.go # API router
│ │ ├── 📜 cerebras.go # Cerebras client
│ │ └── 📜 openrouter.go # OpenRouter client
│ ├── 📁 config/ # Configuration management
│ │ ├── 📜 config.go # Configuration types
│ │ ├── 📜 constants.go # Constants
│ │ ├── 📜 utils.go # Utility functions
│ │ └── 📁 interactive/ # Interactive wizards
│ ├── 📁 mcp/ # MCP server implementation
│ │ ├── 📜 server.go # Main MCP server
│ │ └── 📜 write_tool.go # Write tool handler
│ ├── 📁 utils/ # General utilities
│ │ └── 📜 file_utils.go # File operations
│ ├── 📁 formatting/ # Response formatting
│ │ └── 📜 response_formatter.go # Visual diffs
│ └── 📁 logger/ # Logging system
│ └── 📜 logger.go # Logger implementation
├── 📄 Makefile # Build automation
├── 📄 README.md # This file
└── 📄 LICENSE # MIT License🔧 配置选项
环境变量
# Cerebras Configuration
CEREBRAS_API_KEY=your_key
CEREBRAS_MODEL=zai-glm-4.6
CEREBRAS_TEMPERATURE=0.6
CEREBRAS_MAX_TOKENS=4096
# OpenRouter Configuration
OPENROUTER_API_KEY=your_key
OPENROUTER_MODEL=qwen/qwen3-coder
OPENROUTER_SITE_URL=https://github.com/your-repo
OPENROUTER_SITE_NAME=Your Project
# Server Configuration
CEREBRAS_MCP_LOG_LEVEL=info
CEREBRAS_MCP_LOG_FILE=/path/to/logfile
CEREBRAS_MCP_DEBUG=false
CEREBRAS_MCP_VERBOSE=false配置文件
您还可以在以下位置使用YAML配置文件 ~/.mcp-code-api/config.yaml:
cerebras:
api_key: "your_key"
model: "zai-glm-4.6"
temperature: 0.6
max_tokens: 4096
openrouter:
api_key: "your_key"
model: "qwen/qwen3-coder"
site_url: "https://github.com/your-repo"
site_name: "Your Project"
logging:
level: "info"
verbose: false
debug: false
file: "/path/to/logfile"负载平衡和故障转移
服务器支持每个提供程序多个API密钥,以实现自动负载平衡和故障转移:
多个API密钥配置
providers:
cerebras:
# Multiple keys - automatically load balanced
api_keys:
- "${CEREBRAS_API_KEY_1}"
- "${CEREBRAS_API_KEY_2}"
- "${CEREBRAS_API_KEY_3}"
model: "zai-glm-4.6"
openrouter:
# Single key - backward compatible
api_key: "${OPENROUTER_API_KEY}"
model: "qwen/qwen3-coder"运作原理
- 循环负载平衡:请求在所有配置的密钥上均匀分布
- 自动故障转移:如果一个密钥失败(速率限制、错误),则自动尝试下一个可用密钥
- 指数退避:失败的按键输入回退周期:1秒→ 2s → 4s → 8s → 最大60秒
- 健康跟踪:系统监控每个密钥的运行状况,并跳过不健康的密钥
- 自动恢复:钥匙在退避期后自动恢复并重新加入轮换
益处
- 规避费率限制:使用多个键乘以有效利率限制
- 高可用性:即使某些密钥出现故障或速率受限,服务也会继续
- 更好的吞吐量:在多个密钥之间分配负载,以实现更高的并发性
- 容错:从瞬态故障中自动恢复
推荐设置
- 轻度使用:1个密钥就足够了
- 生产:建议使用2-3个密钥来实现故障转移功能
- 高音量:3-5个按键可实现最佳性能和弹性
环境变量示例
# Set multiple keys
export CEREBRAS_API_KEY_1="csk-primary-xxxxx"
export CEREBRAS_API_KEY_2="csk-secondary-xxxxx"
export CEREBRAS_API_KEY_3="csk-tertiary-xxxxx"
# Start server - will automatically use all configured keys
mcp-code-api server有关完整的示例配置,请参阅 config.example.yaml.
🔌 使用API兼容提供程序
服务器支持 与API兼容的提供程序 -实现与主要提供商相同的API格式的第三方服务。这包括:
- 人类相容 (例如,使用GLM-4.6的z.ai、本地代理)
- OpenAI兼容 (例如,LM工作室、Ollama、LocalAI)
- 自定义自托管端点
Anthropic兼容供应商(z.ai)
MCP代码API支持任何实现Anthropic消息API格式的提供商。
配置文件方法
添加到您的 ~/.mcp-code-api/config.yaml:
providers:
anthropic:
# z.ai's authentication token
api_key: "your-zai-api-key"
# z.ai's Anthropic-compatible endpoint
base_url: "https://api.z.ai/api/anthropic"
# Use Z.ai's GLM-4.6 model (200K context, optimized for coding)
model: "glm-4.6"
enabled:
- anthropic
preferred_order:
- anthropic可用的Z.ai型号:
glm-4.6-最新旗舰型号(200K上下文,最适合编码/推理)glm-4.5-air-更轻/更快的变体,用于快速任务
环境变量法
# z.ai example
export ANTHROPIC_AUTH_TOKEN="your-zai-api-key"
export ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic"
# Start the server
./mcp-code-api server备注:两者都有 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 支持环境变量。
多人视觉提供者(高级)
如果您想同时使用标准Anthropic和兼容的提供者:
providers:
# Standard Anthropic
anthropic:
api_key: "sk-ant-..."
base_url: "https://api.anthropic.com"
model: "claude-3-5-sonnet-20241022"
# Custom provider: z.ai
custom:
zai:
type: "anthropic"
name: "Z.ai"
api_key: "your-zai-api-key"
base_url: "https://api.z.ai/api/anthropic"
default_model: "glm-4.6"
supports_streaming: true
supports_tool_calling: true
tool_format: "anthropic"
enabled:
- anthropic
- zai
preferred_order:
- zai # Try z.ai first
- anthropic # Fall back to official AnthropicOpenAI兼容提供商(LM Studio,Ollama)
providers:
openai:
api_key: "lm-studio" # Can be any value for LM Studio
base_url: "http://localhost:1234/v1"
model: "local-model"或者使用环境变量:
export OPENAI_API_KEY="lm-studio"
export OPENAI_BASE_URL="http://localhost:1234/v1"支持的环境变量
所有提供程序现在都支持通过环境变量自定义基本URL:
| 提供程序 | API密钥环境变量 | 基本URL环境变量 |
|---|---|---|
| 人类学 | ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN | ANTHROPIC_BASE_URL |
| OpenAI | OPENAI_API_KEY | OPENAI_BASE_URL |
| 双子座 | GEMINI_API_KEY | GEMINI_BASE_URL |
| Qwen | QWEN_API_KEY | QWEN_BASE_URL |
| 大脑 | CEREBRAS_API_KEY | CEREBRAS_BASE_URL |
| OpenRouter | OPENROUTER_API_KEY | OPENROUTER_BASE_URL |
示例:
# Use an OpenAI-compatible endpoint (like LM Studio)
export OPENAI_API_KEY="lm-studio-key"
export OPENAI_BASE_URL="http://localhost:1234/v1"
# Use a custom Anthropic-compatible endpoint (z.ai)
export ANTHROPIC_AUTH_TOKEN="your-token"
export ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic"故障排除
身份验证失败:
- 验证您的令牌/API密钥是否正确
- 检查基本URL是否包含正确的API版本路径
- 一些提供商需要特定的标头-请查看他们的文档
不同的API格式: 如果提供程序使用稍微不同的格式,您可能需要创建一个自定义提供程序适配器。
速率限制: 一些兼容的提供商的速率限制与官方API不同。相应地调整您的使用方式。
🤝 贡献
欢迎投稿!请查看我们的 贡献指南 了解详情。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🆘 支持
🔗 相关项目
- -原始Node.js实现
- Cerebras人工智能平台 -AI平台
- 模型上下文协议 -MCP规范
🎯 路线图
- \[ \] 实时流媒体 用于生成大代码
- \[ \] 插件系统 用于自定义工具
- \[ \] 工作空间管理 用于项目级操作
- \[ \] 性能监控 和指标
- \[ \] 高级缓存 以获得更快的响应
- \[ \] 多型号支持 具有自动选择功能
______________________________________________________________________
⚡ 使用Go构建,实现最高性能和可靠性
