Skip to main content
Glama
satheeshds

Google Business Profile Review MCP Server

by satheeshds
mappers.ts2.29 kB
/** * Data transformation utilities for Google My Business API responses */ import type { GoogleReview, BusinessLocation } from '../types/index.js'; /** * Maps raw API review data to GoogleReview type */ export function mapApiReviewToGoogleReview(review: any): GoogleReview { return { reviewId: review.reviewId || review.name?.split('/').pop() || '', reviewer: { profilePhotoUrl: review.reviewer?.profilePhotoUrl, displayName: review.reviewer?.displayName || 'Anonymous', isAnonymous: review.reviewer?.isAnonymous || false }, starRating: review.starRating || 'STAR_RATING_UNSPECIFIED', comment: review.comment || '', createTime: review.createTime || new Date().toISOString(), updateTime: review.updateTime || new Date().toISOString(), reviewReply: review.reviewReply ? { comment: review.reviewReply.comment || '', updateTime: review.reviewReply.updateTime || new Date().toISOString() } : undefined, name: review.name || '' }; } /** * Maps raw API location data to BusinessLocation type */ export function mapApiLocationToBusinessLocation(location: any): BusinessLocation { return { name: location.name, locationName: location.title || location.name, primaryPhone: location.phoneNumbers?.[0]?.phoneNumber, websiteUri: location.websiteUri, address: location.storefrontAddress ? { addressLines: location.storefrontAddress.addressLines || [], locality: location.storefrontAddress.locality || '', administrativeArea: location.storefrontAddress.administrativeArea || '', postalCode: location.storefrontAddress.postalCode || '', regionCode: location.storefrontAddress.regionCode || '' } : undefined }; } /** * Filters reviews to only include those without replies */ export function filterUnrepliedReviews(reviews: GoogleReview[]): GoogleReview[] { return reviews.filter(review => !review.reviewReply); } /** * Extracts categories from location data */ export function extractCategories(location: any): string[] { return location.additionalCategories?.map((cat: any) => cat.displayName).filter(Boolean) || []; }

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/satheeshds/gbp-review-agent'

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