ReputeMap

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

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
74%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_usage' description lacks action verbin get_usage

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,178Tokens (tool definitions)
~793 BTypical response size
Moderate attention impact (0.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "reputemap": {
      "command": "npx",
      "args": [
        "@reputemap/mcp"
      ]
    }
  }
}

Runnable packages

npm@reputemap/mcp0.1.1stdio

Remote endpoints

https://api.reputemap.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_locations

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

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢list_reviews(location_id, rating_min, rating_max, unanswered_only, since_days, ...)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "string",
      "description": "UUID from list_locations; omit for all locations"
    },
    "rating_min": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "rating_max": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "unanswered_only": {
      "type": "boolean",
      "description": "true = only reviews without an owner reply on Google (a reply Google rejected counts as none)"
    },
    "since_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "only reviews from the last N days"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "additionalProperties": false
}
🟢get_review_stats(location_id, days)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "string",
      "description": "UUID from list_locations; omit for all locations"
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "default": 30
    }
  },
  "additionalProperties": false
}
🔴send_review_request(location_id, email, name)

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'.

Input Schema

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "string",
      "description": "UUID from list_locations"
    },
    "email": {
      "type": "string",
      "description": "customer email address"
    },
    "name": {
      "type": "string",
      "description": "customer name (optional)"
    }
  },
  "required": [
    "location_id",
    "email"
  ],
  "additionalProperties": false
}
🔴draft_reply(review_id, instructions)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "review_id": {
      "type": "string",
      "description": "UUID from list_reviews"
    },
    "instructions": {
      "type": "string",
      "maxLength": 300,
      "description": "optional one-off guidance for this draft, e.g. 'mention the new units' or 'keep it under 40 words'"
    }
  },
  "required": [
    "review_id"
  ],
  "additionalProperties": false
}
🔴publish_reply(review_id, text)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "review_id": {
      "type": "string",
      "description": "UUID from list_reviews"
    },
    "text": {
      "type": "string",
      "description": "the exact reply text the user approved"
    }
  },
  "required": [
    "review_id",
    "text"
  ],
  "additionalProperties": false
}
🟢get_usage

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

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools