mcpField
H
Hubertino: Google Maps leads

Hubertino: Google Maps leads

本地服务
hubertino.com商业与营销05 周前更新

关于 Hubertino: Google Maps leads

Hubertino: Google Maps leads 将 MCP 客户端连接到 Hubertino 的 Google Maps 商家线索服务,供销售和市场团队按类别与地点收集商家数据。它支持邮箱和社交资料丰富、分页查看结果,并导出 CSV 或 XLSX。

主要功能

  1. 01按商家类别和地点启动抓取
  2. 02获取电话、网站及邮箱等线索
  3. 03收集社交资料和地点信息
  4. 04查询进度并分页读取结果
  5. 05导出 CSV 或 XLSX 文件

适用场景

  1. 01为指定城市收集潜在客户
  2. 02筛选有邮箱或网站的商家
  3. 03将已完成的线索抓取导出为表格

MCP 相关

MCP 服务通过 Hubertino 的认证 REST API 执行抓取,提供状态查询、线索结果读取和文件导出工具;需要配置 API 密钥,抓取会使用账户额度。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hubertino-app-hubertino": {
"command": "npx",
"args": [
"-y",
"@hubertino/mcp-server"
],
"env": {
"HUBERTINO_API_KEY": "<HUBERTINO_API_KEY>",
"HUBERTINO_API_URL": "<HUBERTINO_API_URL>",
"HUBERTINO_DOWNLOAD_DIR": "<HUBERTINO_DOWNLOAD_DIR>"
}
}
}
}
启动命令npx -y @hubertino/mcp-server
需要配置的环境变量
HUBERTINO_API_KEY密钥Your Hubertino API key (hub_live_...), from https://hubertino.com/dashboard/settings
HUBERTINO_API_URLHubertino API base URL
HUBERTINO_DOWNLOAD_DIRDirectory where download_export saves CSV/XLSX files (default ~/Downloads)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@hubertino/mcp-server0.1.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
countryenum否用于搜索的可选 Google 区域(小写国家代码):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。省略时,Hubertino 会根据地点中提及的国家推断;若无法推断,则使用 "us"。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
locationsarray是搜索地点,每项填写一个地点:城市、地区、街区或邮政编码,例如 ["Austin, TX, United States"]、["Vilnius, Lithuania"]、["90210, CA, USA"]。为获得最佳匹配,请包含国家/地区。每个类别会在每个地点单独搜索,因此使用多个较小区域(街区、邮政编码)比使用一个大区域能找到更多商家。1–10000 项,每项 1–120 个字符。categories.length × locations.length 必须 ≤ 2000。
categoriesarray是指定要在 Google Maps 中搜索的内容,每项填写一种商家类型,例如 ["dentist"]、["plumber", "HVAC contractor"]。使用客户会在 Google Maps 中输入的词语。1–1000 项,每项 1–120 个字符。
maxResultsinteger是每次搜索(每个类别 × 地点组合)最多收集的地点数,范围为 1–500。Google Maps 通常每次搜索会返回约 100 个地点;要获取“全部”结果,请使用 500。此值也决定最坏情况下的积分预留量:类别数 × 地点数 × maxResults(1 积分 = 返回 1 个地点)。
enrichLinksboolean否为每个地点收集社交资料和订购/预订链接。默认值为 true,不额外消耗积分。
enrichWebsiteboolean否访问每家商户的自有网站以查找联系电子邮件(和社交资料)。默认值为 true,不额外消耗积分。用户需要电子邮件时请始终保持启用。

详细介绍

Hubertino MCP 服务:为 Claude、Cursor 和其他 AI Agent 提供 Google Maps 潜在客户

@hubertino/mcp-server 可将任何 Model Context Protocol 客户端(Claude Desktop、Claude Code、Cursor、VS Code,……)连接到 Hubertino,这是一款 Google Maps 潜在客户抓取工具。向助手询问“奥斯汀有邮箱的牙医”。它会启动抓取任务,等待任务完成,然后以表格或 CSV/XLSX 文件的形式提供潜在客户。

它封装了 Hubertino 经过身份验证的公开 REST API(文档),并使用你自己的 API 密钥和额度。

你将获得

每条潜在客户信息对应一家 Google Maps 商家。只会返回有值的字段:

  • 联系信息:名称、类别、电话、网站,以及在商家自有网站上找到的邮箱(enrichWebsite)。
  • **社交资料:**Facebook、Instagram、LinkedIn、X、YouTube(enrichLinks)。
  • **位置:**地址、城市、州、邮政编码、国家/地区代码,以及 Google Maps 链接 / 地点 ID。
  • **口碑:**评分、评价数、商家状态。
  • **其他字段(为节省上下文,精简结果中不包含):**坐标、营业时间、价格范围、服务选项,以及下单 / 预订 / 菜单链接。使用 get_results 的 detail: "full" 获取,或在 download_export 文件中查看。

工具

