MewCP LogoAStheTech
MCPs
Use Cases

Use cases by category

Productivity & InboxInbox, calendar, and daily flowEngineering & DevOpsShip, debug, and run on-callSales & CRMPipeline, outreach, and dealsMarketing & GrowthCampaigns, SEO, and growthSupport & SuccessTriage tickets, keep customers happyFinance & OpsClose, reconcile, and expensesCreative & ContentGenerate assets and contentPeople & HiringHiring, onboarding, and HRResearch & DataSynthesize data and insights
See all use cases
BlogsPricingDocsSign in
MewCP Logo

Infrastructure You Can Trust for Agentic Products

X

Categories

  • Productivity & Docs
  • Developer Tools
  • CRM & Sales
  • Finance & Commerce
  • Data & Analytics
  • Marketing & SEO
  • Search & Web
  • Communication
  • View All Servers →

Resources

  • Blog
  • Docs
  • Privacy Policy
  • Terms of Service

Blogs

  • View All Blogs →
Browse Servers|Pricing|Contact

Browse by Category

Productivity & Docs

  • Gmail
  • Google Drive
  • Google Classroom
  • Google Calendar
  • Google People
  • YouTube
  • Notion
  • ClickUp
  • Figma
  • Google Tasks
  • Cal
  • Monday
  • Luma

Developer Tools

  • Gemini
  • Veo
  • ClickUp
  • Firecrawl
  • Vercel
  • Apify
  • Github
  • HTTP
  • Chef
  • Scientific Calculator
  • Figma
  • Perplexity

CRM & Sales

  • Google People

Finance & Commerce

  • Razorpay
  • Polymarket
  • Kite
  • Stripe
  • Binance

Marketing & SEO

  • Mailchimp
  • Google Business
  • YouTube
  • Google Search Console

Search & Web

  • Web Scrapper
  • Firecrawl
  • Apify
  • Perplexity
  • Context.dev
  • Exa
  • Brave Search

Communication

  • Gmail
  • Google Meet
  • Mailchimp
  • Google Calendar
  • WhatsApp
  • Slack

© 2026 MewCP. All rights reserved.

Brave Search

Brave Search

v1.0.00 callsAPI KeyGitHub
Open in ChatGPTChatGPT
Open in ClaudeClaude

Documentation

Guide

Connect

Gateway URL

https://gateway.mewcp.com/brave-search/mcp

Integrations

Click a client to view its config snippet and setup steps, or use Connect above to add this server and get your key.

Help Improve This Server

Missing a tool?

Found a bug?

Have an idea for an improvement?

Share your feedback directly with the maintainers - every feedback helps make this server better for everyone.

Open GitHub Issues →

Search the web, images, videos, news, and local places through Brave's independent index — plus AI summarization and RAG-ready context extraction.

A Model Context Protocol (MCP) server that exposes the Brave Search API's search endpoints for web, local, video, image, news, and place search, along with AI summarization and LLM-context extraction.

Overview

The Brave Search MCP Server provides:

  • Comprehensive web search with rich metadata — results can include FAQ, Discussions, News, and Video items alongside standard web results
  • Local business and points-of-interest (POI) search with ratings, addresses, phone numbers, hours, and AI descriptions, with a graceful fallback to web results when enriched local data isn't available
  • Dedicated video, image, and news search endpoints
  • A structured place-search endpoint for POI data anchored to a location or lat/long coordinates
  • AI-generated summarization of web search results via Brave's Summarizer API
  • Pre-extracted, relevance-ranked web content via Brave's LLM Context API — actual page substance (text chunks, tables, code blocks) rather than just links and snippets

Perfect for:

  • AI agents that need general-purpose web search grounded in an independent search index
  • Local business lookup and "near me" style assistants
  • News monitoring and current-events tools
  • Media search integrations (images, videos)
  • RAG pipelines that need pre-extracted, relevance-ranked web content for grounding
  • Quickly summarizing a set of search results into an AI-generated answer

Tools

Performs web searches using the Brave Search API and returns comprehensive search results with rich metadata.

When to use:

  • General web searches for information, facts, or current topics
  • Location-based queries (restaurants, businesses, points of interest)
  • News searches for recent events or breaking stories
  • Finding videos, discussions, or FAQ content

Returns a JSON list of web results with title, description, and URL. When result_filter is empty, results may also contain FAQ, Discussions, News, and Video items.

