MCPMCP Tools/Locations/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.
Parameters
locationIdsstring[]required
The locations to update (required, up to 100).
patchobjectoptional
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.
overridesobjectoptional
Per-publisher overrides to apply to every location, keyed by publisher (google/facebook/apple/bing), each an object of profile fields.
addTagsstring[]optional
Internal tags to add to every location (merged with each location's existing tags).
removeTagsstring[]optional
Internal tags to remove from every location.
publishbooleanoptional
If true, push each updated location to Google immediately afterward.
Example request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "bulk_update_locations",
"arguments": {
"locationIds": [
"string"
]
}
}
}Example response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Response shape shown for illustration — the actual content depends on the tool and your data.