search_google_maps
Search Google Maps for locations and services using queries and coordinates to find relevant results quickly. Accessible via the SearchAPI MCP Server for AI-driven assistance.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| location_ll | No | 位置坐标,格式为"纬度,经度" | |
| query | Yes | 搜索查询 |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"location_ll": {
"description": "位置坐标,格式为\"纬度,经度\"",
"type": "string"
},
"query": {
"description": "搜索查询",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}
Implementation Reference
- src/index.js:66-80 (handler)Handler function for the 'search_google_maps' tool. Prepares parameters for Google Maps search (engine: 'google_maps', query, optional location_ll) and calls makeSearchapiRequest to fetch results from searchapi.io, returning formatted JSON response.async ({ query, location_ll }) => { const params = { engine: 'google_maps', q: query }; if (location_ll) { params.ll = location_ll; } const result = await makeSearchapiRequest(params); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; }
- src/index.js:62-65 (schema)Input schema for 'search_google_maps' tool using Zod: required 'query' string, optional 'location_ll' string for latitude,longitude.{ query: z.string().describe('搜索查询'), location_ll: z.string().optional().describe('位置坐标,格式为"纬度,经度"') },
- src/index.js:60-81 (registration)MCP server.tool registration for 'search_google_maps', including schema and handler.server.tool( 'search_google_maps', { query: z.string().describe('搜索查询'), location_ll: z.string().optional().describe('位置坐标,格式为"纬度,经度"') }, async ({ query, location_ll }) => { const params = { engine: 'google_maps', q: query }; if (location_ll) { params.ll = location_ll; } const result = await makeSearchapiRequest(params); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } );
- src/index.js:29-57 (helper)Shared helper function makeSearchapiRequest used by search_google_maps (and other tools) to send HTTP requests to searchapi.io with API key, handle errors, and return data.async function makeSearchapiRequest(params) { // 确保API Key被添加到参数中 params.api_key = SEARCHAPI_API_KEY; try { const response = await axios.get(SEARCHAPI_URL, { params, timeout: 30000 // 30秒超时 }); return response.data; } catch (error) { let errorDetail = null; if (error.response) { try { errorDetail = error.response.data; } catch (e) { errorDetail = error.response.statusText; } } const errorMessage = `调用searchapi.io时出错: ${error.message}`; if (errorDetail) { return { error: `${errorMessage}, 详情: ${JSON.stringify(errorDetail)}` }; } return { error: errorMessage }; } }