Summary
Change the default response format of the MCP search tool from JSON to Markdown.
When callers omit params.output, the server would use output=md. Callers could retain the current behavior by explicitly passing output=json.
Motivation
The search tool currently returns JSON by default. Our internal tests show that Markdown responses use approximately 50% fewer tokens on average.
Most MCP tool responses are consumed by AI clients and agents rather than parsed directly by application code. Markdown is easier for models to read and avoids spending context tokens on deeply nested JSON syntax.
Existing agents should continue to work in normal use because they receive tool responses as model context and can read Markdown directly.
This change could break clients that assume the default response is JSON and parse it as such. I expect this to be uncommon because MCP tool results are primarily passed to agents. Applications that need a stable, machine-readable response should pass output=json explicitly or use the SerpApi API or an official language SDK.
Proposed behavior
search without params.output returns Markdown.
search with params.output="md" returns Markdown.
search with params.output="json" retains the current JSON response.
Summary
Change the default response format of the MCP
searchtool from JSON to Markdown.When callers omit
params.output, the server would useoutput=md. Callers could retain the current behavior by explicitly passingoutput=json.Motivation
The
searchtool currently returns JSON by default. Our internal tests show that Markdown responses use approximately 50% fewer tokens on average.Most MCP tool responses are consumed by AI clients and agents rather than parsed directly by application code. Markdown is easier for models to read and avoids spending context tokens on deeply nested JSON syntax.
Existing agents should continue to work in normal use because they receive tool responses as model context and can read Markdown directly.
This change could break clients that assume the default response is JSON and parse it as such. I expect this to be uncommon because MCP tool results are primarily passed to agents. Applications that need a stable, machine-readable response should pass
output=jsonexplicitly or use the SerpApi API or an official language SDK.Proposed behavior
searchwithoutparams.outputreturns Markdown.searchwithparams.output="md"returns Markdown.searchwithparams.output="json"retains the current JSON response.