README.md•3.72 kB
# Google Places MCP Server
This MCP server integrates with Google Places API to allow searching, retrieving details, and finding nearby places.
## Setup
### Environment Variables
The following environment variables are required:
- `GOOGLE_MAPS_API_KEY`: Your Google Maps API key with Places API access enabled
- `TRANSPORT_TYPE`: Transport method to use (`stdio` or `sse`)
- `PORT`: (Optional) Port number for SSE transport (default: 3000)
Create a `.env` file in the root directory with these variables:
```env
GOOGLE_MAPS_API_KEY=your_api_key_here
PORT=3000
```
### Development
1. Install dependencies:
```bash
npm install
```
2. Start the development server:
```bash
npm run dev
```
## Transport Options
The server supports two transport methods:
1. **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 messages
- `POST /messages`: Endpoint for sending messages to the server
### Tools
- [x] **places-text-search**
- Text search for places using Google Places API
- Input:
- `textQuery` (string, required): The text query to search for places
- `includedType` (string, optional): Restricts results to places matching the specified type
- `includePureServiceAreaBusinesses` (boolean, optional): Include businesses without physical location
- `languageCode` (string, optional): Language code for results (e.g., "en")
- `locationBias` (object, optional): Bias results toward this location
- `locationRestriction` (object, optional): Restrict results to this location
- `pageSize` (number, optional): Number of results per page (1-20)
- `pageToken` (string, optional): Token for next page of results
- `priceLevels` (array, optional): Filter by price levels
- `rankPreference` (string, optional): Rank by "RELEVANCE" or "DISTANCE"
- `regionCode` (string, optional): Two-character country/region code
- `strictTypeFiltering` (boolean, optional): Only return exact type matches
- `evOptions` (object, optional): EV charging station filters
- `minRating` (number, optional): Minimum rating filter (0-5)
- `openNow` (boolean, optional): Filter for places currently open
- `fields` (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 coordinates
- `radius` (number, optional): Search radius in meters
- `keyword` (string, optional): Keyword to filter results
- `type` (string, optional): Place type to filter results
- `rankBy` (string, optional): Rank by "prominence" or "distance"
- `openNow` (boolean, optional): Filter for places that are currently open
- `fields` (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 ID
- `fields` (array, optional): Specific fields to include in the response
- `languageCode` (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 response
- `maxWidth` (number, optional): Maximum width of the returned image
- `maxHeight` (number, optional): Maximum height of the returned image
- Returns photo data or URL