ReputeMap

com.reputemap由 reputemap.com 發布官方發布者v1.1.1更新於 Oct 24, 2026

Read Google reviews and stats, draft AI replies, publish the ones you approve, request reviews.

已驗證Streamable HTTP可網頁執行溝通與協作商業與電商

概覽

AI 產生的概覽

ReputeMap 讓助理讀取 Google 商家評論與統計、產生 AI 回覆草稿、發布已核准的回覆,並寄送評論邀請信件。

可以做什麼
  • 列出組織管理的商家地點及其 ID
  • 依地點、星等範圍、已回覆/未回覆或最近天數篩選 Google 評論,並附上店家回覆與 Google 審核狀態
  • 取得各地點與組織整體的評論統計:數量、平均評分、星等分布、未回覆數、近期活躍度
  • 為單一評論產生 2-3 個符合商家語氣與署名的回覆草稿並存到應用程式編輯器
  • 將已核准的回覆發布到公開的 Google 商家檔案,並向顧客寄送一封評論邀請信
  • 查詢本月 API 額度使用情形
適用情境
適合管理 Google 評論的在地商家與代理商,希望由助理篩選評論收件匣、彙整評分、準備回覆草稿,並發布使用者明確核准過的回覆。
執行需求
需要付費方案或 14 天試用期的 ReputeMap 工作區,以及在設定中建立、以 rmk_ 開頭的 API 金鑰,透過 Authorization Bearer 標頭或 REPUTEMAP_API_KEY 環境變數提供。可直連 api.reputemap.com 的 Streamable HTTP 端點,或使用 npx @reputemap/mcp 本機 stdio 橋接(需 Node.js 18+)。目前不支援 ChatGPT 連接器。
安裝前請注意
API 金鑰可存取該組織的所有地點、評論與統計,請勿寫入共用設定檔,外洩時應立即撤銷。publish_reply 會公開發布到 Google 並取代既有的店家回覆,send_review_request 會寄信給真實顧客,兩者都應在使用者明確同意後才呼叫。每次呼叫會消耗額度(每組織每月 1,000,與 REST API 共用),且需要付費方案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ReputeMap,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.reputemap%2Freputemap/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "reputemap": {
      "type": "http",
      "url": "https://api.reputemap.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

ReputeMap MCP: Google review management for AI agents

The Model Context Protocol server of ReputeMap. It gives Claude, Cursor, Cline, VS Code, Codex, Gemini CLI and any other MCP client your Google Business Profile reviews: a filterable review inbox with owner replies inlined, per-location stats, AI reply drafts, publishing a reply you approved, and honest review-request emails.

"Show me every unanswered review under 3 stars from the last week, worst first." "Draft replies to the three newest negative reviews in a calm tone." "Publish the second draft for the Riverside review, exactly as written." "We just finished the Hendersons' job. Send them a review request."

You probably don't need to run anything. The server is hosted:

https://api.reputemap.com/mcp          Streamable HTTP · JSON-RPC 2.0Authorization: Bearer rmk_YOUR_KEY     app.reputemap.com → Settings → API keys

Registry: com.reputemap/reputemap · included in every paid plan, from Solo ($19/month), and in the 14-day trial.

Tools

Seven tools: four read, three act.

ToolWhat it doesTypeCredits
list_locationsEvery location the org manages, with the ids the other tools takeread-only1
list_reviewsGoogle reviews, newest first, with the published owner reply inlined. Filter by location, star range, unanswered only, or the last N days; up to 50 per page with offset paging. Each review carries Google's moderation state of the reply (reply_state, reply_policy_violation)read-only1
get_review_statsPer location and org-wide: review count, average rating, 1–5★ breakdown, unanswered count, and activity in a trailing window (default 30 days)read-only1
draft_reply2–3 reply drafts for one review from ReputeMap's own generator, in the business's saved voice and sign-off. Optional one-off instructions (e.g. "keep it under 40 words"). Saves the draft to the app's editor and never publishessaves a draft1
publish_replyPublishes the exact reply text the user approved to the review on Googleposts to Google1
send_review_requestSends one real review-request email to a customer through ReputeMap's campaign enginesends email1
get_usageThis month's credit usage, limit and rate limitread-onlyfree

Tools carry MCP annotations: the four read tools have readOnlyHint; the other three don't, and publish_reply is also marked destructiveHint. Those are the signals that make a client ask you before it runs a tool.

Safety: what an eager agent can and can't do

  • Your data only. The key reaches exactly what your org owns: its locations, reviews and stats. Cross-origin browser calls are refused.
  • Drafting never publishes. draft_reply stores drafts in ReputeMap. Nothing reaches Google until publish_reply is called or someone clicks Publish in the app.
  • Publishing needs your explicit yes. publish_reply takes the exact text you approved and nothing else. It replaces any existing owner reply on that review, which is why it is flagged destructive, and every publish is audit-logged. If Google refuses the request, the text stays in ReputeMap with a manual fallback (status: "manual_required"), so your words are never lost.
  • Google moderates owner replies, and the tools tell you. publish_reply answers with google_state: pending means Google is checking the reply before showing it. status: "rejected_by_google" means Google won't show it; policy_violation and detail say why, so write a different reply. list_reviews carries the same state on every review, and a rejected reply counts as no reply for unanswered_only.
  • Opt-outs still win. send_review_request runs through the same opt-out and suppression checks as in-app campaigns. If this location already asked this address, you get status: "already_requested": no second email goes out and the credit is given back. It is still a real email to a real person, so it is annotated non-idempotent and clients confirm first.
  • Revoke in one click. Keys are stored only as hashes and shown once. Revoking one cuts access off immediately.

Get an API key

  1. Have a ReputeMap workspace on any paid plan, or on the 14-day trial (card required). Start here.
  2. In the app: Settings → API keys (owners and admins). The key starts with rmk_ and is shown once.

Then pick your client below. Each client has two ways in:

  • Remote (recommended): the client talks to https://api.reputemap.com/mcp directly and sends the key as an Authorization: Bearer header.
  • Local stdio bridge: for clients that can only start a local program. The client runs npx -y @reputemap/mcp (Node 18+) with REPUTEMAP_API_KEY set, and the bridge forwards everything to the hosted endpoint.

Setup per client

Claude Code

Remote, one command, no restart:

bash
claude mcp add --transport http reputemap https://api.reputemap.com/mcp \  --header "Authorization: Bearer rmk_YOUR_KEY"

Writing .mcp.json by hand? Include "type": "http" in the entry. Without it, Claude Code reads the entry as a local program and fails.

Stdio bridge instead:

bash
claude mcp add reputemap -e REPUTEMAP_API_KEY=rmk_YOUR_KEY -- npx -y @reputemap/mcp

Claude Desktop

Use the stdio bridge in claude_desktop_config.json (Settings → Developer → Edit Config), then fully quit and reopen the app. Needs Node.js 18+.

json
{  "mcpServers": {    "reputemap": {      "command": "npx",      "args": ["-y", "@reputemap/mcp"],      "env": { "REPUTEMAP_API_KEY": "rmk_YOUR_KEY" }    }  }}

The generic mcp-remote bridge works too: "args": ["-y", "mcp-remote", "https://api.reputemap.com/mcp", "--header", "Authorization: Bearer rmk_YOUR_KEY"].

Cursor

Remote, in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "reputemap": {      "url": "https://api.reputemap.com/mcp",      "headers": { "Authorization": "Bearer rmk_YOUR_KEY" }    }  }}

