Skip to content
Agentmart
Submit a tool

Google Business Profile MCP

MCP server for Google Business Profile: locations, reviews, local posts and performance metrics.

Connector by A1-x-Tech · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 4
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/a1-x-tech-mcp-google-business

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for Google Business Profile: locations, reviews, local posts and performance metrics.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
12 read · 5 write · 3 delete
Secrets
3 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 20

Read from the source code; the running server may list different tools.

Read 12 · Look things up without changing anything.

  • fetch_multi_daily_metrics
  • get_daily_metrics
  • get_location
  • get_review
  • list_accounts
  • list_attribute_metadata
  • list_categories
  • list_local_posts
  • list_locations
  • list_reviews
  • list_search_keyword_impressions
  • search_chains

Write 5 · Create, change, send or run things.

  • create_local_post
  • reply_to_review
  • update_local_post
  • update_location
  • update_location_attributes

Delete 3 · Delete, drop, revoke or wipe things.

  • delete_local_post
  • delete_review_reply
  • raw_request

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • GOOGLE_BUSINESS_ACCESS_TOKEN
  • GOOGLE_BUSINESS_CLIENT_SECRET
  • GOOGLE_BUSINESS_REFRESH_TOKEN

Other settings (environment variables or headers).

  • GOOGLE_BUSINESS_ACCOUNTS_API_BASE
  • GOOGLE_BUSINESS_CLIENT_ID
  • GOOGLE_BUSINESS_INFO_API_BASE
  • GOOGLE_BUSINESS_MAX_RETRIES
  • GOOGLE_BUSINESS_OAUTH_PORT
  • GOOGLE_BUSINESS_PERFORMANCE_API_BASE
  • GOOGLE_BUSINESS_TIMEOUT_MS
  • GOOGLE_BUSINESS_V4_API_BASE

