websearch-deepseek
by applex250
README.md
# websearch-deepseek
> [δΈζη](./README.zh-CN.md)
A universal **MCP Server** that provides a web search tool powered by DeepSeek's native web search API β no third-party search API required.
Works with **Claude Code**, **Cursor**, **Continue**, **OpenCode**, **pi**, and any tool that supports the MCP protocol.
## Features
- π **DeepSeek Native Search** β Uses the server-side `web_search_20250305` tool, no third-party search API needed
- π **AI-Generated Answers** β Returns detailed answers synthesized from full page content, not just a list of URLs
- π **Source URLs Included** β Every answer comes with original source links for verification
- βοΈ **Flexible Configuration** β Choose model, toggle thinking mode, adjust token limits
- π **MCP Protocol** β Standard JSON-RPC over stdio, compatible with all MCP clients
## How It Works
```
User Query β DeepSeek Model
β
Server executes web_search (fetches pages)
β
Encrypted page content β Server decrypts β Feeds to model
β
Model generates detailed answer based on full content
β
Returns: AI-generated answer + source URL list
```
**One MCP tool call = One DeepSeek API request** β search, decryption, and answer generation all happen server-side.
## Quick Start
### 1. Get a DeepSeek API Key
Visit [DeepSeek Platform](https://platform.deepseek.com/) to sign up and get your API Key.
### 2. Install
```bash
npm install -g websearch-deepseek
```
### 3. Configure Your AI Coding Assistant
Add the following to your MCP configuration file:
#### Claude Code
Edit `~/.claude/claude_desktop_config.json` or `.mcp.json` in your project:
```json
{
"mcpServers": {
"websearch-deepseek": {
"command": "npx",
"args": ["websearch-deepseek"],
"env": {
"DEEPSEEK_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"WEBSEARCH_MODEL": "deepseek-v4-flash",
"WEBSEARCH_THINKING": "enabled"
}
}
}
}
```
#### Cursor
Edit `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"websearch-deepseek": {
"command": "npx",
"args": ["websearch-deepseek"],
"env": {
"DEEPSEEK_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
#### Continue (VS Code)
Edit `~/.continue/config.json`, add to `mcpServers`:
```json
{
"mcpServers": [
{
"name": "websearch-deepseek",
"command": "npx",
"args": ["websearch-deepseek"],
"env": {
"DEEPSEEK_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
]
}
```
#### pi
Edit `~/.pi/agent/settings.json`, add to `mcp`:
```json
{
"mcp": {
"websearch-deepseek": {
"command": "npx",
"args": ["websearch-deepseek"],
"env": {
"DEEPSEEK_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
### 4. Start Using It
Restart your AI coding assistant and ask a question that needs real-time information. The assistant will automatically call the `web_search` tool when needed.
Examples:
- "What's new in React 19?"
- "Search for Python 3.13 release date and major updates"
- "What are the latest AI industry news?"
## Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `DEEPSEEK_API_KEY` | β
Yes | β | DeepSeek API Key |
| `WEBSEARCH_API_KEY` | β No | β | Alternative API Key variable name |
| `WEBSEARCH_MODEL` | β No | `deepseek-v4-flash` | Model: `deepseek-v4-flash` (fast) or `deepseek-v4-pro` (powerful) |
| `WEBSEARCH_THINKING` | β No | `enabled` | Thinking mode: `enabled` / `disabled` |
| `WEBSEARCH_MAX_TOKENS` | β No | `8192` | Max tokens for response |
### Model Selection Guide
| Scenario | Recommended Model | Notes |
|----------|-------------------|-------|
| Daily search (default) | `deepseek-v4-flash` | Fast, low cost, good quality |
| Deep research | `deepseek-v4-pro` | More detailed and accurate, slightly slower |
### Thinking Mode
- **enabled** (default): The model thinks before answering, producing higher quality results but consuming more tokens
- **disabled**: Skips the thinking step for faster responses, suitable for simple queries
## CLI Usage
You can also use it directly from the terminal:
```bash
# Set API Key
export DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxx
# Search
npx websearch-deepseek search "Node.js LTS versions"
# JSON output
npx websearch-deepseek search --json "TypeScript 5.8"
# Specify model and disable thinking
npx websearch-deepseek search --model deepseek-v4-pro --no-thinking "Rust latest version"
```
## Output Example
```
## Node.js Latest LTS Versions
As of July 2025, the latest Active LTS version of Node.js is Node.js 24.x...
| Version | Status | Initial Release | Support Until |
|---------|--------|-----------------|---------------|
| 24.x | Active LTS | 2025-05-06 | 2028-04 |
| 22.x | Maintenance | 2024-10 | 2027-04 |
### Recommendations
- New projects: Use Node.js 24 LTS
- Existing projects: Node.js 22 continues to receive security updates
---
### Sources (10):
1. [Node.js 24.0 is available...](https://...)
2. [Node.js β Node.js Releases](https://...)
...
```
## Pricing
This tool uses the DeepSeek API, which charges per token. A single search typically consumes:
| Component | Estimated Tokens |
|-----------|-----------------|
| Search + thinking | ~5,000β8,000 |
| Generate answer | ~1,000β3,000 |
| **Total per search** | **~8,000β15,000 tokens** |
Check [DeepSeek pricing](https://api-docs.deepseek.com/quick_start/pricing) for current rates.
## License
MIT
---
<p align="center">
<a href="./README.zh-CN.md">δΈζη</a>
</p>
TDQS
A4.6/5.0
Scored across 1 tool
Disambiguation5/5
Only one tool exists, so there is no possibility of confusion between overlapping purposes. The tool's purpose is clear and unambiguous.
Naming Consistency5/5
The single tool name 'web_search' follows a clear verb_noun pattern, which is consistent and descriptive. No naming conflicts or mixed conventions exist.
Tool Count5/5
One tool is perfectly scoped for a web search server; additional tools would be redundant. The tool fully embodies the server's purpose without unnecessary bloat or thinness.
Completeness5/5
For a web search domain, the tool covers the complete expected functionality: fetching current, real-time, and factual information with sources. There are no obvious gaps or missing operations.
Maintenance
ActivityMaintained
ResponsivenessNo issues