MCPFerramentas MCP/Localizações

Localizações

Crie, leia, atualize, arquive e verifique localizações, incluindo suas mídias.

list_locations

Readlocations:read

List a client's business locations, newest first. This is the starting point for anything about locations: use it to find a location and its id before calling update_location, or to answer questions like "how many active locations does this client have?", "which locations still need verification?", or "show locations tagged test-pipeline". All filters are optional and are combined together (a location must match all of them); tags, categories, and verification each accept multiple values and match any of them. Returns a page of location summaries plus a running `total` and a `nextCursor` — each summary has the location's name, address (street/city/state/postalCode/country as one joined line plus their own fields), phone, website, store code, category, tags, labels, status, verification, how many saved edits haven't synced to publishers yet (pendingChanges), when it was last published, and its client. To page through more, call again passing the returned `nextCursor`. You don't pass an agency — it comes from your credentials.

Parâmetros
clientIdstringopcional
Limit to a single client's locations (get the id from list_clients). Omit to list across all of the agency's locations.
searchstringopcional
Free-text search over the location's name, street address, city, or phone (case-insensitive, partial matches allowed).
status"all" | "active" | "archived" | "archival_pending" | "verification_pending" | "unapproved" | "requires_action"opcional
A single status bucket. Allowed values: "all", "active" (not archived), "archived", "archival_pending", "verification_pending" (approval pending), "unapproved", "requires_action". Defaults to all.
tagsstring[]opcional
Internal tags — matches a location that has any of these.
categoriesstring[]opcional
Category names — matches a location whose general or Google category is any of these.
verification("verified" | "pending" | "unverified" | "unknown")[]opcional
Google verification state. Allowed values: "verified", "pending", "unverified", "unknown".
createdAfterstringopcional
Only locations created on or after this date (e.g. "2026-01-01").
createdBeforestringopcional
Only locations created on or before this date.
cursorstringopcional
Leave empty for the first page; to get the next page, pass the `nextCursor` from the previous response.
limitnumberopcional
How many locations to return per page (1–200, default 50).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_locations",
    "arguments": {}
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/list_location_tags

list_location_tags

Readlocations:read

List the distinct internal tags used across a client's locations (or the whole agency's), sorted alphabetically. Use this to DISCOVER which tags exist before filtering by tag — especially when a user names a subset without saying "tag" (e.g. "all my small-store locations"): call this to check whether "small-store" is one of their tags, then pass it as the `tags` filter to list_locations or the rollup tools. Pass clientId to scope to one client, or omit for the agency-wide tag vocabulary. You don't pass an agency — it comes from your credentials.

Parâmetros
clientIdstringopcional
Limit to one client's tags (get the id from list_clients). Omit for the whole agency's tag vocabulary.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_location_tags",
    "arguments": {}
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/get_location_by_id

get_location_by_id

Readlocations:read

Get the full details of a single location by its id. Use this once you know which location you want — typically after list_locations gives you the id — when the list summary isn't enough. Returns everything about that one location: full business profile (name, address, coordinates, phone(s), website, email, description, tagline), categories (general + per-publisher), hours (regular, special, and more-hours), attributes, services, menu, media, social links, service area, any per-publisher overrides, which publishers it's connected to, its verification status, and when it was last edited. IMPORTANT: for a location migrated from the legacy Synup platform, the `id` on the returned location can differ from the id you passed in — both values work everywhere a location id is accepted (here, update_location, etc.), but they won't be equal as strings, so don't use them to test whether two responses refer to the same location. You don't pass an agency — it comes from your credentials, and a location from another agency is never returned. To look up or find a location id first, use list_locations.

Parâmetros
locationIdstringobrigatório
The id of the location to fetch (get it from list_locations, or the id returned by create_location).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_location_by_id",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/create_location

create_location

Writelocations:write

Create a new business location under a client. You must provide the client's id (find it with list_clients), the location's business name, its two-letter country code (ISO-3166-1 alpha-2), and SOME category — creation fails without one, even though the schema can't mark it required (pass at least categoryName, from list_categories, or publisherCategories.google, from list_publisher_categories). Everything else — address, phone, website, description — is optional but makes for a better listing. Categories come in two kinds: one general category (look it up with list_categories) and per-publisher categories for Google, Facebook, Apple, and Bing (look them up with list_publisher_categories); resolve those first and pass their ids. Once created, the location is automatically queued for submission to online directories and listings. If latitude/longitude are omitted they're derived from the address. Returns the new location's id. You don't pass an agency — it comes from your credentials.

