web_search
Search the web, with no session.
Returns the titles, URLs and snippets of the top results. Set fetch to also get the top 1 to 5 pages as Markdown in the same call. Open a result with browser_navigate or web_fetch.
Inputs
| Name | Type | Default | Allowed values | Description |
|---|---|---|---|---|
queryrequired | string | – | – | What to search for, 1 to 400 characters. Operators work: "exact words", -word, site:example.com. |
limit | integer | 10 | – | How many results, 1 to 20. |
country | string | – | – | The two-letter country the results come from, for example DE. |
language | string | – | – | The language of the results, for example de. |
recency | string | – | day, week, month, year | Only pages published or changed in that time. |
fetch | integer | 0 | – | Also return the top N pages as Markdown, 0 to 5. |
Example call
This is what an MCP client sends. You do not write it yourself: ask the model in plain words and it calls the tool.
{ "name": "web_search", "arguments": { "query": "playwright connect over cdp", "limit": 5 }}What it returns
A numbered list of results with their titles, URLs, dates and snippets, and the pages' Markdown with fetch.
Search results for "playwright connect over cdp":1. BrowserType | Playwright https://playwright.dev/docs/api/class-browsertype …When a call fails, the result is marked as an error. Its text starts with the API’s error code, such as unauthorized or session_not_running, followed by its message.
Annotations
The server tells every client what this tool does to the world, so a client can decide what to ask you about before it runs.
| Annotation | Value |
|---|---|
title | Search the web |
readOnlyHint | true |
destructiveHint | false |
openWorldHint | true |
Good to know
- Each search counts against your plan's monthly searches; the same search within an hour is free.
- The query goes to Brave, a search provider: do not put passwords or personal data in it.
The same thing with the API
| Endpoint | Reference |
|---|---|
POST /v1/search | Search the web |
These docs describe a beta API. Endpoints, fields and SDK methods may change before general availability; breaking changes will be listed in the changelog.