web_search

Pack: brave-search · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/web_search for the schema, then POST the same URL with its arguments for the data.

General web search via the Brave index. Returns title, URL, description snippet, age, language, and site categories. Optional country, language, safesearch, and freshness filters.

Parameters

NameTypeRequiredDescription
qstringyesSearch query
countnumbernoResults to return (1-20, default 10)
offsetnumberno0-9 page offset (default 0)
countrystringno2-letter country code (e.g., “us”, “gb”)
search_langstringno2-letter language (e.g., “en”)
safesearchstringnostrict | moderate | off (default moderate)
freshnessstringnopd (past day) | pw (past week) | pm (past month) | py (past year) | YYYY-MM-DDtoYYYY-MM-DD

Example call

Arguments

{
  "q": "best practices for machine learning"
}

curl

curl -X POST https://gateway.pipeworx.io/brave-search/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"web_search","arguments":{"q":"best practices for machine learning"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('web_search', {
  "q": "best practices for machine learning"
});

More examples

{
  "q": "latest AI breakthroughs",
  "count": 15,
  "country": "us",
  "search_lang": "en",
  "safesearch": "moderate",
  "freshness": "pw"
}

Response shape

Always returns: query, altered, total, returned, results

FieldTypeDescription
querystringThe original search query
alteredstring | nullAltered query if Brave modified it, otherwise null
totalinteger | nullTotal results available for the query
returnedintegerNumber of results returned in this response
resultsarrayArray of web search results
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The original search query"
    },
    "altered": {
      "type": [
        "string",
        "null"
      ],
      "description": "Altered query if Brave modified it, otherwise null"
    },
    "total": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Total results available for the query"
    },
    "returned": {
      "type": "integer",
      "description": "Number of results returned in this response"
    },
    "results": {
      "type": "array",
      "description": "Array of web search results",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Result title"
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Result URL"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Result snippet/description"
          },
          "age": {
            "type": [
              "string",
              "null"
            ],
            "description": "Age of the result"
          },
          "page_age": {
            "type": [
              "string",
              "null"
            ],
            "description": "Age of the page"
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "Language of the result"
          },
          "hostname": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hostname from meta_url"
          },
          "thumbnail": {
            "type": [
              "string",
              "null"
            ],
            "description": "Thumbnail image URL"
          }
        }
      }
    }
  },
  "required": [
    "query",
    "altered",
    "total",
    "returned",
    "results"
  ]
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the brave-search pack
{
  "mcpServers": {
    "brave-search": {
      "url": "https://gateway.pipeworx.io/brave-search/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 25, 2026