geocode
Convert addresses to geographic coordinates using Google's geocoding service to enable location-based applications and mapping functionality.
Instructions
Convert an address to coordinates
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to geocode |
Implementation Reference
- src/maps.ts:145-200 (handler)The primary handler function for the 'geocode' tool. It uses the Google Maps Geocoding API to convert an address to coordinates and returns formatted markdown output.export async function geocode( params: z.infer<typeof geocodeSchema>, extra?: any ) { const apiKey = process.env.GOOGLE_MAPS_API_KEY; if (!apiKey) { throw new Error("GOOGLE_MAPS_API_KEY is required"); } try { const response = await googleMapsClient.geocode({ params: { address: params.address, key: apiKey, }, }); const results = response.data.results; if (results.length === 0) { return { content: [ { type: "text" as const, text: "No results found for the given address.", }, ], }; } const location = results[0]; return { content: [ { type: "text" as const, text: formatLocationToMarkdown( "Geocoded Location", location.formatted_address, location.geometry.location.lat, location.geometry.location.lng, location.place_id ), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: `Error geocoding address: ${ error instanceof Error ? error.message : String(error) }`, }, ], }; }
- src/maps.ts:105-107 (schema)Zod schema defining the input parameters for the geocode tool: a single 'address' string field.export const geocodeSchema = z.object({ address: z.string().describe("The address to geocode"), });
- src/index.ts:60-67 (registration)MCP server registration of the 'geocode' tool, specifying name, description, input schema, and handler execution.server.tool( "geocode", "Convert an address to coordinates", geocodeSchema.shape, async (params) => { return await geocode(params); } );