Network hosts it talks to 10

  • businessprofileperformance.googleapis.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • googleapis.com · found in code
  • mybusiness.googleapis.com · found in code
  • mybusinessaccountmanagement.googleapis.com · found in code
  • mybusinessbusinessinformation.googleapis.com · found in code
  • oauth2.googleapis.com · found in code
  • support.google.com · found in code
  • usage.gistrec.cloud · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (20)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • create_local_postCreate a local post

    Publishes a new local post on the Business Profile. Pass the LocalPost as `post`. LocalPost fields: languageCode; summary (the post text); topicType (STANDARD | EVENT | OFFER | ALERT); callToAction {actionType: BOOK | ORDER | SHOP | LEARN_MORE | SIGN_UP | CALL, url}; event {title, schedule{startDate{year,month,day}, startTime{hours,minutes}, endDate, endTime}} — required for EVENT and OFFER; offer {couponCode, redeemOnlineUrl, termsConditions}; media [{mediaFormat: "PHOTO", sourceUrl}]. ALERT posts are restricted to Google-initiated campaigns and are typically rejected. Returns the created pos…

  • delete_local_postDelete a local postcan change or delete data

    Deletes a local post from the Business Profile. Empty response on success. Local posts live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • delete_review_replyDelete a review replycan change or delete data

    Deletes the business's reply to a review (the review itself is the customer's and cannot be deleted). Empty response on success. Reviews live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • fetch_multi_daily_metricsMultiple daily metrics at onceread-only

    Returns daily time series for SEVERAL performance metrics of a location in one call — same data as get_daily_metrics, but batched. Response: multiDailyMetricTimeSeries[].dailyMetricTimeSeries[] of {dailyMetric, timeSeries.datedValues[]}; values are int64 strings. Prefer this over several get_daily_metrics calls to save quota. Metrics for the most recent days are not available immediately (multi-day lag, typically a few days) — empty values near today are normal, not an error.

  • get_daily_metricsDaily metric time seriesread-only

    Returns a daily time series for ONE performance metric of a location: impressions by surface (Maps/Search × desktop/mobile), direction requests, call clicks, website clicks, conversations, bookings, food orders or menu clicks. Response: timeSeries.datedValues[] of {date{year,month,day}, value} — value is int64 serialized as a string; a missing value means no data for that day. Metrics for the most recent days are not available immediately (multi-day lag, typically a few days) — empty values near today are normal, not an error.

  • get_locationGet a locationread-only

    Returns one location by id (Business Information API; v1 uses the bare locations/{id} name, no account prefix). The readMask picks which fields come back: title, categories, storefrontAddress, phoneNumbers, websiteUri, regularHours, specialHours, openInfo, profile (description), storeCode, latlng, metadata (mapsUri, newReviewUri, placeId).

  • get_reviewGet a reviewread-only

    Returns one review by id — same shape as a list_reviews entry (starRating is an enum ONE..FIVE, reviewReply present only if the business already answered). Reviews live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • list_accountsList Business Profile accountsread-only

    Lists all Google Business Profile accounts the authenticated user can access (the personal account first). Each account has name (accounts/{id} — the id feeds the accountId of other tools), accountName, type (PERSONAL / LOCATION_GROUP / USER_GROUP / ORGANIZATION), role, and verificationState. The API caps pageSize at 20 (unusually small), so follow nextPageToken to see every account.

  • list_attribute_metadataList available attributesread-only

    Lists which attributes (e.g. wheelchair accessibility, wi-fi, payment options) are legal for a location or for a category+region. Pass locationId for a concrete location, OR categoryName+regionCode to explore. Each entry has parent (the attribute id for update_location_attributes), valueType (BOOL / ENUM / REPEATED_ENUM / URL), displayName, repeatable and valueMetadata (legal values).

  • list_categoriesSearch business categoriesread-only

    Lists/searches the reference taxonomy of business categories (e.g. gcid:restaurant). Category names (categories/gcid:...) feed location.categories on update_location and categoryName on list_attribute_metadata. view=FULL also returns serviceTypes and moreHoursTypes per category; filter narrows by display name, e.g. "displayName=coffee".

  • list_local_postsList local postsread-only

    Lists the local posts (What's New / Event / Offer updates shown on the Business Profile) of a location. Each post has name (accounts/*/locations/*/localPosts/{post_id}), summary, topicType, state (LIVE / PROCESSING / REJECTED), searchUrl, createTime and updateTime. Local posts live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • list_locationsList locations of an accountread-only

    Lists the business locations under an account (Business Information API). Each location's name is locations/{id} — that id feeds locationId everywhere else (including the Performance API and, together with the account id, the v4 reviews/posts tools). totalSize is only present when filter is set. Fields are limited by readMask; ask for metadata to get mapsUri/placeId/newReviewUri.

  • list_reviewsList reviewsread-only

    Lists reviews of a location, newest-updated first by default. Response: reviews[] of {name, reviewId, reviewer{displayName, isAnonymous}, starRating (ONE..FIVE enum, not a number), comment, createTime, updateTime, reviewReply{comment, updateTime} if answered}, plus averageRating (1–5) and totalReviewCount. pageSize caps at 50. Reviews live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • list_search_keyword_impressionsMonthly search keywordsread-only

    Returns the search keywords that surfaced the business on Google, month by month. Response: searchKeywordsCounts[] of {searchKeyword, insightsValue} — insightsValue is a UNION: either an exact {value} or a {threshold} for low-volume keywords (the true count is below it; never sum thresholds as exact counts). Months are calendar months; data for the current month appears with a lag.

  • raw_requestRaw Google Business Profile API callcan change or delete data

    Escape hatch to call any Google Business Profile endpoint directly, for endpoints without a dedicated tool. `service` picks the host: accounts (mybusinessaccountmanagement, v1), businessinfo (mybusinessbusinessinformation, v1), performance (businessprofileperformance, v1) or v4 (legacy mybusiness.googleapis.com — reviews, posts, media). `path` is relative to the host, e.g. "v1/accounts" or "v4/accounts/1/locations/2/media". Remember v1 quirks: readMask/updateMask go in `query`. The Bearer token is attached automatically; a path resolving to a foreign origin is rejected.

Show 5 more tools
  • reply_to_reviewReply to a review

    Creates OR replaces the business's public reply to a review (PUT upsert — there is no separate create, and calling it again overwrites the previous reply). Only works on verified locations. Returns the ReviewReply {comment, updateTime}. Counts against the 10 edits/min per-profile cap. Reviews live only on the legacy v4 API (mybusiness.googleapis.com) — they were never migrated to v1.

  • search_chainsSearch chainsread-only

    Searches business chains by name (exact/partial/fuzzy), ranked by relevance. Each chain has name (chains/{chain_id}), chainNames, websites and locationCount. Use the chain name when relating a location to its brand (location.relationshipData).

  • update_local_postUpdate a local post

    Updates fields of an existing local post (PATCH with a required updateMask — only masked fields change, e.g. updateMask "summary" with post {"summary": "New text"}). LocalPost fields: languageCode; summary (the post text); topicType (STANDARD | EVENT | OFFER | ALERT); callToAction {actionType: BOOK | ORDER | SHOP | LEARN_MORE | SIGN_UP | CALL, url}; event {title, schedule{startDate{year,month,day}, startTime{hours,minutes}, endDate, endTime}} — required for EVENT and OFFER; offer {couponCode, redeemOnlineUrl, termsConditions}; media [{mediaFormat: "PHOTO", sourceUrl}]. ALERT posts are restrict…

  • update_locationUpdate a location

    Updates fields of a location (PATCH with a required updateMask — only masked fields change). Pass the new values in `location`, e.g. {"title": "New name"} with updateMask "title". Set validateOnly to check the change without applying it. Note: every profile has a hard cap of 10 edits per minute (not raisable) — batch your changes into one call where possible. Returns the updated Location.

  • update_location_attributesUpdate location attributes

    Updates attributes of a location (PATCH). Each attribute needs its name (attributes/{attribute_id} from list_attribute_metadata's parent field) plus values (BOOL/ENUM), uriValues (URL) or repeatedEnumValue ({setValues, unsetValues}). attributeMask defaults to the names of the attributes you pass; name an attribute in the mask with no values to clear it. Counts against the 10 edits/min per-profile cap.

Signals

Stars
4
Forks
0
Open issues
0
Last commit
Oct 4, 2026 (25 days ago)
Last release
Sep 20, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.A1-x-Tech/mcp-google-business
Version
1.2.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from A1-x-Tech

Cite this page

Google Business Profile MCP. Agent Mart. https://agentmart.dev/connectors/a1-x-tech-mcp-google-business (last updated 2026-10-25)