Stdio bridge instead:

json
{  "mcpServers": {    "reputemap": {      "command": "npx",      "args": ["-y", "@reputemap/mcp"],      "env": { "REPUTEMAP_API_KEY": "rmk_YOUR_KEY" }    }  }}

Cline

Open Cline → MCP Servers → Configure MCP Servers, which opens cline_mcp_settings.json, and add the server. Remote:

json
{  "mcpServers": {    "reputemap": {      "type": "streamableHttp",      "url": "https://api.reputemap.com/mcp",      "headers": { "Authorization": "Bearer rmk_YOUR_KEY" },      "disabled": false    }  }}

Stdio bridge instead:

json
{  "mcpServers": {    "reputemap": {      "command": "npx",      "args": ["-y", "@reputemap/mcp"],      "env": { "REPUTEMAP_API_KEY": "rmk_YOUR_KEY" },      "disabled": false    }  }}

VS Code (Copilot agent mode)

.vscode/mcp.json in the workspace. The top-level key is servers, not mcpServers. VS Code asks for the key once and stores it, so it stays out of the file:

json
{  "inputs": [    { "type": "promptString", "id": "reputemap-key", "description": "ReputeMap API key (rmk_...)", "password": true }  ],  "servers": {    "reputemap": {      "type": "http",      "url": "https://api.reputemap.com/mcp",      "headers": { "Authorization": "Bearer ${input:reputemap-key}" }    }  }}

