RAT MCP Server
by newideas99
# Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP
[](https://smithery.ai/server/@newideas99/Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP)
A Model Context Protocol (MCP) server that combines DeepSeek R1's reasoning capabilities with Claude 3.5 Sonnet's response generation through OpenRouter. This implementation uses a two-stage process where DeepSeek provides structured reasoning which is then incorporated into Claude's response generation.
## Features
- **Two-Stage Processing**:
- Uses DeepSeek R1 for initial reasoning (50k character context)
- Uses Claude 3.5 Sonnet for final response (600k character context)
- Both models accessed through OpenRouter's unified API
- Injects DeepSeek's reasoning tokens into Claude's context
- **Smart Conversation Management**:
- Detects active conversations using file modification times
- Handles multiple concurrent conversations
- Filters out ended conversations automatically
- Supports context clearing when needed
- **Optimized Parameters**:
- Model-specific context limits:
* DeepSeek: 50,000 characters for focused reasoning
* Claude: 600,000 characters for comprehensive responses
- Recommended settings:
* temperature: 0.7 for balanced creativity
* top_p: 1.0 for full probability distribution
* repetition_penalty: 1.0 to prevent repetition
## Installation
### Installing via Smithery
To install DeepSeek Thinking with Claude 3.5 Sonnet for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@newideas99/Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP):
```bash
npx -y @smithery/cli install @newideas99/Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP --client claude
```
### Manual Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP.git
cd Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP
```
2. Install dependencies:
```bash
npm install
```
3. Create a `.env` file with your OpenRouter API key:
```env
# Required: OpenRouter API key for both DeepSeek and Claude models
OPENROUTER_API_KEY=your_openrouter_api_key_here
# Optional: Model configuration (defaults shown below)
DEEPSEEK_MODEL=deepseek/deepseek-r1 # DeepSeek model for reasoning
CLAUDE_MODEL=anthropic/claude-3.5-sonnet:beta # Claude model for responses
```
4. Build the server:
```bash
npm run build
```
## Usage with Cline
Add to your Cline MCP settings (usually in `~/.vscode/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`):
```json
{
"mcpServers": {
"deepseek-claude": {
"command": "/path/to/node",
"args": ["/path/to/Deepseek-Thinking-Claude-3.5-Sonnet-CLINE-MCP/build/index.js"],
"env": {
"OPENROUTER_API_KEY": "your_key_here"
},
"disabled": false,
"autoApprove": []
}
}
}
```
## Tool Usage
The server provides two tools for generating and monitoring responses:
### generate_response
Main tool for generating responses with the following parameters:
```typescript
{
"prompt": string, // Required: The question or prompt
"showReasoning"?: boolean, // Optional: Show DeepSeek's reasoning process
"clearContext"?: boolean, // Optional: Clear conversation history
"includeHistory"?: boolean // Optional: Include Cline conversation history
}
```
### check_response_status
Tool for checking the status of a response generation task:
```typescript
{
"taskId": string // Required: The task ID from generate_response
}
```
### Response Polling
The server uses a polling mechanism to handle long-running requests:
1. Initial Request:
- `generate_response` returns immediately with a task ID
- Response format: `{"taskId": "uuid-here"}`
2. Status Checking:
- Use `check_response_status` to poll the task status
- **Note:** Responses can take up to 60 seconds to complete
- Status progresses through: pending → reasoning → responding → complete
Example usage in Cline:
```typescript
// Initial request
const result = await use_mcp_tool({
server_name: "deepseek-claude",
tool_name: "generate_response",
arguments: {
prompt: "What is quantum computing?",
showReasoning: true
}
});
// Get taskId from result
const taskId = JSON.parse(result.content[0].text).taskId;
// Poll for status (may need multiple checks over ~60 seconds)
const status = await use_mcp_tool({
server_name: "deepseek-claude",
tool_name: "check_response_status",
arguments: { taskId }
});
// Example status response when complete:
{
"status": "complete",
"reasoning": "...", // If showReasoning was true
"response": "..." // The final response
}
```
## Development
For development with auto-rebuild:
```bash
npm run watch
```
## How It Works
1. **Reasoning Stage (DeepSeek R1)**:
- Uses OpenRouter's reasoning tokens feature
- Prompt is modified to output 'done' while capturing reasoning
- Reasoning is extracted from response metadata
2. **Response Stage (Claude 3.5 Sonnet)**:
- Receives the original prompt and DeepSeek's reasoning
- Generates final response incorporating the reasoning
- Maintains conversation context and history
## License
MIT License - See LICENSE file for details.
## Credits
Based on the RAT (Retrieval Augmented Thinking) concept by [Skirano](https://x.com/skirano/status/1881922469411643413), which enhances AI responses through structured reasoning and knowledge retrieval.
This implementation specifically combines DeepSeek R1's reasoning capabilities with Claude 3.5 Sonnet's response generation through OpenRouter's unified API.