# Google Business MCP Server

> **Google Business MCP Server** is a hosted, multitenant Model Context Protocol (MCP) server run by **MewCP** (https://mewcp.com), giving AI agents managed access to Google Business.
>
> MewCP takes care of all MCP infrastructure for you — credential storage, OAuth flows,
> token refresh, and production-grade auto-scaling — so your AI agents can connect to
> third-party services and run freely without you managing any MCP server yourself.
>
> Server page:  https://mewcp.com/mcp/google-business
> MewCP docs:   https://docs.mewcp.com
> All servers:  https://mewcp.com/servers (JSON: https://mewcp.com/api/servers)
> About MewCP:  https://mewcp.com/llms.txt

---

## About

Manage your Google Business Profile, business information and customer engagement. Update listings, publish content, monitor reviews and maintain your local presence across Google services.

---

## Details

- Server ID: `google-business`
- Version: 1.5.0
- Tools: 35
- Authentication: OAuth, managed by MewCP
- Calls served: 1313
- Transport: http

---

## Access

The gateway URL below serves your **entire MewCP toolset**, not this server on its
own. Pasting a config snippet is not enough — Google Business has to be in the toolset
first. In order:

1. Add Google Business to your toolset at https://mewcp.com/mcp/google-business
2. Connect your Google Business account (OAuth); MewCP stores the credential and attaches it to each call
3. Add the gateway URL to your client (see Connect below). It signs in with OAuth
   the first time it connects, so there is no key to copy.

Once connected, an agent does **not** see this server's tools as top-level tools.
It sees four meta-tools and reaches everything through them:

- `search(query)` — find tools by keyword across the toolset
- `get_schema(tools)` — full description and arguments for the tools you picked
- `list_accounts(provider)` — only when one app has several connected accounts
- `call_tool(server_maskedId, tool_name, args)` — execute

So the list below is what `search` can return for this server, not a set of
callable tool names on their own.

---

## Tools (35)

Descriptions are truncated to 160 characters; call `get_schema`
for the full text and the argument schema. Where a tool is annotated, its type
is shown — treat `destructive` as irreversible.

- `list_locations` _(read)_ — Lists the locations for the specified account, optionally filtered and sorted, and returns the matching Location objects with pagination info.
- `create_location` _(write)_ — Creates a new Location that will be owned by the logged-in user, and returns the newly created Location. A newly created location is unverified and not…
- `get_location` _(read)_ — Returns the specified location as last set by the merchant; may not reflect updates from Google or user-generated content live on Google Maps.
- `update_location` _(write)_ — Updates the specified location's fields per the given update mask, and returns the updated Location. Only the fields you provide are changed — others keep…
- `delete_location` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes the location. This action is irreversible — the location and its data…
- `get_google_updated_location` _(read)_ — Returns the specified location as it appears live on Google Maps and Search, which may differ from the merchant's version, along with masks of what Google…
- `get_location_attributes` _(read)_ — Retrieves attributes for a location as last set by the merchant.
- `update_location_attributes` _(write)_ — Updates attributes for a given location per the given attribute mask, and returns the updated Attributes. Only the fields you provide are changed — others keep…
- `get_google_updated_location_attributes` _(read)_ — Retrieves attributes for a location as they appear live on Google Maps and Search, which may differ from the merchant's version.
- `get_chain` _(read)_ — Gets the specified chain, returning NOT_FOUND if the chain does not exist.
- `search_chains` _(read)_ — Searches for a chain based on chain name and returns the list of matching chains.
- `list_categories` _(read)_ — Returns a list of business categories matched by the front of the category name (e.g. 'food' matches 'Food Court' but not 'Fast Food Restaurant').
- `batch_get_categories` _(read)_ — Returns a list of business categories for the provided language and category (GConcept) IDs.
- `list_available_attributes` _(read)_ — Returns the list of attributes that would be available for a location with the given primary category and country. Provide exactly one of: `parent` (the…
- `search_google_locations` _(read)_ — Searches all of the possible locations on Google that are a match to the specified request and returns the matching GoogleLocation entries. Exactly one of…
- `get_daily_metrics_time_series` _(read)_ — Returns the values for each date in a given time range for a single specified daily metric. Only daily data is available; hourly metrics are not supported.
- `fetch_multi_daily_metrics_time_series` _(read)_ — Returns the values for each date in a given time range for multiple specified daily metrics at once. Only daily data is available; hourly metrics are not…
- `list_search_keyword_impressions_monthly` _(read)_ — Returns the search keywords used to find a business in Search or Maps, each accompanied by impression counts aggregated on a monthly basis.
- `list_accounts` _(read)_ — Lists the accounts the authenticated user owns or has management rights to (or, with parent_account, the accounts directly accessible from an Organization or…
- `get_account` _(read)_ — Returns the specified account, including its name, type, role, permission level, verification and vetted state, and organization info for organization…
- `create_account` _(write)_ — Creates an account of the given type and primary owner, and returns the new Account. Personal accounts and Organizations cannot be created; User Groups cannot…
- `update_account` _(write)_ — Updates the specified business account's accountName (the only editable field) and returns the updated Account; Personal accounts cannot be updated. Only the…
- `list_account_admins` _(read)_ — Lists the admins of the specified account and returns each admin's resource name, name (or invitee email while pending), role, and whether their invitation is…
- `list_invitations` _(read)_ — Lists the pending invitations for the specified account (at most 1000), optionally filtered by target type, and returns each invitation's resource name,…
- `list_location_admins` _(read)_ — Lists all admins of the specified location and returns each admin's resource name, name (or invitee email while pending), role, and whether their invitation is…
- `list_local_posts` _(read)_ — Lists the local posts (updates, events, offers) of a location and returns the LocalPost objects with a next-page token. Takes the v4 location name…
- `get_local_post` _(read)_ — Returns the specified local post, including its summary, topic type, call to action, event and offer details, media, state (LIVE, PROCESSING, REJECTED) and…
- `create_local_post` _(write)_ — Creates a local post on the specified location and returns the new LocalPost. EVENT and OFFER posts require event (title and a full schedule), offer should…
- `update_local_post` _(write)_ — Updates the fields of the specified local post named in the update mask, and returns the updated LocalPost. Only the fields you provide are changed — others…
- `delete_local_post` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes the local post from the location's Business Profile. This action is…
- `list_reviews` _(read)_ — Lists the customer reviews of a verified location and returns the reviews (reviewer, star rating, comment, owner reply) together with the location's average…
- `get_review` _(read)_ — Returns the specified review of a verified location, including the reviewer, star rating, comment, media and the owner's reply text. Google does not return the…
- `batch_get_reviews` _(read)_ — Returns one paginated list of reviews across up to 50 verified locations of an account, each review paired with its location name, plus a next-page token.
- `update_review_reply` _(write)_ — Sets the owner's public reply to the specified review of a verified location, creating the reply if none exists, and returns the saved reply text and time. The…
- `delete_review_reply` _(destructive)_ — DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes the owner's reply to the specified review of a verified location; the…

---

## Connect

- URL: https://gateway.mewcp.com/personal/mcp
- Transport: Streamable HTTP (remote). Nothing to install.
- Sign-in: OAuth. On first connect the client opens a browser window to sign in
  to MewCP and approve access. No API key.
- Headless clients (SDKs, servers without a browser) send an API key instead:
  `Authorization: Bearer <API_KEY>`, key from https://mewcp.com/dashboard/api-keys

Agents setting themselves up: follow https://mewcp.com/SKILL.md

Step-by-step guide per client:

- Claude Desktop: https://mewcp.com/mcp/google-business/connect/claude
- ChatGPT: https://mewcp.com/mcp/google-business/connect/chatgpt
- VS Code: https://mewcp.com/mcp/google-business/connect/vscode
- Cursor: https://mewcp.com/mcp/google-business/connect/cursor
- Codex: https://mewcp.com/mcp/google-business/connect/codex
- Claude Code: https://mewcp.com/mcp/google-business/connect/claude-code
- OpenCode: https://mewcp.com/mcp/google-business/connect/opencode
- OpenClaw: https://mewcp.com/mcp/google-business/connect/openclaw
- Antigravity: https://mewcp.com/mcp/google-business/connect/antigravity
- Hermes: https://mewcp.com/mcp/google-business/connect/hermes
- DeepSeek Harness: https://mewcp.com/mcp/google-business/connect/dsh
- Python: https://mewcp.com/mcp/google-business/connect/python
- TypeScript: https://mewcp.com/mcp/google-business/connect/typescript