使用说明
推理编码器MCP服务器
这是一个模型上下文协议(MCP)服务器,它提供了一个灵活且可配置的两阶段推理和响应生成系统。这是原版的叉子 《Deepseek Thinking》第3.5章十四行诗-CLINE-MCP 该项目通过支持多个人工智能提供商和模型进行推理和编码/响应生成,显著扩展了其能力。
与原始版本相比的主要变化和改进
最初的项目是专门设计的,使用DeepSeek R1进行推理,使用Claude 3.5 Sonnet进行响应生成,两者都只能通过OpenRouter访问。这个分支将架构泛化,以支持更广泛的提供者和模型。以下是主要差异的细分:
-
多提供商支持: 这个分叉现在可以使用以下功能,而不是锁定在OpenRouter中:
- 开放路由
- 开放人工智能
- 人类学(克劳德)
- 深度求索
- 谷歌双子座
- 谷歌顶点AI
-
可配置的推理和编码模型: 最初的硬编码DeepSeek用于推理,Claude用于最终响应。此分叉允许您配置 两者 推理和编码/响应生成模型独立。您可以混合搭配供应商。例如,您可以使用Gemini进行推理,使用OpenAI进行最终响应。
-
providers.json配置: 一个新的providers.json引入文件来管理每个提供者的可用模型及其特定参数(温度、topp等)。这使得添加新模型或调整现有模型变得容易,而无需修改核心代码。 -
环境变量配置: 推理和编码提供者/模型的选择现在主要通过环境变量来控制:
REASONING_PROVIDER:指定推理阶段的提供者(例如。,openai,gemini,deepseek,openrouter,anthropic,vertex).REASONING_MODEL:指定用于推理的模型(例如。,gpt-4,gemini-pro,deepseek/deepseek-r1).CODING_PROVIDER:指定编码/响应生成阶段的提供程序。CODING_MODEL:指定最终响应的模型。
-
动态客户端初始化: 代码现在只根据
REASONING_PROVIDER和CODING_PROVIDER设置。这避免了不必要的初始化和依赖关系。 -
统一
getReasoning和getFinalResponse: 特定于提供者的逻辑被抽象为getReasoning和getFinalResponse函数,使核心任务处理逻辑提供者不可知。 -
保留核心MCP结构: fork保留了使用MCP的核心结构,因此它将与任何MCP客户端集成,就像原始实现一样。它定义了
generate_response和check_response_status工具以同样的方式。 -
保持临床整合: 与原版一样,该分叉旨在与Claude Desktop扩展Cline集成。
-
保留对话历史记录功能: 分叉实现保留了使用Cline的对话历史作为上下文的特点。
-
无硬编码型号: 新实现中没有硬编码的模型,模型在.env文件和providers.json中定义
特性
-
两阶段处理:
- 使用可配置模型进行初始推理(例如DeepSeek、GPT-4、Gemini Pro)。
- 使用可配置模型进行最终响应/代码生成(例如,Claude、GPT-4、DeepSeek Chat)。
- 将第一阶段的推理注入第二阶段的上下文中。
-
灵活的供应商和型号选择:
- 从OpenRouter、OpenAI、Anthropic、DeepSeek、Gemini和Vertex AI中选择推理和编码阶段。
- 通过以下方式轻松配置模型及其参数
providers.json以及环境变量。
-
智能对话管理(继承自原版):
- 使用文件修改时间检测活动的Cline对话。
- 处理多个并发对话。
- 自动过滤掉已结束的对话。
- 支持上下文清除。
-
优化参数(可配置):
- 遵守特定于模型的上下文限制(例如,DeepSeek推理的50000个字符,响应模型的更大限制)。
- 参数如
temperature,top_p,以及repetition_penalty可按型号配置providers.json.
-
响应轮询(继承自原始):
- 使用轮询机制
generate_response(获取任务ID)以及check_response_status(检查状态)。这处理了LLM调用的异步性质。
- 使用轮询机制
安装
通过Smithery安装
通过以下方式自动安装克劳德桌面推理编码器 铁匠铺:
npx -y @smithery/cli install @mario-andreschak/mcp-reasoning-coding --client claude
手动安装
-
克隆此存储库:
git clone https://github.com/mario-andreschak/mcp-reasoning-coding.git cd /mcp-reasoning-coding -
安装依赖关系:
npm install -
创建一个
.env文件: 此文件将保存您的API密钥和提供商/型号选择。例子:# --- Required API Keys (at least one) --- OPENROUTER_API_KEY=your_openrouter_key OPENAI_API_KEY=your_openai_key ANTHROPIC_API_KEY=your_anthropic_key DEEPSEEK_API_KEY=your_deepseek_key GEMINI_API_KEY=your_gemini_key VERTEX_PROJECT_ID=your_vertex_project_id # For Vertex AI VERTEX_REGION=your_vertex_region # For Vertex AI # --- Provider and Model Selection --- REASONING_PROVIDER=openrouter REASONING_MODEL=deepseek/deepseek-r1 CODING_PROVIDER=openrouter CODING_MODEL=anthropic/claude-3.5-sonnet:beta重要提示: 您只需要为您打算使用的提供程序提供API密钥。如果你只使用OpenAI,你不需要
OPENROUTER_API_KEY例如。 -
providers.json文件: 此文件定义了每个提供程序的可用模型及其参数。将此文件放入src文件夹。示例(src/providers.json):{ "openrouter": { "deepseek/deepseek-r1": { "temperature": 0.7, "top_p": 1 }, "anthropic/claude-3.5-sonnet:beta": { "temperature": 0.7, "top_p": 1, "repetition_penalty": 1 }, "deepseek/deepseek-chat":{ "temperature": 0.7, "top_p": 1 } }, "openai": { "gpt-4": { "temperature": 0.7, "top_p": 1 }, "gpt-3.5-turbo": { "temperature": 0.7, "top_p": 1 } }, "anthropic": { "claude-3-opus-20240229": { "temperature": 0.7, "top_p": 1 } }, "deepseek": { "deepseek-coder": { "temperature": 0.7, "top_p": 1 } }, "gemini":{ "gemini-pro":{ } }, "vertex": { "gemini-1.5-pro-002":{ } } }extra_params: 您可以使用以下命令在模型定义中添加特定于提供程序的参数extra_params钥匙。请参阅每个提供商的API文档,了解有哪些选项可用。
-
构建服务器:
npm run build
与Cline一起使用
添加到您的临床MCP设置中(通常在 ~/.vscode/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"reasoning-coding": {
"command": "/path/to/node",
"args": ["/path/to/your-fork/build/index.js"], // Adjust path
"env": {
// Your .env variables will be inherited, so no need to duplicate them here
},
"disabled": false,
"autoApprove": []
}
}
}
替换 /path/to/node 和 /path/to/your-fork/build/index.js 正确的路径。
工具使用(与原始工具相同)
服务器提供与原始服务器相同的两个工具:
generate_response
使用配置的推理和编码模型生成响应。
{
"prompt": string, // Required: The question or prompt
"showReasoning"?: boolean, // Optional: Show the reasoning process
"clearContext"?: boolean, // Optional: Clear conversation history
"includeHistory"?: boolean // Optional: Include Cline conversation history
}
check_response_status
检查响应生成任务的状态。
{
"taskId": string // Required: The task ID from generate_response
}
响应轮询(与原始相同)
-
初始请求: 呼叫
generate_response得到taskId.const result = await use_mcp_tool({ server_name: "reasoning-coding", tool_name: "generate_response", arguments: { prompt: "Explain the theory of relativity.", showReasoning: true } }); const taskId = JSON.parse(result.content[0].text).taskId; -
状态检查: 投票
check_response_status随着taskId直到状态为complete(或error).const status = await use_mcp_tool({ server_name: "reasoning-coding", tool_name: "check_response_status", arguments: { taskId } }); // Example status response when complete: { "status": "complete", "reasoning": "...", // If showReasoning was true "response": "..." // The final response "error": undefined // Will have a value if an error occurred }
发展
对于自动重建的开发:
npm run watch
它是如何工作的(扩展)
-
推理阶段:
- 这
getReasoning函数会根据用户的提示(以及潜在的Cline对话历史)调用。 - 基于
REASONING_PROVIDER环境变量、适当的提供商特定功能(例如。,getReasoningOpenAI,getReasoningGemini)被称为。 - 所选型号(来自
REASONING_MODEL)用于生成推理。 - 推理返回。
- 这
-
响应阶段:
- 这
getFinalResponse从第一阶段开始,使用原始提示和推理调用函数。 - 基于
CODING_PROVIDER环境变量,调用相应的特定于提供者的函数。 - 所选型号(来自
CODING_MODEL)结合推理生成最终响应。 - 返回响应。
- 这
-
MCP处理: 这
ReasoningCodingServer类处理MCP通信、任务管理和上下文管理。它使用getReasoning和getFinalResponse用于编排两阶段流程。
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
鸣谢
- 基于最初的Deepseek-Thinking-Claude-3.5十四行诗-CLINE-MCP项目。
- 受RAT(检索增强思维)概念的启发 斯基拉诺.
Key improvements in this README:
* **Clearer Title:** A more descriptive title reflects the expanded functionality.
* **Detailed Comparison:** A dedicated section highlights the differences between the fork and the original.
* **Comprehensive Installation:** Instructions are more thorough, covering `.env` and `providers.json` setup.
* **Provider/Model Explanation:** The roles of environment variables and `providers.json` are clearly explained.
* **Example `providers.json`:** A complete example helps users get started.
* **Updated Usage:** Reflects the new server name and configuration.
* **Expanded "How It Works":** Provides a more detailed explanation of the internal workings.
* **Corrected filepaths:** Uses correct filepaths to the providers file
