# Web Search API Eval MCP server

> Allows AI assistants to query web search API benchmarks and perform live search spot checks across providers like You.com, Tavily, Exa, and Parallel.

- Repository: https://github.com/psinglap/websearch-api-eval
- Page: https://hostedmcp.org/servers/psinglap/websearch-api-eval
- Transport: stdio, remote
- Stars: 4
- License: MIT
- Latest version: 1.1.0

## Install

### Claude Code

```sh
claude mcp add --env 'EXA_API_KEY=<YOUR_EXA_API_KEY>' --env 'PARALLEL_API_KEY=<YOUR_PARALLEL_API_KEY>' --env 'TAVILY_API_KEY=<YOUR_TAVILY_API_KEY>' --env 'YDC_API_KEY=<YOUR_YDC_API_KEY>' websearch-api-eval -- npx -y websearch-api-eval-mcp
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "websearch-api-eval": {
      "command": "npx",
      "args": [
        "-y",
        "websearch-api-eval-mcp"
      ],
      "env": {
        "EXA_API_KEY": "<YOUR_EXA_API_KEY>",
        "PARALLEL_API_KEY": "<YOUR_PARALLEL_API_KEY>",
        "TAVILY_API_KEY": "<YOUR_TAVILY_API_KEY>",
        "YDC_API_KEY": "<YOUR_YDC_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "websearch-api-eval": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "websearch-api-eval-mcp"
      ],
      "env": {
        "EXA_API_KEY": "<YOUR_EXA_API_KEY>",
        "PARALLEL_API_KEY": "<YOUR_PARALLEL_API_KEY>",
        "TAVILY_API_KEY": "<YOUR_TAVILY_API_KEY>",
        "YDC_API_KEY": "<YOUR_YDC_API_KEY>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"websearch-api-eval","type":"stdio","command":"npx","args":["-y","websearch-api-eval-mcp"],"env":{"EXA_API_KEY":"<YOUR_EXA_API_KEY>","PARALLEL_API_KEY":"<YOUR_PARALLEL_API_KEY>","TAVILY_API_KEY":"<YOUR_TAVILY_API_KEY>","YDC_API_KEY":"<YOUR_YDC_API_KEY>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "websearch-api-eval": {
      "command": "npx",
      "args": [
        "-y",
        "websearch-api-eval-mcp"
      ],
      "env": {
        "EXA_API_KEY": "<YOUR_EXA_API_KEY>",
        "PARALLEL_API_KEY": "<YOUR_PARALLEL_API_KEY>",
        "TAVILY_API_KEY": "<YOUR_TAVILY_API_KEY>",
        "YDC_API_KEY": "<YOUR_YDC_API_KEY>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add websearch-api-eval --env 'EXA_API_KEY=<YOUR_EXA_API_KEY>' --env 'PARALLEL_API_KEY=<YOUR_PARALLEL_API_KEY>' --env 'TAVILY_API_KEY=<YOUR_TAVILY_API_KEY>' --env 'YDC_API_KEY=<YOUR_YDC_API_KEY>' -- npx -y websearch-api-eval-mcp
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.websearch-api-eval]
command = "npx"
args = ["-y", "websearch-api-eval-mcp"]

[mcp_servers.websearch-api-eval.env]
EXA_API_KEY = "<YOUR_EXA_API_KEY>"
PARALLEL_API_KEY = "<YOUR_PARALLEL_API_KEY>"
TAVILY_API_KEY = "<YOUR_TAVILY_API_KEY>"
YDC_API_KEY = "<YOUR_YDC_API_KEY>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'EXA_API_KEY=<YOUR_EXA_API_KEY>' -e 'PARALLEL_API_KEY=<YOUR_PARALLEL_API_KEY>' -e 'TAVILY_API_KEY=<YOUR_TAVILY_API_KEY>' -e 'YDC_API_KEY=<YOUR_YDC_API_KEY>' websearch-api-eval npx -- -y websearch-api-eval-mcp
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "websearch-api-eval": {
      "command": "npx",
      "args": [
        "-y",
        "websearch-api-eval-mcp"
      ],
      "env": {
        "EXA_API_KEY": "<YOUR_EXA_API_KEY>",
        "PARALLEL_API_KEY": "<YOUR_PARALLEL_API_KEY>",
        "TAVILY_API_KEY": "<YOUR_TAVILY_API_KEY>",
        "YDC_API_KEY": "<YOUR_YDC_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `EXA_API_KEY` | no | yes | Optional. Exa API key, used only by run_live_search |
| `PARALLEL_API_KEY` | no | yes | Optional. Parallel API key, used only by run_live_search |
| `TAVILY_API_KEY` | no | yes | Optional. Tavily API key, used only by run_live_search |
| `YDC_API_KEY` | no | yes | Optional. You.com API key, used only by run_live_search |

## Tools (9)

- `get_overall_results`
- `get_scorecard`
- `compare_providers`
- `recommend_provider`
- `list_questions`
- `get_question`
- `get_charts`
- `get_methodology`
- `how_to_run_locally`

## FAQ

### Can I run live searches with my own API keys?

Yes, if you use the local npm installation, you can use the run_live_search tool with your own provider keys.

### What is the difference between a live search and the benchmark?

The benchmark tools are read-only and access published results, while run_live_search is a spot check that uses your own credits and keys.
