All guides

Integration guide

Connect Google Maps to Hermes Agent or OpenClaw with Composio

Give your agent structured place, geocoding, distance, and route tools while keeping credentials restricted and live travel decisions grounded in current conditions.

Turn vague place names into checked planning inputs

A practical request might be: “Find three accessible coffee shops near the convention center, compare travel time from my hotel, and give me the facts to review.” The agent first has to resolve both places, distinguish similarly named businesses, and state what time and travel mode its comparison assumes. Composio's current Google Maps toolkit exposes place search, details, geocoding, routes, matrices, time zones, tiles, and map embeds as separate tools.

1. Connect with the authentication the action requires

On managed Hermes Agent and OpenClaw, open Dashboard → Integrations, select Google Maps, and follow the Google authorization flow. The dashboard selects managed OAuth for this toolkit and does not show an API-key entry form. Composio itself supports both OAuth2 and API-key authentication. Its Google Maps notes specifically state that the Maps Embed action requires API-key authentication, so that action needs an API-key connection in your own Composio project using the self-hosted setup below.

For that self-hosted API-key connection, use a dedicated Google Cloud project, enable only the APIs the workflow needs, attach billing where required, and restrict the key. Google's official Places setup guide says Maps Platform requests link the project, credential, and billing account, and recommends API and application restrictions. Enter the key in your own Composio project's app connection flow.

2. Prove search and identity before comparing routes

Use my connected Google Maps integration. Search for “McCormick Place Chicago,” return the best three candidates with formatted address and place ID, and explain which one you would use. Do not request a route, tile, photo, or map embed yet.

The agent should check composio connections and use composio search google_maps to read current parameters. Relevant documented identifiers include GOOGLE_MAPS_TEXT_SEARCH, GOOGLE_MAPS_GET_PLACE_DETAILS, and GOOGLE_MAPS_GEOCODE_ADDRESS. A place ID is a better handoff between search and details than a guessed name, but you should still inspect the returned address and business identity.

3. Make a route request reproducible

Before calling a route action, have the agent show:

  • resolved origin and destination names, addresses, and place IDs;
  • travel mode, departure or arrival assumption, and time zone;
  • whether it is comparing one route or a matrix of alternatives;
  • which constraints came from you and which are merely suggestions.

Current route actions include GOOGLE_MAPS_GET_ROUTE, GOOGLE_MAPS_GET_DIRECTION, and GOOGLE_MAPS_COMPUTE_ROUTE_MATRIX. The legacy distance-matrix action is separately labeled as legacy, so prefer a current action when its schema covers the task. Route Matrix billing can scale with the number of origin-destination elements; Google's Routes billing guide recommends quotas to control cost. Keep candidate sets small and intentional.

4. Review the result against live reality

Include the response timestamp and travel assumptions with the comparison. Before leaving, check opening hours, entrances, accessibility details, and current traffic in Google Maps. Keeping those details beside the route makes it easier to update a plan when a venue or departure time changes.

If a tool returns 401 or “API has not been used,” confirm that the credential type matches the action, the required API is enabled in the same Google Cloud project, billing is active, and key restrictions allow that API. An invalid Places includedTypes value is a request-schema issue, not an authentication failure. Re-read the action schema and Google's supported place-type list before retrying. Record the route's assumptions and result timestamp rather than presenting it as timeless.

Self-hosted setup for Hermes Agent and OpenClaw

For an installation you run yourself, create a server in your own Composio project, select this app and the tools you need, and connect the intended account. Copy the complete generated MCP URL for that user. The examples below use Composio Platform MCP and a Composio project API key in x-api-key. An app password or provider API key belongs in the app connection flow, not in this header.

Set COMPOSIO_API_KEY in the environment of the agent process and replace the URL placeholder below. Merge the entry into your existing configuration. Keep your project key out of chat and source control. A connection on OpenClaw Launch does not automatically transfer to your own Composio project; Composio connections are scoped to their project and user.

Hermes Agent

Add the server under mcp_servers in ~/.hermes/config.yaml. You can set the environment variable in ~/.hermes/.env.

mcp_servers:
  composio:
    url: "YOUR_GENERATED_PLATFORM_MCP_URL"
    headers:
      x-api-key: "${COMPOSIO_API_KEY}"
    connect_timeout: 60
    timeout: 180

Run hermes mcp test composio to check discovery, then start a new session or use /reload-mcp in the Hermes CLI. See the Hermes MCP configuration reference for reload behavior and tool filters.

OpenClaw

Use a release with the native openclaw mcp commands. Its server definitions belong under mcp.servers in ~/.openclaw/openclaw.json:

{
  "mcp": {
    "servers": {
      "composio": {
        "url": "YOUR_GENERATED_PLATFORM_MCP_URL",
        "transport": "streamable-http",
        "headers": {
          "x-api-key": "${COMPOSIO_API_KEY}"
        }
      }
    }
  }
}

Ensure the Gateway service receives the environment variable, restarting that service after changing its environment. Run openclaw mcp doctor composio --probe and begin a new agent session. If your version lacks these commands, update before using this config. The native registry is separate from mcporter. See OpenClaw's MCP reference and HTTP transport fields.

Discovery confirms the MCP connection. Finish with this guide's first read request to check access to the actual app. The hosted composio shell commands earlier in this guide are supplied by OpenClaw Launch; a standalone MCP setup exposes tools through the agent's MCP client instead.

Frequently asked questions

Does the Google Maps Composio integration work with Hermes Agent?

Yes. Managed Hermes Agent and OpenClaw instances use the same dashboard connection and Composio tool workflow.

Can I use a Google Maps API key in the hosted dashboard?

The hosted dashboard selects managed OAuth for Google Maps and does not offer an API-key form for this toolkit. For API-key-only actions such as Maps Embed, use an API-key connection in your own Composio project with the self-hosted setup below.

Why does a Google Maps action say the API is not enabled?

The Google Cloud project behind the credential may not have the required Maps API enabled, or billing may be missing. Enable only the needed APIs, attach billing where required, restrict the key, and allow time for the change to take effect.

What should a route comparison include?

Ask for resolved places, travel mode, departure or arrival time, time zone, and the result timestamp. These details let you compare the same trip in Google Maps and account for changing conditions.

Related guides

Connect Google Maps to your managed agent

Add the integration from the shared dashboard for Hermes Agent or OpenClaw.

Open Integrations