工具功能API 调用
start_scrape针对 categories × locations 启动抓取任务。会消耗额度。POST /api/v1/scrapes
get_scrape返回状态、进度、预留和已扣额度,以及包含邮箱、电话等信息的行数。GET /api/v1/scrapes/{id}
wait_for_scrape持续轮询,直到抓取完成或超时(默认 50 s)。发送进度通知。GET /api/v1/scrapes/{id}
list_scrapes列出你最近的抓取任务,可按状态筛选。GET /api/v1/scrapes
get_results以精简 JSON 格式分页返回潜在客户行。选项:withEmailOnly、fields、detail。GET /api/v1/scrapes/{id}/results
download_export将已完成的抓取任务保存到你的电脑,格式为 .xlsx 或 .csv。GET /api/v1/scrapes/{id}/export

此外还有一个提示词 build_lead_list,可针对某种业务类型和区域运行整个工作流。

start_scrape 使用与 API 相同的输入和限制:

输入类型说明
categoriesstring[]必填。要搜索的内容,例如 ["dentist"]。1–1,000 项,每项 1–120 个字符。
locationsstring[]必填。城市、地区或邮政编码。请包含国家/地区,例如 "Austin, TX, United States"。1–10,000 项。
maxResultsinteger必填。每次搜索(每个类别 × 地点组合)的最多地点数,1–500。
countrystring可选的 Google 版本代码(us、gb、de、lt,……共 32 个代码)。若省略,则根据地点推断。
enrichWebsiteboolean默认值为 true。访问每家商家的网站以查找邮箱。不额外消耗额度。
enrichLinksboolean默认值为 true。收集社交资料和下单 / 预订链接。不额外消耗额度。

一次抓取最多运行 2,000 次搜索(categories.length × locations.length)。

要求

  • Node.js 20 或更高版本(npx 必须位于 MCP 客户端使用的 PATH 中)。
  • Hubertino 账户和 API 密钥。新账户可获得 100 个免费额度,所有套餐(包括免费套餐)均包含 API。
    1. 在 hubertino.com 注册。
    2. 打开 设置(/dashboard/settings)并创建 API 密钥。密钥以 hub_live_ 开头,且只会显示一次,因此请立即复制。

安装

所有客户端的配置方式都相同:设置环境变量 HUBERTINO_API_KEY,然后运行 npx -y @hubertino/mcp-server。将 hub_live_your_key_here 替换为你的密钥。

Claude Desktop

打开 Settings → Developer → Edit Config。这会打开 claude_desktop_config.json,在 macOS 上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json,在 Windows 上的路径为 %APPDATA%\Claude\claude_desktop_config.json。添加:

{
  "mcpServers": {
    "hubertino": {
      "command": "npx",
      "args": ["-y", "@hubertino/mcp-server"],
      "env": {
        "HUBERTINO_API_KEY": "hub_live_your_key_here"
      }
    }
  }
}

重启 Claude Desktop。随后,Hubertino 工具会显示在工具菜单中。

可以使用 npm run bundle 构建一键安装包(hubertino-mcp.mcpb),然后在 Claude Desktop 中打开。它会通过表单询问密钥,因此无需编辑任何 JSON。

Claude Code
claude mcp add hubertino -e HUBERTINO_API_KEY=hub_live_your_key_here -- npx -y @hubertino/mcp-server

添加 --scope user,即可在每个项目中使用。运行 claude mcp list 检查连接状态。

Cursor

将服务添加到 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):

{
  "mcpServers": {
    "hubertino": {
      "command": "npx",
      "args": ["-y", "@hubertino/mcp-server"],
      "env": {
        "HUBERTINO_API_KEY": "hub_live_your_key_here"
      }
    }
  }
}
VS Code(GitHub Copilot 代理模式)

将以下内容添加到 .vscode/mcp.json。VS Code 会提示输入密钥并安全地保存:

{
  "inputs": [
    { "type": "promptString", "id": "hubertino-key", "description": "Hubertino API key (hub_live_...)", "password": true }
  ],
  "servers": {
    "hubertino": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@hubertino/mcp-server"],
      "env": { "HUBERTINO_API_KEY": "${input:hubertino-key}" }
    }
  }
}
其他客户端 / 从源代码运行

任何能够启动 stdio 服务的 MCP 客户端都可以使用。从代码库运行:

git clone https://github.com/hubertino-app/hubertino-mcp.git
cd hubertino-mcp && npm install && npm run build
# then point your client at:  node /absolute/path/to/hubertino-mcp/dist/index.js

配置

变量必填默认值用途
HUBERTINO_API_KEY是无你的 hub_live_... 密钥。如果缺少此项,服务仍会启动,并由每个工具说明如何设置。
HUBERTINO_API_URL否https://hubertino.comAPI 基础 URL。也支持 https://hubertino.com/api/v1。仅接受 https://,localhost 除外。
HUBERTINO_DOWNLOAD_DIR否~/Downloads,否则为临时目录download_export 保存文件的位置。

