Server definition
- Hash
- sha256:856d2f63494ef596c0e7e63b132073c9c4b07b719a0385394e61dd2d3d7f1123
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": "ReputeMap manages Google reviews for local businesses. Tools cover the org behind the API key: list locations, read reviews (filterable), get review stats, draft AI replies, publish an approved reply to Google, send a review-request email, and check API credit usage. publish_reply is public and customer-visible - only call it with text the user has explicitly approved. Billable tool calls share the org's monthly API credits (default 1000/month) with the REST API. Docs: https://reputemap.com/docs/mcp",
"tools": [
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"instructions": {
"description": "optional one-off guidance for this draft, e.g. 'mention the new units' or 'keep it under 40 words'",
"maxLength": 300,
"type": "string"
},
"review_id": {
"description": "UUID from list_reviews",
"type": "string"
}
},
"required": [
"review_id"
],
"type": "object"
},
"name": "draft_reply",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"default": 30,
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "UUID from list_locations; omit for all locations",
"type": "string"
}
},
"type": "object"
},
"name": "get_review_stats",
"outputSchema": null
},
{
"description": "Current month's API credit usage for this org (shared between the REST API and MCP tools).",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_usage",
"outputSchema": null
},
{
"description": "List every business location this ReputeMap org manages, with ids to use in the other tools.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_locations",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 20,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"location_id": {
"description": "UUID from list_locations; omit for all locations",
"type": "string"
},
"offset": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"rating_max": {
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"rating_min": {
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"since_days": {
"description": "only reviews from the last N days",
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"unanswered_only": {
"description": "true = only reviews without an owner reply on Google (a reply Google rejected counts as none)",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_reviews",
"outputSchema": null
},
{
"description": "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. 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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"review_id": {
"description": "UUID from list_reviews",
"type": "string"
},
"text": {
"description": "the exact reply text the user approved",
"type": "string"
}
},
"required": [
"review_id",
"text"
],
"type": "object"
},
"name": "publish_reply",
"outputSchema": null
},
{
"description": "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'.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"email": {
"description": "customer email address",
"type": "string"
},
"location_id": {
"description": "UUID from list_locations",
"type": "string"
},
"name": {
"description": "customer name (optional)",
"type": "string"
}
},
"required": [
"location_id",
"email"
],
"type": "object"
},
"name": "send_review_request",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:856d2f63494ef596c0e7e63b132073c9c4b07b719a0385394e61dd2d3d7f1123 | sha256sum