Skip to main content
Glama
hermoso-ai

Hermoso

Official

Update a Google Business Profile listing

update_business_location
DestructiveIdempotent

Update Google Business Profile fields — hours, phone, website, address — on Search and Maps. Dry-run validates with Google; confirm to publish. Name/address changes require echoing current name.

Instructions

Change the brand’s Google Business Profile listing — hours, phone, website, description, categories, service area, labels, store code, address or the business name. THIS EDITS THE PANEL ON GOOGLE SEARCH AND MAPS, immediately and publicly: there is no draft, no preview and no undo. Pass ONLY what changes, in fields, keyed by Google’s own field names: websiteUri, phoneNumbers, regularHours, specialHours, moreHours, profile, categories, storefrontAddress, title, labels, storeCode, openInfo, serviceArea, serviceItems, latlng, adWordsLocationExtensions, relationshipData. CALL IT WITHOUT confirm FIRST — nothing is written, Google validates the payload for you, and you get back the CURRENT value of every field you are about to change, so you can show the user the exact before-and-after; then call again with confirm:true once they approve. Changing the business NAME (title) or ADDRESS (storefrontAddress) additionally needs confirmName set to the listing’s CURRENT name, because Google can suspend a listing over either. Output-only fields (metadata) and immutable ones (languageCode) are refused by name rather than dropped. Use dryRun:true to validate a payload with Google and write nothing. Needs Google Business Profile connected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNovalidate with Google and write nothing (needs no confirm)
fieldsYesthe changes, keyed by Google’s Location field names, e.g. {"websiteUri":"https://example.com"} or {"regularHours":{"periods":[…]}}
confirmNotrue ONLY after the user has seen the exact before-and-after and approved it
locationIdNowhich listing, from list_business_locations — only needed when more than one is shared with this brand
confirmNameNothe listing’s CURRENT name, echoed back — required when changing title or storefrontAddress
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that changes are immediately public on Google Search and Maps with no draft, preview, or undo—details beyond the annotations. It also notes that output-only and immutable fields are refused by name, and that name/address changes carry suspension risk. This is a comprehensive behavioral disclosure that exceeds the annotation hints (destructiveHint, readOnlyHint). No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely informative. It front-loads the purpose, then immediately flags the irreversible public effect, then walks through the required two-step confirm process, and covers edge cases. Every sentence adds critical information—no filler. The structure leads the reader from what to how to cautions in a logical order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, nested objects, no output schema), the description is complete: it states the prerequisite (Google Business Profile connected), explains the before-and-after retrieval behavior, covers the confirm/dryRun flows, and warns about name/address changes. An agent has all necessary information to invoke this tool correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds essential operational meaning: it specifies that `fields` should contain only the changes, keyed by Google's own field names, and lists the valid keys. It also clarifies the confirmName requirement and the role of dryRun. This enriches the schema definitions with practical usage constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb ('Change') and resource ('Google Business Profile listing'), enumerating the specific fields that can be modified (hours, phone, website, etc.). This distinguishes it from sibling tools like list_business_locations or get_business_location, which are read-only, and post_to_google_business, which creates new posts. The purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit procedural guidance: call without confirm first to validate and retrieve current values, then call again with confirm:true after approval. It also explains the dryRun option for validation without writing, and the confirmName requirement for name/address changes, which is a critical prerequisite. This goes beyond mere context and gives a clear when-to-use/how-to-use workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/hermoso-ai/hermoso'

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