Back to Browse

Deepsearch MCP Server

Developer ToolsModerate5.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

Neural web search, code context, and page crawling through the Exa API.

About

Neural web search, code context, and page crawling through the Exa API.

Security Report

5.8
Moderate5.8Moderate Risk

deepsearch is a small, focused client for the Exa search API. It reads its key from EXA_API_KEY, sends it only as an x-api-key header to api.exa.ai, and has no shell execution, filesystem access, dynamic code evaluation, or hardcoded secrets. The only notable items are low-severity: crawling_exa forwards arbitrary URLs to Exa without validation, and upstream error details are echoed into tool errors. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

EXA_API_KEYRequired

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-deepsearch": {
      "env": {
        "EXA_API_KEY": "your-exa-api-key-here"
      },
      "args": [
        "-y",
        "@reneturcios/deepsearch"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

deepsearch

deepsearch asks Exa's neural index questions the way a researcher would. A plain search returns the pages that best match the meaning of a query, with their text already pulled in. A code question gets a context pack instead: examples and documentation excerpts gathered from across the web and sized to a token budget you choose. And when you already know the page you want, a crawl fetches that one page and hands back its words. It runs from the command line or as an MCP server for agents.

An Exa API key is required. Put it in the EXA_API_KEY environment variable; the key is sent to the API as the x-api-key header and never appears in output. When the variable is missing, every operation fails with an error that names it.

Install

npx @reneturcios/deepsearch search "vector index tradeoffs"

Or run the container image:

docker run -i -e EXA_API_KEY ghcr.io/cloudcorprecords/deepsearch

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

export EXA_API_KEY="your api key"

# Web search; --num-results defaults to 8
deepsearch search "ferry electrification programs"
deepsearch search "ferry electrification programs" --num-results 5

# Code context; --tokens sets the budget (1000-50000, default 5000)
deepsearch code "React useState hook examples" --tokens 3000

# Fetch one page in full
deepsearch crawl https://example.com/some/article
deepsearch crawl https://example.com/some/article --tokens 2000

# Machine-readable output for any command
deepsearch search "ferry electrification programs" --json

deepsearch --version

Exit codes: 0 on success, 1 when an operation fails (including a missing EXA_API_KEY or an API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/deepsearch mcp

MCP client configuration:

{
  "mcpServers": {
    "deepsearch": {
      "command": "npx",
      "args": ["-y", "@reneturcios/deepsearch", "mcp"],
      "env": { "EXA_API_KEY": "your api key" }
    }
  }
}

Tools

These are the original server's default-enabled tools:

ToolInputWhat it returns
web_search_exaquery (string, required), numResults (number, optional, default 8)Matching pages as a numbered text block: title, URL, publication details when known, and the page text the API supplied.
get_code_context_exaquery (string, required), tokensNum (number, optional, 1000–50000, default 5000)Code examples and documentation excerpts for the question, each headed by its source, trimmed to the token budget.
crawling_exaurl (string, required), tokensNum (number, optional, default 5000)The full text of that one page, titled, trimmed to the token budget.

Token budgets are clamped to the documented 1000–50000 range and are applied at roughly four characters per token. An empty result set is reported as such; a page the API cannot fetch, a missing key, or a failed API call is reported as a tool error.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Reviews

No reviews yet

Be the first to review this server!