Stdio bridge instead: replace the reputemap entry with { "type": "stdio", "command": "npx", "args": ["-y", "@reputemap/mcp"], "env": { "REPUTEMAP_API_KEY": "${input:reputemap-key}" } }.

Windsurf

~/.codeium/windsurf/mcp_config.json. Note the field is serverUrl:

json
{  "mcpServers": {    "reputemap": {      "serverUrl": "https://api.reputemap.com/mcp",      "headers": { "Authorization": "Bearer rmk_YOUR_KEY" }    }  }}

Codex CLI

~/.codex/config.toml, then export REPUTEMAP_API_KEY in your shell:

toml
[mcp_servers.reputemap]url = "https://api.reputemap.com/mcp"bearer_token_env_var = "REPUTEMAP_API_KEY"

Gemini CLI

bash
gemini mcp add --transport http reputemap https://api.reputemap.com/mcp \  --header "Authorization: Bearer rmk_YOUR_KEY"

Or in ~/.gemini/settings.json, where the field is httpUrl:

json
{  "mcpServers": {    "reputemap": {      "httpUrl": "https://api.reputemap.com/mcp",      "headers": { "Authorization": "Bearer rmk_YOUR_KEY" }    }  }}

Any other MCP client

URL:        https://api.reputemap.com/mcpTransport:  Streamable HTTP (JSON-RPC 2.0 over POST)Header:     Authorization: Bearer rmk_YOUR_KEY   (X-API-Key: rmk_YOUR_KEY also works)

ChatGPT isn't supported yet: its connectors accept only OAuth, and this server uses an API key.

Check the connection: ask "list my ReputeMap locations". If the ids come back, you're connected.

Credits and limits

  • 1,000 credits a month per org, the same on every plan and shared with the REST API. Credits reset on the 1st.
  • Every tool call costs 1 credit except get_usage, which is free. A call with malformed arguments is rejected before a credit is charged, and a send_review_request that comes back already_requested is refunded.
  • 60 requests a minute per org.
  • When credits run out, tools answer with an error your agent can read ("Monthly API credit limit reached"). get_usage tells you where you stand.
SymptomCause and fix
401 invalid or missing API keyTypo, or the key was revoked. Create a new one in Settings → API keys
403 … requires an active paid planThe workspace has no subscription. Pick a plan; the 14-day trial counts
"Monthly API credit limit reached"Credits reset on the 1st; check get_usage
Claude Desktop shows no toolsnpx needs Node.js 18+; fully quit and reopen the app after editing the config

What's in this repo

