google_search_scholar
Search scholarly articles and academic literature using Google Scholar. Retrieve results with customizable country, language, location, and page settings.
Instructions
Search Google for results
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"q": "<q>"
},
"name": "google_search_scholar"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | The query to search for | |
| gl | No | The country to search in, e.g. us, uk, ca, au, etc. | |
| location | No | The location to search in, e.g. San Francisco, CA, USA | |
| hl | No | The language to search in, e.g. en, es, fr, de, etc. | |
| page | No | The page number to return, first page is 1 (integer value as string) | 1 |
| autocorrect | No | Automatically correct (boolean value as string: 'true' or 'false') | true |
Implementation Reference
- src/serper_mcp_server/core.py:14-17 (handler)The async function that executes the google_search_scholar tool. It splits the tool name ('google_search_scholar') on underscores, takes the last part ('scholar') as URI path, and sends a POST request to https://google.serper.dev/scholar.
async def google(tool: SerperTools, request: BaseModel) -> Dict[str, Any]: uri_path = tool.value.split("_")[-1] url = f"https://google.serper.dev/{uri_path}" return await fetch_json(url, request) - src/serper_mcp_server/server.py:25-38 (registration)Registration mapping: SerperTools.GOOGLE_SEARCH_SCHOLAR is mapped to AutocorrectRequest schema in the google_request_map, which is iterated over in list_tools() to register the tool with MCP.
google_request_map = { SerperTools.GOOGLE_SEARCH: SearchRequest, SerperTools.GOOGLE_SEARCH_IMAGES: SearchRequest, SerperTools.GOOGLE_SEARCH_VIDEOS: SearchRequest, SerperTools.GOOGLE_SEARCH_PLACES: AutocorrectRequest, SerperTools.GOOGLE_SEARCH_MAPS: MapsRequest, SerperTools.GOOGLE_SEARCH_REVIEWS: ReviewsRequest, SerperTools.GOOGLE_SEARCH_NEWS: SearchRequest, SerperTools.GOOGLE_SEARCH_SHOPPING: ShoppingRequest, SerperTools.GOOGLE_SEARCH_LENS: LensRequest, SerperTools.GOOGLE_SEARCH_SCHOLAR: AutocorrectRequest, SerperTools.GOOGLE_SEARCH_PATENTS: PatentsRequest, SerperTools.GOOGLE_SEARCH_AUTOCOMPLETE: AutocorrectRequest, } - Input schema for google_search_scholar: AutocorrectRequest extends BaseRequest with fields q, gl, location, hl, page, and autocorrect.
class AutocorrectRequest(BaseRequest): autocorrect: Optional[str] = Field( "true", pattern=r"^(true|false)$", description="Automatically correct (boolean value as string: 'true' or 'false')", ) - src/serper_mcp_server/enums.py:14-17 (helper)Enum definition: SerperTools.GOOGLE_SEARCH_SCHOLAR = 'google_search_scholar' is the string identifier for the tool.
GOOGLE_SEARCH_SCHOLAR = "google_search_scholar" GOOGLE_SEARCH_PATENTS = "google_search_patents" GOOGLE_SEARCH_AUTOCOMPLETE = "google_search_autocomplete" WEBPAGE_SCRAPE = "webpage_scrape"