MCP Deep Search
# MCP Deep Search
[](https://www.npmjs.com/package/@just-every/mcp-deep-search)
[](https://opensource.org/licenses/MIT)
MCP server for deep web search using [@just-every/search](https://github.com/just-every/search). Search across multiple providers including Google, Bing, Brave, DuckDuckGo, Perplexity, and more.
## Quick Start
### 1. Create or use an environment file
Option A: Create a new `.llm.env` file in your home directory:
```bash
# Download example env file
curl -o ~/.llm.env https://raw.githubusercontent.com/just-every/mcp-deep-search/main/.env.example
# Edit with your API keys
nano ~/.llm.env
```
Option B: Use an existing `.env` file (must use absolute path):
```bash
# Example: /Users/yourname/projects/myproject/.env
# Example: /home/yourname/workspace/.env
```
### 2. Install
#### Claude Code
```bash
# Using ~/.llm.env
claude mcp add deep-search -s user -e ENV_FILE=$HOME/.llm.env -- npx -y @just-every/mcp-deep-search
# Using existing .env file (absolute path required)
claude mcp add deep-search -s user -e ENV_FILE=/absolute/path/to/your/.env -- npx -y @just-every/mcp-deep-search
# For debugging, check if ENV_FILE is being passed correctly:
claude mcp list
```
#### Other MCP Clients
Add to your MCP configuration:
```json
{
"mcpServers": {
"deep-search": {
"command": "npx",
"args": ["-y", "@just-every/mcp-deep-search"],
"env": {
"ENV_FILE": "/path/to/.llm.env"
}
}
}
}
```
## MCP Tools
### `deep_search`
Perform web searches using a specific provider.
**Parameters:**
- `query` (required): The search query
- `provider`: Search provider (default: brave)
- `maxResults`: Maximum results (default: 10)
- `includeAnswer`: Include AI answer if available (default: false)
### `comprehensive_research`
Perform comprehensive research using AI agents that intelligently select and query multiple search engines.
**Parameters:**
- `query` (required): The research topic
- `modelClass`: AI model class (default: reasoning_mini)
## Search Providers
| Provider | API Key Required | Description |
|----------|-----------------|-------------|
| `brave` | `BRAVE_API_KEY` | Privacy-first search with structured results |
| `anthropic` | `ANTHROPIC_API_KEY` | Deep multi-hop research |
| `openai` | `OPENAI_API_KEY` | ChatGPT-grade contextual search |
| `google` | `GOOGLE_API_KEY` | Gemini grounding search |
| `sonar` / `sonar-pro` | `OPENROUTER_API_KEY` | Perplexity search variants |
| `xai` | `XAI_API_KEY` | Real-time Grok search |
## CLI Usage
```bash
# Basic search
mcp-deep-search search "your query"
# Search with specific provider
mcp-deep-search search "your query" -p brave
# Get more results
mcp-deep-search search "your query" -n 20
```
## Troubleshooting
### MCP Server Shows "Failed" in Claude
If you see "deep-search ✘ failed" in Claude, check these common issues:
1. **Missing API Keys**: The most common issue is missing API keys. Check that your ENV_FILE is properly configured:
```bash
# Test if ENV_FILE is working
ENV_FILE=/path/to/your/.env npx @just-every/mcp-deep-search search "test"
```
2. **Incorrect Installation Command**: Make sure you're using `-e` for environment variables:
```bash
# Correct - environment variable passed with -e flag before --
claude mcp add deep-search -s user -e ENV_FILE=$HOME/.llm.env -- npx -y @just-every/mcp-deep-search
# Incorrect - trying to pass as argument
claude mcp add deep-search -s user -- npx -y @just-every/mcp-deep-search --env ENV_FILE=$HOME/.llm.env
```
3. **Path Issues**: ENV_FILE must use absolute paths:
```bash
# Good
ENV_FILE=/Users/yourname/.llm.env
ENV_FILE=$HOME/.llm.env
# Bad
ENV_FILE=.env
ENV_FILE=~/.llm.env # ~ not expanded in some contexts
```
4. **Verify Installation**: Check your MCP configuration:
```bash
claude mcp list
```
5. **Debug Mode**: For detailed error messages, run manually:
```bash
ENV_FILE=/path/to/.env npx @just-every/mcp-deep-search
```
## Getting API Keys
- **Brave**: [brave.com/search/api](https://brave.com/search/api/)
- **Anthropic**: [console.anthropic.com](https://console.anthropic.com/)
- **OpenAI**: [platform.openai.com](https://platform.openai.com/)
- **Google**: [makersuite.google.com](https://makersuite.google.com/)
- **OpenRouter**: [openrouter.ai](https://openrouter.ai/)
- **xAI**: [x.ai](https://x.ai/)
## Auto-Restart Feature
The MCP server includes automatic restart capability by default for improved reliability:
- Automatically restarts the server if it crashes
- Handles unhandled exceptions and promise rejections
- Implements exponential backoff (max 10 attempts in 1 minute)
- Logs all restart attempts for monitoring
- Gracefully handles shutdown signals (SIGINT, SIGTERM)
For development/debugging without auto-restart:
```bash
# Run directly without restart wrapper
npm run serve:dev
```
## License
MIT © Just EveryTDQS
Scored across 2 tools
The two tools have overlapping purposes, both focused on research and searching for information, with 'comprehensive_research' emphasizing analysis and reports and 'deep_search' focusing on real-time data. The boundaries are unclear, as an agent might struggle to choose between them for tasks like market research or technical analysis, leading to potential misselection.
The tool names use a consistent snake_case pattern, but they lack a predictable verb_noun structure. 'comprehensive_research' uses an adjective-noun format, while 'deep_search' uses an adjective-noun format as well, but the verbs are implied rather than explicit, making it readable but not fully consistent in action-oriented naming.
With only 2 tools, the server feels thin for a domain like 'Deep Search' that implies broad research capabilities. This limited set may not adequately cover the scope, as it lacks tools for specific operations like filtering results, saving reports, or handling different data types, making it borderline too few for the apparent purpose.
There are significant gaps in the tool surface for a research domain. The server lacks essential operations such as retrieving saved reports, updating research parameters, deleting old data, or managing search sessions. This incompleteness will likely cause agent failures when trying to perform end-to-end research workflows.