description: Default MCP Servers - Search reference: 6 preset MCP connections with transport, auth defaults, required env, and full description per card.
Default MCP Servers - Search
Web search and content retrieval. Remote services (Tavily, Exa, Firecrawl, Jina AI, SerpAPI) expect a vendor API key via ${VAR} placeholders in the headers; the community stdio entry (Brave Search) needs BRAVE_API_KEY in the env section. All five remote services have a free tier sufficient for tutorial-scale use.
Entries (6)
Click any card to expand the full spec inline - transport (Streamable HTTP / STDIO), authentication shape (OAuth 2.1 / API key / Bearer / none), required environment variables, vendor URL or stdio command, and the upstream docs link.
Tavily 🔑
:material-magnify-scan:
search · global ga L3
AI-optimised web search and answer engine for grounding LLMs with up-to-date facts and sources. Requires TAVILY_API_KEY.
**Vendor** Tavily · T1 vendor
**Auth** API key
Click for transport · auth · required env · description · docs
**Vendor** - Tavily (vendor-official)
**Transport** - Streamable HTTP
**URL** - `https://mcp.tavily.com/mcp`
**Auth** - API key
**Stability** - GA · **Tier** - Tier 1
**Required env** - `TAVILY_API_KEY`
**Tags** - global
**Tools** - 4 tools published by the vendor (per its [MCP docs](https://docs.tavily.com/documentation/mcp)); no static per-tool levels - the live set varies by plan / scopes / release, so confirm it and the recomputed levels on the [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools):
??? note "Tools (4) - tavily-search · tavily-extract · tavily-crawl · tavily-map"
- `tavily-search`
- `tavily-extract`
- `tavily-crawl`
- `tavily-map`
**Description**
AI-optimised web search and answer engine for grounding LLMs with up-to-date facts and sources. Requires TAVILY_API_KEY.
**Docs** - [https://docs.tavily.com/documentation/mcp](https://docs.tavily.com/documentation/mcp)
Exa 🔑
:material-magnify-expand:
search · global ga L3
Neural web search by Exa - semantic ranking, source-aware retrieval, and high-quality result snippets. Requires EXA_API_KEY (x-api-key header).
**Vendor** Exa · T1 vendor
**Auth** API key
Click for transport · auth · required env · description · docs
**Vendor** - Exa (vendor-official)
**Transport** - Streamable HTTP
**URL** - `https://mcp.exa.ai/mcp`
**Auth** - API key
**Stability** - GA · **Tier** - Tier 1
**Required env** - `EXA_API_KEY`
**Tags** - global
**Tools** - 3 tools published by the vendor (per its [MCP docs](https://exa.ai/docs/reference/exa-mcp)); no static per-tool levels - the live set varies by plan / scopes / release, so confirm it and the recomputed levels on the [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools). 3 active (+ several deprecated).
??? note "Tools (3) - web_search_exa · web_fetch_exa · web_search_advanced_exa"
- `web_search_exa`
- `web_fetch_exa`
- `web_search_advanced_exa`
**Description**
Neural web search by Exa - semantic ranking, source-aware retrieval, and high-quality result snippets. Requires EXA_API_KEY (x-api-key header).
**Docs** - [https://exa.ai/docs/reference/exa-mcp](https://exa.ai/docs/reference/exa-mcp)
Firecrawl 🔑
:material-spider-web:
search · global ga L3
Web scraping, crawling, and structured data extraction with anti-bot handling. Bearer-authenticated with FIRECRAWL_API_KEY.
**Vendor** Firecrawl · T1 vendor
**Auth** Bearer
Click for transport · auth · required env · description · docs
**Vendor** - Firecrawl (vendor-official)
**Transport** - Streamable HTTP
**URL** - `https://mcp.firecrawl.dev/v2/mcp`
**Auth** - Bearer
**Stability** - GA · **Tier** - Tier 1
**Required env** - `FIRECRAWL_API_KEY`
**Tags** - global
**Tools** - 14 tools published by the vendor (per its [MCP docs](https://docs.firecrawl.dev/mcp-server)); no static per-tool levels - the live set varies by plan / scopes / release, so confirm it and the recomputed levels on the [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools). core set; optional tools vary by version.
??? note "Tools (6 of 14) - firecrawl_scrape · firecrawl_search · firecrawl_map · firecrawl_crawl · firecrawl_check_crawl_status · firecrawl_extract"
- `firecrawl_scrape`
- `firecrawl_search`
- `firecrawl_map`
- `firecrawl_crawl`
- `firecrawl_check_crawl_status`
- `firecrawl_extract`
**Description**
Web scraping, crawling, and structured data extraction with anti-bot handling. Bearer-authenticated with FIRECRAWL_API_KEY.
**Docs** - [https://docs.firecrawl.dev/mcp-server](https://docs.firecrawl.dev/mcp-server)
Jina AI 🔑
:material-vector-link:
search · global ga L3
Jina AI Reader (URL-to-clean-markdown) and search APIs for LLM-grounded retrieval. Bearer-authenticated with JINA_API_KEY.
**Vendor** Jina AI · T2 vendor
**Auth** Bearer
Click for transport · auth · required env · description · docs
**Vendor** - Jina AI (vendor-official)
**Transport** - Streamable HTTP
**URL** - `https://mcp.jina.ai/v1`
**Auth** - Bearer
**Stability** - GA · **Tier** - Tier 2
**Required env** - `JINA_API_KEY`
**Tags** - global
**Tools** - 20 tools published by the vendor (per its [MCP docs](https://github.com/jina-ai/MCP)); no static per-tool levels - the live set varies by plan / scopes / release, so confirm it and the recomputed levels on the [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools):
??? note "Tools (10 of 20) - read_url · capture_screenshot_url · search_web · search_arxiv · search_images · parallel_read_url · classify_text · extract_pdf · expand_query · sort_by_relevance"
- `read_url`
- `capture_screenshot_url`
- `search_web`
- `search_arxiv`
- `search_images`
- `parallel_read_url`
- `classify_text`
- `extract_pdf`
- `expand_query`
- `sort_by_relevance`
**Description**
Jina AI Reader (URL-to-clean-markdown) and search APIs for LLM-grounded retrieval. Bearer-authenticated with JINA_API_KEY.
**Docs** - [https://github.com/jina-ai/MCP](https://github.com/jina-ai/MCP)
SerpAPI 🔑
:material-google:
search · global ga L3
Real-time Google, Bing, Baidu, DuckDuckGo, Naver and other SERP scraping with structured JSON. API key embedded in URL path (SERPAPI_API_KEY).
**Vendor** SerpAPI · T2 vendor
**Auth** API key
Click for transport · auth · required env · description · docs
**Vendor** - SerpAPI (vendor-official)
**Transport** - Streamable HTTP
**URL** - `https://mcp.serpapi.com/${SERPAPI_API_KEY}/mcp`
**Auth** - API key
**Stability** - GA · **Tier** - Tier 2
**Required env** - `SERPAPI_API_KEY`
**Tags** - global
**Tools** - 1 tool published by the vendor (per its [MCP docs](https://github.com/serpapi/serpapi-mcp)); no static per-tool levels - the live set varies by plan / scopes / release, so confirm it and the recomputed levels on the [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools):
??? note "Tools (1) - search"
- `search`
**Description**
Real-time Google, Bing, Baidu, DuckDuckGo, Naver and other SERP scraping with structured JSON. API key embedded in URL path (SERPAPI_API_KEY).
**Docs** - [https://github.com/serpapi/serpapi-mcp](https://github.com/serpapi/serpapi-mcp)
Brave Search 🛠
{ width="40" .tcg-favicon }
search · global ga L2
[macOS] Brave Search API - web, local, news, image, and video search. Outbound calls only to api.search.brave.com (no SSRF surface). The activated form is pre-filled to run: npx -y...
**Vendor** Brave · T1 vendor
**Auth** STDIO
Click for transport · auth · required env · description · docs
**Vendor** - Brave (vendor-official)
**Transport** - STDIO
**Command** - `npx`
**Args** - `-y @brave/brave-search-mcp-server`
**OS variants** - mac · linux · win (catalog picks the entry matching the host OS automatically; macOS / Linux use `npx` or `uvx`; Windows uses `npx.cmd`).
**Auth** - STDIO
**Stability** - GA · **Tier** - Tier 2
**Required env** - -
**Tags** - global
**Tools** - discovered on connect; vendor-official STDIO (outbound only to `api.search.brave.com`) with no per-tool descriptors, so each tool composes to L2 - Low on its own connection's [Inspector](/spring-ai-playground/docs/features/mcp-server/inspector.html#tools):
??? abstract "Tools (8) - brave_web_search · brave_local_search · brave_video_search · brave_image_search · brave_news_search · brave_summarizer · brave_place_search · brave_llm_context"
- **`brave_web_search`** - general web search with filtering. L2 - Low
- **`brave_local_search`** - find local businesses and places. L2 - Low
- **`brave_video_search`** - search videos with metadata and thumbnails. L2 - Low
- **`brave_image_search`** - search for images. L2 - Low
- **`brave_news_search`** - search current news articles. L2 - Low
- **`brave_summarizer`** - AI-generated summary over web-search results. L2 - Low
- **`brave_place_search`** - points of interest in a geographic area. L2 - Low
- **`brave_llm_context`** - pre-extracted page content for LLM grounding / RAG. L2 - Low
**Description**
[macOS] Brave Search API - web, local, news, image, and video search. Outbound calls only to api.search.brave.com (no SSRF surface).
Prereq: Node.js 18+ on macOS (Homebrew, nvm, or installer). Free API key (2k req/month) at https://api.search.brave.com/app/keys.
The activated form is pre-filled to run:
npx -y @brave/brave-search-mcp-server
Required - set BRAVE_API_KEY in the env section below (treat as a secret).
**Docs** - [https://github.com/brave/brave-search-mcp-server](https://github.com/brave/brave-search-mcp-server)
Workflow combinations { #combinations }
Five remote search services and one community stdio entry. They’re substitutable but each has a different latency / quality / quota profile, so the meaningful “combination” is choosing one as primary and one as fallback:
- Primary + fallback -
Tavily (LLM-tuned answers) primary, Exa (semantic search) fallback. Tavily fails fast on quota; Exa picks up.
- Crawl + index -
Firecrawl (crawls + structured extract) feeding a downstream Vector Database run. Good when the agent needs the content of pages, not just the URLs.
- Search-engine results -
SerpAPI when you specifically want Google / Bing SERP JSON without scraping.
- Long-form context retrieval -
Jina AI for embedding + reader API; the model gets cleaned-up article bodies, not raw HTML.
- Privacy-first local-stdio -
Brave Search (stdio) when you don’t want a remote OAuth dance and you have a Brave API key.
Auth & secrets { #auth-secrets }
All six entries are API-key gated. Set the key as a ${VAR} placeholder in the form (header for remote, env for stdio):
| Connection |
Auth |
Env / header |
| Tavily |
API key |
Authorization: Bearer ${TAVILY_API_KEY} |
| Exa |
API key |
x-api-key: ${EXA_API_KEY} |
| Firecrawl |
Bearer |
Authorization: Bearer ${FIRECRAWL_API_KEY} |
| Jina AI |
Bearer |
Authorization: Bearer ${JINA_API_KEY} |
| SerpAPI |
API key (query param style; configurable as ${SERPAPI_API_KEY}) |
per-vendor docs |
| Brave Search (stdio) |
API key |
env.BRAVE_API_KEY = ${BRAVE_API_KEY} |
Every remote vendor on this page ships a free tier large enough for tutorial-scale agent use - the free quotas are intended for evaluation, not production, but a single agent session won’t exhaust them.
Picking guide { #picking-guide }
| If you need… |
Reach for |
| LLM-shaped answers with citations |
Tavily |
| Neural / semantic search |
Exa |
| Crawl + structured extract |
Firecrawl |
| Embedding-friendly reader API |
Jina AI |
| Raw SERP JSON |
SerpAPI |
| Privacy-first, local-process search |
Brave Search (stdio) |