This MCP server integrates with Google Places API to allow searching, retrieving details, and finding nearby places.
The following environment variables are required:
GOOGLE_MAPS_API_KEY: Your Google Maps API key with Places API access enabledTRANSPORT_TYPE: Transport method to use (stdioorsse)PORT: (Optional) Port number for SSE transport (default: 3000)
Create a .env file in the root directory with these variables:
GOOGLE_MAPS_API_KEY=your_api_key_here
PORT=3000- Install dependencies:
npm install- Start the development server:
npm run devThe server supports two transport methods:
- SSE (Server-Sent Events): Uses HTTP with Server-Sent Events for real-time communication
When using SSE transport, the server exposes two endpoints:
GET /sse: SSE endpoint for receiving server messagesPOST /messages: Endpoint for sending messages to the server
-
places-text-search
- Text search for places using Google Places API
- Input:
textQuery(string, required): The text query to search for placesincludedType(string, optional): Restricts results to places matching the specified typeincludePureServiceAreaBusinesses(boolean, optional): Include businesses without physical locationlanguageCode(string, optional): Language code for results (e.g., "en")locationBias(object, optional): Bias results toward this locationlocationRestriction(object, optional): Restrict results to this locationpageSize(number, optional): Number of results per page (1-20)pageToken(string, optional): Token for next page of resultspriceLevels(array, optional): Filter by price levelsrankPreference(string, optional): Rank by "RELEVANCE" or "DISTANCE"regionCode(string, optional): Two-character country/region codestrictTypeFiltering(boolean, optional): Only return exact type matchesevOptions(object, optional): EV charging station filtersminRating(number, optional): Minimum rating filter (0-5)openNow(boolean, optional): Filter for places currently openfields(array, optional): Specific fields to include in response
- Returns matching places with details
-
places-nearby-search (Coming Soon)
- Find places near a specific location
- Input:
location(object, required): Latitude and longitude coordinatesradius(number, optional): Search radius in meterskeyword(string, optional): Keyword to filter resultstype(string, optional): Place type to filter resultsrankBy(string, optional): Rank by "prominence" or "distance"openNow(boolean, optional): Filter for places that are currently openfields(array, optional): Specific fields to include in the response
- Returns nearby places with details
-
place-details (Coming Soon)
- Get detailed information about a specific place
- Input:
placeId(string, required): Google Place IDfields(array, optional): Specific fields to include in the responselanguageCode(string, optional): Language code for results
- Returns comprehensive details about the place
-
place-photo (Coming Soon)
- Retrieve photos for a place
- Input:
photoReference(string, required): Reference from a Place Details responsemaxWidth(number, optional): Maximum width of the returned imagemaxHeight(number, optional): Maximum height of the returned image
- Returns photo data or URL