# Free Search

Searches across engines, fetches page text, and reads documents. Use it when an agent needs web sources without a search API key.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 154
- Author: sweetcornna
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sweetcornna/free-search-mcp
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/free-search

## What it does

Free Search brings search and page fetching together. Its `research` tool returns source links with page text formatted as Markdown in a single call. Other tools search across engines, compare pages, and read PDFs, DOCX, XLSX, PPTX, EPUB, and more.

The server includes 11 tools, including full-text search over previously fetched pages and metadata extraction. It requires `uv` to run, but no search API key. Chromium is needed only for browser-rendered engines and JavaScript-heavy pages, so those requests will not work without it.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `SEARCH_MCP_PROXY`, `SEARCH_MCP_REGION`, `SEARCH_MCP_CACHE_DIR` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SEARCH_MCP_PROXY=<SEARCH_MCP_PROXY> --env SEARCH_MCP_REGION=<SEARCH_MCP_REGION> --env SEARCH_MCP_CACHE_DIR=<SEARCH_MCP_CACHE_DIR> --transport stdio free-search -- uvx free-search-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from free-search-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add free-search --env SEARCH_MCP_PROXY=<SEARCH_MCP_PROXY> --env SEARCH_MCP_REGION=<SEARCH_MCP_REGION> --env SEARCH_MCP_CACHE_DIR=<SEARCH_MCP_CACHE_DIR> -- uvx free-search-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from free-search-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "free-search": {
            "command": "uvx",
            "args": [
                "free-search-mcp"
            ],
            "env": {
                "SEARCH_MCP_PROXY": "<SEARCH_MCP_PROXY>",
                "SEARCH_MCP_REGION": "<SEARCH_MCP_REGION>",
                "SEARCH_MCP_CACHE_DIR": "<SEARCH_MCP_CACHE_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from free-search-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "free-search": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "free-search-mcp"
            ],
            "env": {
                "SEARCH_MCP_PROXY": "<SEARCH_MCP_PROXY>",
                "SEARCH_MCP_REGION": "<SEARCH_MCP_REGION>",
                "SEARCH_MCP_CACHE_DIR": "<SEARCH_MCP_CACHE_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from free-search-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SEARCH_MCP_PROXY=<SEARCH_MCP_PROXY> -e SEARCH_MCP_REGION=<SEARCH_MCP_REGION> -e SEARCH_MCP_CACHE_DIR=<SEARCH_MCP_CACHE_DIR> free-search uvx free-search-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from free-search-mcp <command>

## When to use it
- search several engines for pages on a question
- return source pages alongside search results
- read a PDF or DOCX for an agent's answer
- compare URLs against a specific question
- search pages fetched earlier

## Example prompts
- Find sources on reciprocal rank fusion and make a brief with the page text.
- Read this PDF and answer a question using its contents.
- Compare these pages based on how they explain caching.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [apify-mcp-server](https://affpapa.org/en/nevibecode/mcp/apify-mcp-server.md) — MCP server · ★ 12927

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
