Skip to main content
Glama
lianshuang-photo

SearchAPI MCP Server

search_google_maps

Search Google Maps for places and businesses using text queries and optional location coordinates to find relevant results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes搜索查询
location_llNo位置坐标,格式为"纬度,经度"

Implementation Reference

  • The handler function for the 'search_google_maps' tool. It constructs the API parameters (engine: 'google_maps', q: query, optional ll: location_ll), calls the makeSearchapiRequest helper, and returns the JSON-formatted result as text content.
    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) }]
      };
    }
  • Zod input schema for the tool: 'query' (string, required, search query), 'location_ll' (string, optional, location coordinates in 'lat,lng' format).
    {
      query: z.string().describe('搜索查询'),
      location_ll: z.string().optional().describe('位置坐标,格式为"纬度,经度"')
    },
  • src/index.js:60-81 (registration)
    Registration of the 'search_google_maps' tool via server.tool(), specifying the name, input schema, and inline handler function.
    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) }]
        };
      }
    );
  • Shared helper function 'makeSearchapiRequest' that adds the API key, makes GET request to searchapi.io, handles errors, and returns the data or error object. Used by 'search_google_maps' and other tools.
    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 };
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lianshuang-photo/searchapi-mcp-nodejs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server