Inputs:

- `query` (string, required) — Search query (max 400 chars, 50 words)
- `country` (CountryCode, optional, default: "US") — Country for results
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `ui_lang` (UiLang, optional, default: "en-US") — UI language
- `count` (int, optional, default: 10) — Number of web results (1–20)
- `offset` (int, optional, default: 0) — Pagination offset (0–9)
- `safesearch` (SafeSearch, optional, default: "moderate") — Safe-search level
- `freshness` (string, optional) — Time filter: pd (day) pw (week) pm (month) py (year) or YYYY-MM-DDtoYYYY-MM-DD






output data schema:

{
  results: {
    summarizer_key: string | null;
    url: string | null;
    title: string | null;
    description: string | null;
    extra_snippets: string[] | null;
    question: string | null;
    answer: string | null













Searches for local businesses and places via the Brave Search API. Returns ratings, addresses, phone numbers, hours, and AI descriptions.

Access to enriched POI data requires a Brave Search API Pro plan; the tool gracefully falls back to web results if local data is unavailable.

Inputs:

- `query` (string, required) — Local search query, e.g. 'pizza near downtown Chicago'
- `count` (int, optional, default: 5) — Results to return (1–20)
- `country` (CountryCode, optional, default: "US") — Country code

output data schema:


















Searches for videos via the Brave Search API. Returns titles, URLs, durations, view counts, creators, and thumbnails.

Inputs:

- `query` (string, required) — Video search query (max 400 chars, 50 words)
- `country` (CountryCode, optional, default: "US") — Country for results
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `ui_lang` (UiLang, optional, default: "en-US") — UI language
- `count` (int, optional, default: 10) — Results to return (1–20)
- `offset` (int, optional, default: 0) — Pagination offset (0–9)
- `safesearch` (SafeSearch, optional, default: 

Searches for images via the Brave Search API. Returns direct image URLs, source pages, and dimensions. Images are returned as URLs — no base64 encoding.

Inputs:

- `query` (string, required) — Image search query (max 400 chars, 50 words)
- `country` (CountryCode, optional, default: "US") — Country for results
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `count` (int, optional, default: 10) — Results to return (1–20)
- `safesearch` (SafeSearch, optional, default: "moderate") — Safe-search level
- `spellcheck` (bool, optional, default: true) — Spellcheck the query

Searches for current news articles via the Brave Search API. Returns headlines, sources, publication age, and descriptions.

Inputs:

- `query` (string, required) — News search query (max 400 chars, 50 words)
- `country` (CountryCode, optional, default: "US") — Country for results
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `ui_lang` (UiLang, optional, default: "en-US") — UI language
- `count` (int, optional, default: 10) — Results to return (1–20)
- `offset` (int, optional, default: 0) — Pagination offset (0–9)
- `safesearch` (SafeSearch, optional, default: 


Retrieves points of interest (POIs) with structured business data via Brave's dedicated place-search endpoint. Returns addresses, hours, ratings, categories, and contact info.

Geographic context is required — provide latitude/longitude or a location string (e.g. 'san francisco ca united states').

Access requires a Brave Search API Pro plan.

Inputs:

- `query` (string, required) — Search query — shapes result type, e.g. 'coffee shops' or 'Eiffel Tower'
- `location` (string, optional) — Location context, e.g. 'san francisco ca united states' or 'tokyo japan'
- `latitude` (float, optional) — Latitude (-90 to 90)
- `longitude` (float, optional) — Longitude (-180 to 180)
- `radius` (int, optional) — Proximity bias in metres (not a hard cutoff)
- `count` (int, optional, default: 20) — Results to return (1–50)
- `country` (CountryCode, optional, default: 




Retrieves an AI-generated summary of web search results using Brave's Summarizer API.

Workflow: call search_web with summary=true first, then pass the returned summarizer_key to this tool.

Requires a Brave Search API Pro AI subscription.

Inputs:

- `key` (string, required) — Summarizer key from search_web called with summary=true
- `entity_info` (bool, optional, default: false) — Include related entity information

output data schema:

{
  text: string;
}

Retrieves pre-extracted, relevance-ranked web content using Brave's LLM Context API, optimised for AI agents, LLM grounding, and RAG pipelines.

Unlike a web search (links + short descriptions), this tool returns the actual substance of matching pages — text chunks, tables, code blocks — so the model can reason over it directly.

When to use:

  • Grounding answers in fresh, relevant web content (RAG)
  • Question answering and fact-checking against current sources
  • Gathering source material without manually fetching pages

When relaying results in markdown environments, cite source URLs from the 'sources' map.

Inputs:

- `query` (string, required) — Search query (max 400 chars, 50 words)
- `country` (CountryCode, optional, default: "US") — Country for results
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `count` (int, optional, default: 20) — Number of results to consider (1–50













API Parameters Reference

Every tool returns the same top-level envelope. Only data varies per tool.

// Success
{
  "success": true,
  "statusCode": 200,
  "retriable": false,
  "retry_after_seconds": null,
  "error": null,
  "data": { ... }
}
 
// Error







These appear, with the same meaning, across most of the search tools:

  • country (CountryCode) — "Country for results" (search_local and search_places phrase this as "Country code")
  • search_lang (SearchLang) — Search language
  • ui_lang (UiLang) — UI language
  • safesearch (SafeSearch: off | moderate | strict) — Safe-search level
  • spellcheck (bool) — Spellcheck the query
  • (string) — Time filter: (day) / (week) / (month) / (year), or a custom range

Getting Your Brave Search API Key

  1. Go to the Brave Search API dashboard
  2. Sign up or log in, then subscribe to a plan (a free tier is available)
  3. Open the API Keys section of the dashboard and create a new key (or use the one generated for you on signup)
  4. Copy the generated key — you will only see it once

Troubleshooting

  • Cause: API key not provided in request headers or incorrect format
  • Solution:
    1. Verify Authorization: Bearer YOUR_API_KEY and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are present
    2. Check API key is active in your MewCP account
  • Cause: API calls have exceeded your request limits
  • Solution:
    1. Check credit usage in your Curious Layer dashboard
    2. Upgrade to a paid plan or add credits for higher limits
    3. Contact support for credit adjustments
  • Cause: No Brave Search credential linked to your account
  • Solution:
    1. Go to Credentials in your MewCP dashboard
    2. Connect your Brave Search account (OAuth) or add your API key (static)
    3. Retry the request with the correct X-Mewcp-Credential-Id header
  • Cause: JSON payload is invalid or missing required fields
  • Solution:
    1. Validate JSON syntax before sending
    2. Ensure all required tool parameters are included
    3. Check parameter types match expected values
  • Cause: Incorrect server name in the API endpoint
  • Solution:
    1. Verify endpoint format: mewcp-brave-search/mcp/{tool-name}
    2. Use correct server name from documentation
    3. Check available servers in your Curious Layer account
  • Cause: Upstream Brave Search API returned an error
  • Solution:
    1. Check the Brave Search API's status page for ongoing incidents
    2. Verify your credential has the required permissions (some tools require a Pro plan)
    3. Review the error message for specific details

  • Brave Search API Documentation — Official API reference
  • FastMCP Docs — FastMCP specification
  • FastMCP Credentials — FastMCP Credentials package for credential handling
- `text_decorations` (bool, optional, default: true) — Include decoration markers in snippets
- `spellcheck` (bool, optional, default: true) — Spellcheck the query
- `result_filter` (list of ResultFilter, optional) — Subset of result types to return (default ['web','query'])
- `goggles` (list of string, optional) — Goggle HTTPS URLs for custom re-ranking
- `units` (Units, optional) — Measurement units
- `extra_snippets` (bool, optional) — Up to 5 extra excerpts per result (Pro plan)
- `summary` (bool, optional) — Return a summarizer_key to pass to summarize_search_results
;
mutated_by_goggles: boolean | null;
data: string | null; // discussion body
source: Record<string, unknown> | null;
breaking: boolean | null;
is_live: boolean | null;
age: string | null;
thumbnail_url: string | null;
duration: string | null;
view_count: number | null;
creator: string | null;
publisher: string | null;
tags: string[] | null;
}[];
}
{
results: {
// POI-shaped fields
name: string | null;
address: string | null;
phone: string | null;
rating: number | null;
review_count: number | null;
hours: unknown[] | null;
price_range: string | null;
categories: string[] | null;
url: string | null;
description: string | null;
// fallback web-result-shaped fields (when local data is unavailable)
title: string | null;
extra_snippets: string[] | null;
}[];
}
"moderate"
) — Safe-search level
- `freshness` (string, optional) — Time filter: pd pw pm py or YYYY-MM-DDtoYYYY-MM-DD
- `spellcheck` (bool, optional, default: true) — Spellcheck the query

output data schema:

{
  results: {
    url: string | null;
    title: string | null;
    description: string | null;
    age: string | null;
    thumbnail_url: string | null;
    duration: string | null;
    view_count: number | null;
    creator: string | null;
    publisher: string | null;
    tags: string[] | null;
    mutated_by_goggles: boolean | null;
  }[];
}

output data schema:

{
  results: {
    url: string | null;
    source: string | null;
    title: string | null;
    width: number | null;
    height: number | null;
    format: string | null;
  }[];
}
"moderate"
) — Safe-search level
- `freshness` (string, optional) — Time filter: pd pw pm py or YYYY-MM-DDtoYYYY-MM-DD
- `extra_snippets` (bool, optional) — Up to 5 extra excerpts per result (Pro plan)
- `spellcheck` (bool, optional, default: true) — Spellcheck the query

output data schema:

{
  results: {
    mutated_by_goggles: boolean | null;
    source: Record<string, unknown> | null;
    breaking: boolean | null;
    is_live: boolean | null;
    age: string | null;
    url: string | null;
    title: string | null;
    description: string | null;
    extra_snippets: string[] | null;
  }[];
}
"US"
) — Country code
- `search_lang` (SearchLang, optional, default: "en") — Search language
- `ui_lang` (UiLang, optional, default: "en-US") — UI language
- `units` (Units, optional) — Measurement units
- `safesearch` (SafeSearch, optional, default: "moderate") — Safe-search level
- `spellcheck` (bool, optional, default: true) — Spellcheck the query

output data schema:

{
  results: {
    name: string | null;
    address: string | null;
    phone: string | null;
    rating: number | null;
    review_count: number | null;
    hours: unknown[] | null;
    price_range: string | null;
    categories: string[] | null;
    url: string | null;
    description: string | null;
  }[];
}
)
- `freshness` (string, optional) — Time filter: pd pw pm py or YYYY-MM-DDtoYYYY-MM-DD
- `spellcheck` (bool, optional, default: true) — Spellcheck the query
- `maximum_number_of_urls` (int, optional) — Max URLs to extract content from (1–50)
- `maximum_number_of_tokens` (int, optional) — Total token budget (1024–32768)
- `maximum_number_of_snippets` (int, optional) — Max snippets across all URLs (1–256)
- `context_threshold_mode` (ContextThresholdMode, optional) — Relevance filtering mode
- `maximum_number_of_tokens_per_url` (int, optional) — Per-URL token budget (512–8192)
- `maximum_number_of_snippets_per_url` (int, optional) — Per-URL snippet cap (1–100)
- `enable_local` (bool, optional) — Enable local recall
- `enable_source_metadata` (bool, optional) — Enrich source metadata
- `x_loc_lat` (float, optional) — User latitude (-90 to 90)
- `x_loc_long` (float, optional) — User longitude (-180 to 180)
- `x_loc_city` (string, optional) — User city
- `x_loc_country` (string, optional) — User 2-letter country code

output data schema:

{
  // This model declares no fixed fields of its own — the entire response
  // shape is the passthrough JSON from Brave's LLM Context API. The tool
  // description references a `sources` map for citing result URLs.
  [key: string]: unknown;
}
{
"success": false,
"statusCode": 400,
"retriable": false,
"retry_after_seconds": null,
"error": { "code": "{ERROR_CODE}", "message": "{description}", "details": {} },
"data": null
}
  • retriable — true when it is safe to retry (rate limit, network error, 503). false for validation and auth errors.
  • retry_after_seconds — seconds to wait before retrying; present only when retriable is true and the upstream specifies a delay.
  • error.code — machine-readable string: VALIDATION_ERROR, AUTH_ERROR, UPSTREAM_ERROR, SERVER_ERROR.
  • All data models accept additional, undocumented fields beyond what's listed above (extra="allow") — Brave may add fields to its API responses that aren't reflected in these schemas yet.
freshness
pd
pw
pm
py
YYYY-MM-DDtoYYYY-MM-DD
  • units (Units: metric | imperial) — Measurement units
  • CountryCode, SearchLang, and UiLang are each closed lists of ISO-style codes matching Brave's supported values — pass one of the enumerated codes for the given parameter.