Parâmetros
clientIdstringobrigatório
The id of the client this location belongs to (required). Find it with list_clients.
namestringobrigatório
The location's business name (required).
countryIsostringobrigatório
The location's country as a two-letter ISO-3166-1 alpha-2 code, e.g. "US" or "GB" (required). Determines which directories the location can be listed in.
streetstringopcional
Street address, line 1.
street1stringopcional
Street address, line 2.
citystringopcional
City.
stateIsostringopcional
State or region, as an ISO code (e.g. "CA").
postalCodestringopcional
Postal or ZIP code.
phonestringopcional
Primary phone number.
additionalPhonesstring[]opcional
Any additional phone numbers.
websitestringopcional
The location's website URL.
categoryIdstringopcional
General category id — look it up with list_categories.
categoryNamestringopcional
General category display name (from list_categories). At least this or publisherCategories.google is required — creation fails without some category.
publisherCategoriesobjectopcional
Per-publisher categories, one per publisher. Each is an { id, name } looked up with list_publisher_categories. At least publisherCategories.google or categoryName is required — creation fails without some category.
googleobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
facebookobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
appleobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
bingobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
additionalCategoriesobject[]opcional
Up to 9 extra categories, each an { id?, name }.
idstringopcional
namestringopcional
Category name
descriptionstringopcional
A description of the business.
tagsstring[]opcional
Internal tags for your own organization — not shown publicly.
latitudenumberopcional
Latitude. Derived automatically from the address if omitted.
longitudenumberopcional
Longitude. Derived automatically from the address if omitted.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_location",
    "arguments": {
      "clientId": "string",
      "name": "string",
      "countryIso": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/update_location

update_location

Writelocations:write

Update an existing location's business details — including its categories (general, per-publisher primary, and additional), Google Business Profile attributes, and its service/product list. Identify the location by its id (the id returned by create_location). Pass only the fields you want to change — anything you omit is left as-is, and passing a field replaces its current value (pass an empty string to clear a text field, or the full new list to replace a list). The country can't be changed after a location is created. If you change the address without also passing coordinates, latitude/longitude are re-derived automatically. By default your change updates the shared details that every publisher inherits; to change a value for specific publishers only (e.g. a different description on Google vs. Facebook), pass applyToPublishers. Use specialHours for one-off date closures/hours (e.g. "mark this Sunday, Aug 2 2026, as closed") — any calendar date works, not just named holidays; use regularHours/moreHours for the standing weekly schedule and extra hour types. Saved changes are automatically queued to sync out to the connected directories and listings. Returns the updated location. You don't pass an agency — it comes from your credentials.

Parâmetros
locationIdstringobrigatório
The id of the location to update (required) — the id returned by create_location.
namestringopcional
The location's business name.
descriptionstringopcional
The business description.
taglinestringopcional
A short tagline/slogan for the business.
storeCodestringopcional
Your internal store code / reference for this location.
logoUrlstringopcional
URL of the location's logo image.
languageCodestringopcional
The primary language of the listing, as a code (e.g. "en").
streetstringopcional
Street address, line 1.
street1stringopcional
Street address, line 2.
citystringopcional
City.
stateIsostringopcional
State or region, as an ISO code (e.g. "CA").
postalCodestringopcional
Postal or ZIP code.
latitudenumberopcional
Latitude. If you change the address without setting coordinates, they're re-derived automatically.
longitudenumberopcional
Longitude. If you change the address without setting coordinates, they're re-derived automatically.
phonestringopcional
Primary phone number.
additionalPhonesstring[]opcional
Any additional phone numbers (replaces the existing list).
websitestringopcional
The location's website URL.
businessEmailstringopcional
A public contact email for the business.
categoryIdstringopcional
General category id — look it up with list_categories.
categoryNamestringopcional
General category display name (from list_categories).
publisherCategoriesobjectopcional
Per-publisher PRIMARY category, one per publisher — each an { id, name } looked up with list_publisher_categories. This is what a publisher actually shows and ranks on; the general category above does not override it. Google's id is a gcid (e.g. "gcid:cookie_shop"). Note the value is stored but only reaches the publisher once that publisher is connected for this location.
googleobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
facebookobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
appleobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
bingobjectopcional
idstringopcional
The publisher's own category id (from list_publisher_categories)
namestringopcional
The category's display name
additionalCategoriesobject[]opcional
Up to 9 extra categories, each an { id?, name } (replaces the existing list). A bare name is accepted and its id is resolved from the category catalog where one matches.
idstringopcional
namestringopcional
Category name
attributesobjectopcional
Google Business Profile attributes, as a map of attribute id to value — e.g. { "attributes/is_owned_by_women": true, "attributes/wi_fi": "free" }. REPLACES the whole set, so read the current ones with get_location_by_id and pass back everything you want kept. Values are a boolean for yes/no attributes, a string for single-choice ones, or { setValues: [...], unsetValues: [...] } for multi-select. Google only accepts attributes its catalog allows for this location's category and country — unsupported ids are dropped when publishing rather than failing the update. Don't set social-link, menu-URL or payment attributes here; use socialLinks, menuUrl and the payment fields instead.
servicesobject[]opcional
The services or products this location offers (replaces the existing list). Each entry is { name, description?, price?, currency?, googleServiceTypeId? }. price is a number in the listed currency (e.g. 12.5 with currency "USD"); omit both for services with no set price.
namestringopcional
Service or product name (required).
descriptionstringopcional
Short description — this is where long-tail keywords belong.
pricenumberopcional
Price as a number, in `currency`.
currencystringopcional
ISO 4217 currency code, e.g. "USD".
googleServiceTypeIdstringopcional
Google's service-type id, when it maps to one of Google's predefined services. There's currently no tool to look these up — omit it and the service is still saved, just without that Google-specific mapping.
ownerNamestringopcional
The owner's name.
menuUrlstringopcional
URL of the business's menu.
yearEstablishednumberopcional
The year the business was established (e.g. 2012).
tagsstring[]opcional
Internal tags for your own organization — not shown publicly (replaces the existing list).
labelsstring[]opcional
Internal labels for this location (replaces the existing list).
regularHoursobject[]opcional
The weekly regular-hours schedule — replaces the existing schedule entirely. Pass one entry per day of the week (7 entries, one for each of MONDAY–SUNDAY).
day"MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY"opcional
Day of week.
closedbooleanopcional
true if closed all day.
periodsobject[]opcional
Open/close intervals for this day. Omit or leave empty when closed. For 24-hour, use a single period { open: "00:00", close: "24:00" }.
openstringopcional
Open time, 24h "HH:MM" (e.g. "09:00").
closestringopcional
Close time, 24h "HH:MM" — use "24:00" for midnight/end-of-day.
moreHoursobject[]opcional
Extra hour types beyond regular hours (delivery, takeout, happy hour, etc.), replaces the existing list. Each entry is { hoursTypeId, label?, days }, where days is the same weekly-schedule shape as regularHours. Common hoursTypeId values: DELIVERY, TAKEOUT, PICKUP, DRIVE_THROUGH, BREAKFAST, LUNCH, DINNER, BRUNCH, HAPPY_HOUR, KITCHEN, ONLINE_SERVICE_HOURS, ACCESS, SENIOR_HOURS.
hoursTypeIdstringopcional
The more-hours type id, e.g. "DELIVERY".
labelstringopcional
Optional display label for this hours type.
daysobject[]opcional
Weekly schedule for this hours type, same shape as regularHours.
day"MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY"opcional
Day of week.
closedbooleanopcional
true if closed all day.
periodsobject[]opcional
Open/close intervals for this day. Omit or leave empty when closed. For 24-hour, use a single period { open: "00:00", close: "24:00" }.
openstringopcional
Open time, 24h "HH:MM" (e.g. "09:00").
closestringopcional
Close time, 24h "HH:MM" — use "24:00" for midnight/end-of-day.
specialHoursobject[]opcional
One-off date overrides — holiday closures or a single day's special hours — replaces the existing list. Each entry is { date, closed, open?, close? } where date is any calendar date as "YYYY-MM-DD" (not limited to named holidays — use this for requests like "mark this Sunday, Aug 2 2026, as closed"). When closed is false, pass open/close as 24h "HH:MM".
datestringopcional
The date, as "YYYY-MM-DD".
closedbooleanopcional
true if closed all day on this date.
openstringopcional
Open time, 24h "HH:MM", when not closed.
closestringopcional
Close time, 24h "HH:MM", when not closed.
applyToPublishers("google" | "facebook" | "apple" | "bing")[]opcional
Advanced: change these values for specific publishers only instead of the shared default. Allowed values: "google", "facebook", "apple", "bing". Omit to update the shared details that every publisher inherits.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_location",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/get_location_media

get_location_media

Readlocations:read

Get all of a single location's photos, grouped by category (COVER, LOGO, INTERIOR, etc.), plus the logo URL and a count summary. Use this to see what imagery a location currently has before uploading or deleting. Identify the location by its id (from list_locations or create_location). You don't pass an agency — it comes from your credentials.

Parâmetros
locationIdstringobrigatório
The id of the location whose media you want.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_location_media",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/list_location_media

list_location_media

Readlocations:read

List locations together with their photos, newest first. Same filters as list_locations (client, status, tags, categories, verification, search, created range) — use it to answer things like "which locations have no photos?" or "show the media for this client's active locations". Each row has the location's id, name, logo, full media grouped by category, and a photo count. Returns up to 100 per page with a `nextCursor` for more. You don't pass an agency — it comes from your credentials.

Parâmetros
clientIdstringopcional
Limit to a single client's locations. Omit for all of the agency's locations.
searchstringopcional
Free-text search over name, street address, city, or phone.
status"all" | "active" | "archived" | "archival_pending" | "verification_pending" | "unapproved" | "requires_action"opcional
A single status bucket: "all", "active", "archived", "archival_pending", "verification_pending", "unapproved", "requires_action".
tagsstring[]opcional
Internal tags — matches a location that has any of these.
categoriesstring[]opcional
Category names — matches a location whose general or Google category is any of these.
verification("verified" | "pending" | "unverified" | "unknown")[]opcional
Google verification: "verified", "pending", "unverified", "unknown".
createdAfterstringopcional
Only locations created on or after this date (e.g. "2026-01-01").
createdBeforestringopcional
Only locations created on or before this date.
cursorstringopcional
Leave empty for the first page; pass the previous `nextCursor` for the next page.
limitnumberopcional
How many locations per page (1–100, default 100).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_location_media",
    "arguments": {}
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/upload_location_media

upload_location_media

Writelocations:write

Add one or more photos to a location, in a given category. Provide each image as a public https URL (we fetch and re-host it) or as base64 bytes. Only images are supported (jpeg, png, gif, webp), max 5 MB each. The LOGO category holds a single logo — uploading to LOGO replaces the current logo. All other categories append. Saved photos are automatically queued to publish to Google. You don't pass an agency — it comes from your credentials.

Parâmetros
locationIdstringobrigatório
The id of the location to add photos to.
category"COVER" | "PROFILE" | "LOGO" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "FOOD_AND_DRINK" | "MENU" | "AT_WORK" | "TEAMS" | "ROOMS" | "COMMON_AREA" | "ADDITIONAL"obrigatório
The photo category. Allowed values: COVER, PROFILE, LOGO, EXTERIOR, INTERIOR, PRODUCT, FOOD_AND_DRINK, MENU, AT_WORK, TEAMS, ROOMS, COMMON_AREA, ADDITIONAL.
imagesobject[]obrigatório
One or more images to add. Each needs a url or base64.
urlstringopcional
A public https URL to the image — it is fetched and re-hosted by us.
base64stringopcional
The image bytes as base64 (a data: URL prefix is accepted). Use this instead of url when you have the bytes.
labelstringopcional
Optional caption/label for the photo.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "upload_location_media",
    "arguments": {
      "locationId": "string",
      "category": "COVER",
      "images": [
        {}
      ]
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/delete_location_media

delete_location_media

Writelocations:write

Remove photos from a location. Pass `urls` to delete specific photos, or `category` to clear a whole category. The logo cannot be deleted — upload a new LOGO image to replace it instead. This removes the photos in the app; note it does not delete them from Google. You don't pass an agency — it comes from your credentials.

Parâmetros
locationIdstringobrigatório
The id of the location to remove photos from.
urlsstring[]opcional
Specific photo URLs to remove (from get_location_media).
category"COVER" | "PROFILE" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "FOOD_AND_DRINK" | "MENU" | "AT_WORK" | "TEAMS" | "ROOMS" | "COMMON_AREA" | "ADDITIONAL"opcional
Clear every photo in this category. Allowed values: COVER, PROFILE, EXTERIOR, INTERIOR, PRODUCT, FOOD_AND_DRINK, MENU, AT_WORK, TEAMS, ROOMS, COMMON_AREA, ADDITIONAL.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_location_media",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/archive_location

archive_location

Writelocations:write

SCHEDULE a location to be archived at the end of the current billing period, or restore an archived one. Archiving is deferred, not immediate: the location stays fully active — and still counts against the plan's location limit — until the period the customer has already paid for ends, then it is archived automatically and stops being billed. Because the slot is still occupied, scheduling does NOT free room to add another location until after it archives. Pass archived: false to restore an already-archived location. Use cancel_scheduled_archive to call off a pending archival.

Parâmetros
locationIdstringobrigatório
The id of the location to schedule/restore (required).
archivedbooleanobrigatório
true to schedule archival at period end, false to restore (required).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "archive_location",
    "arguments": {
      "locationId": "string",
      "archived": true
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/cancel_scheduled_archive

cancel_scheduled_archive

Writelocations:write

Call off a pending archival, so a location scheduled to archive at the end of the billing period carries on as normal. Only works while the archival is still pending — once the period has ended and the location is actually archived, use archive_location with archived: false to restore it instead.

Parâmetros
locationIdstringobrigatório
The id of the location whose pending archival should be cancelled (required).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "cancel_scheduled_archive",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/publish_location

publish_location

Writelocations:write

Push a location's current business details out to its connected Google Business Profile. Use this after update_location if you want to force an immediate sync rather than waiting for the automatic queue. Idempotent — safe to call repeatedly. Returns the push result including any per-field errors Google reported — or, if the location has no Google account connected, `{ skipped: "<reason>" }` instead (nothing to push to, not an error).

Parâmetros
locationIdstringobrigatório
The id of the location to publish (required).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "publish_location",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/bulk_update_locations

bulk_update_locations

Writelocations:write

Apply the same profile patch, publisher overrides, and/or tag add/remove to many locations at once, optionally publishing each to Google afterward. Useful for changes like "add the tag 'holiday-hours-2026' to these 40 locations" or "turn off online ordering everywhere in this client". Capped at 100 locations per call — extra ids beyond that are silently skipped (check the returned `skipped` count). Tags are merged per-location (added/removed against each location's existing tags), never wholesale replaced. Returns a per-location result so partial failures are visible.

Parâmetros
locationIdsstring[]obrigatório
The locations to update (required, up to 100).
patchobjectopcional
Base profile fields to set on every location, same shape as update_location's fields (e.g. { description, phone, tags }), including hours (regularHours, moreHours, specialHours — e.g. to close every location in a client on the same date) and services. Omit fields you don't want to change. NOTE: `attributes` here must be the stored array form `[{ id, value }]`, NOT update_location's { id: value } map — this patch is passed through as given. For a change to ONE location prefer update_location, which validates and converts each field.
overridesobjectopcional
Per-publisher overrides to apply to every location, keyed by publisher (google/facebook/apple/bing), each an object of profile fields.
addTagsstring[]opcional
Internal tags to add to every location (merged with each location's existing tags).
removeTagsstring[]opcional
Internal tags to remove from every location.
publishbooleanopcional
If true, push each updated location to Google immediately afterward.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bulk_update_locations",
    "arguments": {
      "locationIds": [
        "string"
      ]
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/get_location_verification_status

get_location_verification_status

Readlocations:read

Check a location's Google verification status and available verification methods. Returns connected:false if no Google account is linked. When connected, returns the current verification state (verified / pending / status) and the verification options Google currently offers for this listing (email, phone call, SMS, postcard, etc.) — use these to choose a method for verify_location.

Parâmetros
locationIdstringobrigatório
The id of the location to check (required).
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_location_verification_status",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.

MCPFerramentas MCP/Localizações/verify_location

verify_location

Writelocations:write

Start or complete Google verification for a location. To start: pass method (from get_location_verification_status's options — e.g. "EMAIL", "PHONE_CALL", "SMS", "ADDRESS") plus whichever of emailAddress/phoneNumber/mailerContact that method needs. To complete a pending verification once the PIN arrives: pass pin instead. The location must already be connected to a Google account (get_location_verification_status returns connected:false otherwise).

Parâmetros
locationIdstringobrigatório
The id of the location to verify (required).
methodstringopcional
Verification method to start (from get_location_verification_status's options).
emailAddressstringopcional
Email address to send the verification to, for method EMAIL.
phoneNumberstringopcional
Phone number to call/text, for method PHONE_CALL or SMS.
mailerContactstringopcional
Contact name for a mailed postcard, for method ADDRESS.
pinstringopcional
The PIN received via the chosen method — pass this alone to complete a pending verification.
Exemplo de solicitação
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "verify_location",
    "arguments": {
      "locationId": "string"
    }
  }
}
Exemplo de resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

O formato da resposta é ilustrativo — o conteúdo real depende da ferramenta e dos seus dados.