A zero-dependency stdio bridge for clients that speak MCP over stdio and can't send HTTP headers, in two flavours: bin/cli.mjs (Node 18+, published as @reputemap/mcp) and server.py (Python 3.9+, standard library only). Both forward every JSON-RPC message to the hosted endpoint over TLS and stream the responses back. The bridge holds no tool list of its own, so new tools reach you as soon as the hosted server ships them.

bash
# Node: one-liner, no installREPUTEMAP_API_KEY="rmk_..." npx -y @reputemap/mcp
# Python: no dependenciesREPUTEMAP_API_KEY="rmk_..." python3 server.py

server.json is the manifest published to the official MCP registry as com.reputemap/reputemap. .plugin/plugin.json and .mcp.json describe the same server for plugin-aware clients.

The bridge is about 120 readable lines, so it also documents what travels over the wire: your API key goes only into the Authorization header of TLS requests to api.reputemap.com.

Protocol notes

  • Methods: initialize → notifications/initialized → tools/list / tools/call, plus ping. Supported revisions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25.
  • Discovery (initialize, ping, tools/list) answers without a key, so clients and directories can show the tool catalogue before you authenticate. tools/call always needs the key.
  • Protocol errors use standard JSON-RPC codes. Tool-level errors (bad id, out of credits) come back as tool results with isError: true, so your agent can read them and tell you.
  • The server is stateless: POST only, no session and no server-initiated SSE stream (GET answers 405). The bridge still honours Mcp-Session-Id and accepts both JSON and SSE-framed responses.
  • JSON-RPC batches are accepted only from clients that negotiated a revision older than 2025-06-18, which removed batching. Requests with a foreign Origin header are refused.

Links

ReputeMap is an independent tool and is not affiliated with Google.

License

MIT, see LICENSE.

來源:README.md,提交 bd69e06

工具

7

list_locations

List locations

List every business location this ReputeMap org manages, with ids to use in the other tools.

無需輸入參數。

list_reviews

List reviews

List Google reviews for the org (newest first) with the published reply text inlined. Filter by location, star-rating range, replied/unreplied, or a trailing day window. Google moderates owner replies: reply_state is approved, pending (Google is checking it) or rejected (not shown on Google - has_reply is false and reply_policy_violation says why; write a new reply).

輸入參數limitoffsetrating_maxrating_minsince_dayslocation_idunanswered_only

get_review_stats

Get review stats

Review stats per location and org totals: review counts, average rating, 1-5 star breakdown, unanswered count, and activity in the trailing window (default 30 days).

輸入參數dayslocation_id

send_review_request

Send review request email

Send ONE review-request email to a real customer, through ReputeMap's campaign engine (respects unsubscribes and the suppression list). This emails a real person - only use it when the user explicitly asks to request a review. Returns status 'sent', 'skipped' (opted out or suppressed), 'already_requested' (this location already asked this address - no second email is sent and no credit is spent) or 'failed'.

輸入參數nameemail必填location_id必填

draft_reply

Draft reply variants

Generate 2-3 reply drafts for one review using ReputeMap's tuned generator (the same one the app uses, with the business's saved voice and sign-off), and save the draft so it appears in the app's editor. NEVER publishes anything - drafts only.

輸入參數review_id必填instructions

publish_reply

Publish reply to Google

PUBLISH a reply to this review's public Google profile. This is a public, customer-visible action - call it ONLY when the user has explicitly approved this exact text (Google's policy: a person approves every reply; one call per approved reply, never in bulk). If Google refuses the request, the text is preserved in ReputeMap with a manual fallback (status 'manual_required') - words are never lost. Google also moderates replies: google_state 'pending' = it is checking the reply before showing it; status 'rejected_by_google' = it will not show it (policy_violation and detail say why) - write a different reply.

輸入參數text必填review_id必填

get_usage

Get API usage

Current month's API credit usage for this org (shared between the REST API and MCP tools).

無需輸入參數。

版本歷史

3
  1. v1.1.1最新Oct 12, 2026
  2. v1.1.0Oct 11, 2026
  3. v1.0.2Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分