提示词示例

  • “查找德克萨斯州奥斯汀的牙医及其电子邮件地址。每次搜索 100 个就够了。”
  • “整理一份英国利兹和约克的水管工与电工名单,然后保存为 CSV 文件。”
  • “抓取以下邮政编码区域的屋顶承包商:78701、78702、78703。只显示有电子邮件地址和网站的商家。”
  • “我最近一次抓取的进度如何?”
  • “显示我的咖啡馆抓取结果中的第 2 页:仅显示名称、电话和 Instagram。”
  • “我已完成的抓取中,哪个结果最多?将其下载为 Excel 文件。”

典型运行如下:

start_scrape     {"categories":["dentist"],"locations":["Austin, TX, United States"],"maxResults":100}
  -> {"id":"6f1c…","status":"queued","credits":"Reserved 100 credits … the rest is refunded automatically.", …}
wait_for_scrape  {"scrapeId":"6f1c…"}
  -> {"status":"done","resultCount":…,"creditsCharged":…,"coverage":{"total":…,"email":…}, …}
get_results      {"scrapeId":"6f1c…","withEmailOnly":true,"limit":50}
  -> {"total":…,"returned":…,"hasMore":true,"nextOffset":50,"rows":[{"name":"…","phone":"…","email":"…"}, …]}
download_export  {"scrapeId":"6f1c…","format":"csv"}
  -> {"path":"/Users/you/Downloads/hubertino-6f1c….csv","bytes":…}

积分、限制和错误

  • 1 个积分 = 1 条已交付商家数据。 抓取开始时,Hubertino 会预留 categories × locations × maxResults 个积分,最多不超过你的余额。抓取完成后,只会收取实际交付行数对应的积分,其余积分会退还。如果你的余额低于最坏情况下所需的积分,抓取仍会运行,但余额用完后就会停止。请参阅定价。
  • **速度:**一次抓取需要几分钟。运行期间即可读取行(partial: true)。每行的 _status 按 found → extracted → enriched 变化。
  • **速率限制:**每个账户每 5 分钟最多发起 12 次新抓取。状态、结果和导出调用不受速率限制。
  • 页面大小:get_results 每次调用最多读取 1,000 行(默认 50 行)。为保护模型的上下文窗口,如果某个页面无法放入单次工具响应(约 50,000 个字符),内容会被截断,并设置 trimmed: true;请从 nextOffset 继续分页,使用 fields 请求更少的列,或使用 download_export 获取全部内容。
  • 长时间抓取:get_scrape 和 wait_for_scrape 最多返回 25 个类别/位置;对于更长的列表,会添加 categoriesTotal / locationsTotal。即使 API 响应缓慢,wait_for_scrape 的运行时间也不会比 timeoutSeconds 多出约 8 秒以上。
  • **导出:**只有状态为 done 时才可用。

错误会作为工具错误返回,并附带后续操作,因此助手可以恢复操作或告诉你该怎么做:

HTTP含义工具提示
400输入无效API 会指出有问题的字段
401缺少/无效的密钥检查 HUBERTINO_API_KEY;在 Settings 中创建或轮换密钥
402积分不足未扣除任何积分;请前往 /dashboard/billing 充值
403请求被拒绝(例如,邮箱未验证)API 返回的提示
404未知抓取 ID使用 list_scrapes 检查 ID
409尚未完成使用 wait_for_scrape 等待,然后重试
410结果已不再存储发起新的抓取
429触发速率限制等几分钟后再发起抓取
5xx暂时不可用一分钟后重试
timeout / networkHubertino 未响应稍后重试

如果启动抓取时出现超时、网络错误或 5xx 错误,抓取仍可能已经创建。此时 start_scrape 会提示先检查 list_scrapes,再决定是否重新启动,以免同一次抓取运行并扣费两次。

安全与隐私

  • 你的 API 密钥保留在 MCP 客户端的配置中,并且只会通过 HTTPS 以 Bearer 标头发送到 Hubertino API。服务端绝不会记录该密钥或在响应中返回该密钥。请勿将密钥粘贴到聊天中。
  • 服务端只会调用上文列出的经过身份验证的 /api/v1 端点。它不会发起其他网络调用,也不会自行抓取数据。
  • download_export 只会在所选文件夹中写入 hubertino-<scrape id prefix>.csv / .xlsx 文件,并且绝不会覆盖已有文件。
  • 请合法使用潜在客户数据。遵守适用于你和你联系对象的隐私与反垃圾邮件规则(例如 GDPR、PECR、CAN-SPAM)。

开发

npm install
npm run build        # compile to dist/
npm test             # type-check and run the node:test suites (mocked fetch; no network)
npm run smoke        # spawn dist/index.js over stdio and list tools (set HUBERTINO_API_KEY for a live read-only call)
npm run bundle       # build hubertino-mcp.mcpb (Claude Desktop / Smithery bundle)

# optional: compare mirrored limits with a local checkout of the Hubertino app
HUBERTINO_APP_DIR=/path/to/hubertino/app npm test

发布步骤见 PUBLISHING.md。

链接

许可证

MIT © Hubertino MB

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。