# Hubertino: Google Maps leads (npm · @hubertino/mcp-server)

Scrape Google Maps business leads (phones, websites, emails, socials) with Hubertino.

- Trust score: 70/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-27

## Components

- npm · `@hubertino/mcp-server`: 70/100 (this document), [markdown](https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server.md), [page](https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@hubertino/mcp-server`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-27.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 95 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1843 tokens (~307/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Hubertino: Google Maps leads MCP server?

Hubertino: Google Maps leads runs locally as an npm package, launched with npx -y @hubertino/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add hubertino-app-hubertino-mcp -- npx -y @hubertino/mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "hubertino-app-hubertino-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@hubertino/mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "hubertino-app-hubertino-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@hubertino/mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add hubertino-app-hubertino-mcp -- npx -y @hubertino/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hubertino-app-hubertino-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@hubertino/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add hubertino-app-hubertino-mcp --command npx --arg -y --arg @hubertino/mcp-server
```

### Hermes

```yaml
mcp_servers:
  hubertino-app-hubertino-mcp:
    command: "npx"
    args: ["-y", "@hubertino/mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "hubertino-app-hubertino-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@hubertino/mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add hubertino-app-hubertino-mcp -t stdio -c npx -a -y @hubertino/mcp-server
```

### Other

```json
{
  "mcpServers": {
    "hubertino-app-hubertino-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@hubertino/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-27 (score 70, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-26 (score 55)

First indexed and scored.

## MCP tools (6)

### `start_scrape` (~586 tokens)

Start a Google Maps lead scrape

Start a Hubertino scrape that searches Google Maps for businesses and returns them as lead rows (name, category, phone, website, email, address, rating, reviews, social profiles). Use it for requests like "find dentists in Austin with emails" or "build a list of plumbers in Leeds". Every category is searched in every location: categories x locations searches, max 2000 per scrape. COSTS CREDITS: it reserves categories x locations x maxResults credits up front (capped at the balance), charges 1 credit per business actually delivered and refunds the rest. Confirm with the user before large scrapes. Returns the scrape id immediately (status queued); then call wait_for_scrape, then get_results or download_export. Limited to 12 new scrapes per 5 minutes per account.

Input parameters:

- `categories` (array, required): What to search Google Maps for, one business type per item, e.g. ["dentist"], ["plumber", "HVAC contractor"]. Use the words a customer would type into Google Maps. 1-1000 items, each 1-120 characters.
- `country` (string): Optional Google edition (lower-case country code) used for the search: us, gb, ca, au, ie, de, fr, es, it, pt, nl, be, at, ch, se, no, dk, fi, pl, cz, lt, lv, ee, ro, hu, gr, br, mx, jp, in, nz, za.…
- `enrichLinks` (boolean): Collect social profiles and ordering/reservation links for each place. Default true, no extra credits.
- `enrichWebsite` (boolean): Visit each business's own website to find a contact email (and social profiles). Default true, no extra credits. Keep it on whenever the user wants emails.
- `locations` (array, required): Where to search, one place per item: a city, region, neighbourhood or zip/postal code, e.g. ["Austin, TX, United States"], ["Vilnius, Lithuania"], ["90210, CA, USA"]. Include the country for the best…
- `maxResults` (integer, required): Maximum places to collect PER SEARCH (per category x location pair), 1-500. Google Maps typically returns around 100 places per search; use 500 for "everything". This also sets the worst-case credit…

### `get_scrape` (~134 tokens)

Get scrape status

Get one scrape's live status (queued, running, done, error), progress (stage, percent, searches done, places found/extracted), resultCount, credits reserved/charged, and coverage (how many delivered rows have an email, phone, website, socials...). Use it to check on a scrape without waiting; use wait_for_scrape to block until it finishes.

Input parameters:

- `includeSearches` (boolean): Also return the individual Google Maps searches (query, URL, result count). Can be long.
- `scrapeId` (string, required): The scrape id returned by start_scrape or list_scrapes (a UUID).

### `wait_for_scrape` (~160 tokens)

Wait for a scrape to finish

Poll a scrape until it is done (or failed), or until timeoutSeconds passes, then return its status like get_scrape. If it is still running when the time is up, just call wait_for_scrape again. Sends MCP progress notifications when the client asks for them. Many MCP clients abort a tool call after about 60 seconds, so keep the default timeout unless you know yours allows more.

Input parameters:

- `pollIntervalSeconds` (integer): Seconds between status checks (2-60, default 5).
- `scrapeId` (string, required): The scrape id returned by start_scrape or list_scrapes (a UUID).
- `timeoutSeconds` (integer): How long to wait before returning the current status (5-600, default 50).

### `list_scrapes` (~100 tokens)

List scrapes

List this account's most recent scrapes, newest first (the API keeps the latest 200): id, title, status, resultCount, credits charged and dates. Use it to find a scrape id or to reuse a finished scrape instead of paying for the same search again.

Input parameters:

- `limit` (integer): How many scrapes to return (1-200, default 20).
- `status` (string): Only return scrapes with this status.

### `get_results` (~419 tokens)

Get scrape results (lead rows)

Read a scrape's rows as compact JSON, one page at a time. Works while the scrape is running (partial rows) and after it is done. Long pages are cut short to fit one tool response (trimmed: true); keep paging from nextOffset. Each row is one business with only its populated fields, e.g. name, category, phone, email, website, address, city, state, postal_code, country_code, rating, reviews, business_status, company_facebook/instagram/linkedin/x/youtube, location_link, place_id and _status (found -> extracted -> enriched). Page with offset/nextOffset until hasMore is false. For a spreadsheet of every row use download_export instead of paging through thousands of rows.

Input parameters:

- `detail` (string): compact (default) drops long or duplicate columns (coordinates, opening hours, internal ids, links to order/reserve) and shortens very long text; full returns every populated column.
- `fields` (array): Only return these columns, e.g. ["name","email","phone","website"]. Overrides detail. Available columns include query, name, category, phone, email, website, domain, company_facebook, company_instagr…
- `limit` (integer): Rows per page (1-1000, default 50).
- `offset` (integer): Rows to skip (default 0). Use nextOffset from the previous page.
- `scrapeId` (string, required): The scrape id returned by start_scrape or list_scrapes (a UUID).
- `withEmailOnly` (boolean): Only return rows that have an email address. Filters within the requested page.

### `download_export` (~158 tokens)

Download scrape as CSV/XLSX

Save a finished scrape as a spreadsheet file on this computer and return its path. The API serves the file itself (authenticated), so this tool downloads it rather than returning a link. Only works once the scrape status is done. The file uses the full column layout (every column, blanks where unknown). Files are never overwritten: an existing name gets a -1, -2... suffix.

Input parameters:

- `directory` (string): Absolute directory to save into. Defaults to HUBERTINO_DOWNLOAD_DIR, else ~/Downloads, else the system temp directory.
- `format` (string): xlsx (default, Excel/Google Sheets) or csv.
- `scrapeId` (string, required): The scrape id returned by start_scrape or list_scrapes (a UUID).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server#diagnostics

## Score history

- 2026-09-27: 70
- 2026-09-26: 55

## Common questions

### What is the Hubertino: Google Maps leads MCP server?

Hubertino: Google Maps leads is an MCP server listed in the public MCP registry as io.github.hubertino-app/hubertino-mcp. Scrape Google Maps business leads (phones, websites, emails, socials) with Hubertino. This page covers its npm package (@hubertino/mcp-server).

### Is the Hubertino: Google Maps leads MCP server safe to use?

Hubertino: Google Maps leads scores 70 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 27 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Hubertino: Google Maps leads MCP server expose?

Hubertino: Google Maps leads exposes 6 tools: start_scrape, get_scrape, wait_for_scrape, list_scrapes, get_results, download_export. Their descriptions and schemas cost roughly 1,557 tokens of context every time the server is loaded.

### Is the Hubertino: Google Maps leads MCP server still maintained?

Hubertino: Google Maps leads is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Hubertino: Google Maps leads MCP server under?

Hubertino: Google Maps leads declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@hubertino/mcp-server
- Socket report: https://socket.dev/npm/package/@hubertino/mcp-server
- Repository: https://github.com/hubertino-app/hubertino-mcp
- Website: https://hubertino.com/docs
- Changelog RSS feed: https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/hubertino-app-hubertino-mcp/hubertino-mcp-server
