MCPOutils MCP/Avis

Avis

Lire, répondre à et analyser les avis, les concurrents, les widgets et les sources d'avis.

get_reviews_rollup

Readreviews:read

Reviews Overview / command center — across ALL of the agency's locations by default, or scoped to ONE client's locations by passing clientId (the Reviews → Overview page's "All locations" view for that client). Returns: summary tiles (total reviews, avg rating, total unreplied, positive %, new-in-period + Δ vs the prior window, stale count), the best & worst location by health, a per-location rows[] table (name/city, review count, avg rating, sentiment split, response rate, health score + Δ, %≤2★, %5★, 1–5★ distribution, new-in-window + velocity Δ, last-review date + staleness, a per-bucket sparkline, top positive/negative theme), and a portfolio trend (per-location monthly review volume + avg rating over the trailing 12 months, sorted by health). Window defaults to the last 30 days; pass period (7 | 30 | 90) or an explicit from+to ISO range.

Paramètres
clientIdstringfacultatif
Scope to one client's locations (from list_clients). Omit for agency-wide across every client.
period7 | 30 | 90facultatif
Quick window in days (default 30). Ignored when from+to are given.
fromstringfacultatif
Window start (ISO date). Requires `to`.
tostringfacultatif
Window end (ISO date). Requires `from`.
tagsstring[]facultatif
Internal location tags — narrow the rollup to locations carrying ANY of these (from list_location_tags). Each row also carries its location's tags.
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_reviews_rollup",
    "arguments": {}
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_reviews

list_reviews

Readreviews:read

List a location's reviews across its marketplaces (Google, Yelp, TripAdvisor, …). Location-scoped — requires clientId AND locationId. Cursor-paginated with a total count. Filters: ratings (1–5), sentiment (positive/neutral/negative), sites (platforms), status (responded | unreplied), keyword, from/to (ISO dates), sort (newest | oldest | lowest | highest). Reviews removed from their source are always excluded. Each review includes rating, body, author, date, platform, sentiment, existing reply, and respondable (whether a reply can be pushed via the API).

Paramètres
clientIdstringobligatoire
Client the location belongs to (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
ratings(1 | 2 | 3 | 4 | 5)[]facultatif
Star ratings to include.
sentiment("positive" | "neutral" | "negative")[]facultatif
Sentiments to include.
sitesstring[]facultatif
Platforms/marketplaces to include (e.g. google, yelp)
status("responded" | "unreplied")[]facultatif
Response status to filter by.
keywordstringfacultatif
Match review body text (case-insensitive)
fromstringfacultatif
Only reviews on/after this ISO date
tostringfacultatif
Only reviews on/before this ISO date
sort"newest" | "oldest" | "lowest" | "highest"facultatif
newest | oldest | lowest | highest
cursorstringfacultatif
Pagination cursor from a prior nextCursor
limitnumberfacultatif
Page size (1–100, default 30)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_reviews",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_review_stats

get_review_stats

Readreviews:read

Get a location's review stat cards: total reviews, sentiment split (positive/neutral/negative), overall average rating, response rate (% of reviews with an owner reply), and per-platform review counts + averages. Location-scoped — requires clientId AND locationId. Removed reviews and hidden sources are excluded (matches the UI).

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_review_stats",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_review_analytics

get_review_analytics

Readreviews:read

Deep-dive Review Analytics for a location: KPI cards with Δ vs the prior window (kpiDays 7/30/90) + sparklines, reviews-over-time + sentiment-over-time + response-rate trends (trendMonths 3/6/12), 1–5★ distribution, per-platform counts/averages, day-of-week timing, benchmark vs the agency average, top themes, and a Sydekick summary. Location-scoped — requires clientId AND locationId. Use the optional `section` to fetch just one slice (kpis | over_time | distribution | by_platform | timing | benchmark | topics | response | summary); omit for everything.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
kpiDays7 | 30 | 90facultatif
KPI window in days (default 30)
trendMonths3 | 6 | 12facultatif
Trend window in months (default 12)
section"kpis" | "over_time" | "distribution" | "by_platform" | "timing" | "benchmark" | "topics" | "response" | "summary" | "all"facultatif
Return only one slice (default all)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_review_analytics",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/reply_to_review

reply_to_review

Writereviews:write

Post (or update) the owner reply to a single review, keyed by reviewId (get it from list_reviews). Google and Facebook replies are pushed live to the publisher via the API (respondable reviews; Facebook posts as a Page comment on the recommendation's open_graph_story); replies on other platforms are saved but not pushed. Calling again with new text EDITS the reply (Google stores exactly one owner reply per review — the re-post overwrites it; Facebook edits the existing Page comment rather than posting a duplicate). A Google reply can enter a `pending` or `rejected` moderation state after posting; it reconciles on the next sync. Returns { pushed } — whether it reached the publisher.

Paramètres
reviewIdstringobligatoire
Review id (from list_reviews)
textstringobligatoire
Reply text
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reply_to_review",
    "arguments": {
      "reviewId": "string",
      "text": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/delete_review_reply

delete_review_reply

Writereviews:write

Delete the owner reply to a single review, keyed by reviewId (from list_reviews). For Google and Facebook the reply is removed live on the publisher (Facebook deletes the Page comment); deleting a reply that is already gone still succeeds (idempotent). Only reviews on platforms that support delete (Google and Facebook today) can be deleted. In OS this is an archive, not a row delete — the record is kept internally (marked archived) even though it's genuinely gone from the publisher's page. Returns { ok, pushed } — whether it reached the publisher.

Paramètres
reviewIdstringobligatoire
Review id (from list_reviews)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_review_reply",
    "arguments": {
      "reviewId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/add_review_note

add_review_note

Writereviews:write

Add an internal staff note to a single review, keyed by reviewId (get it from list_reviews). Notes are agency-internal — never shown to the client. Tenant-scoped: a review outside the caller's agency is rejected. Empty or over-4000-char bodies are rejected. Returns the created note. @-mentions are not supported (mentions stay empty).

Paramètres
reviewIdstringobligatoire
Review id (from list_reviews)
bodystringobligatoire
Note text (1–4000 chars)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_review_note",
    "arguments": {
      "reviewId": "string",
      "body": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_review_notes

list_review_notes

Readreviews:read

List the internal staff notes on a single review, newest-first, keyed by reviewId. Agency-internal — never client-facing. Tenant-scoped: a review outside the caller's agency is rejected. Returns { notes: [{ id, body, authorUserId, authorName, createdAt }] }.

Paramètres
reviewIdstringobligatoire
Review id (from list_reviews)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_review_notes",
    "arguments": {
      "reviewId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/delete_review_note

delete_review_note

Writereviews:write

Permanently delete an internal staff note from a review. Identify it by reviewId (from list_reviews) and noteId (from list_review_notes). Tenant-scoped: a review outside the caller's agency is rejected. A note that's already gone (wrong id, or already deleted) is not an error — check the returned `deleted` count rather than assuming.

Paramètres
reviewIdstringobligatoire
Review id (from list_reviews)
noteIdstringobligatoire
Note id (from list_review_notes)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_review_note",
    "arguments": {
      "reviewId": "string",
      "noteId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_competitor_analytics

get_competitor_analytics

Readreviews:read

Benchmark a location's Google reviews against its competitors. Location-scoped — requires clientId AND locationId. Returns competitive insight (Sydekick narrative + recommendations), strengths-vs-gaps (themes rivals win / you lead), a scorecard (self + each competitor: avg rating, review count, net sentiment, distribution), and review velocity + your share-of-voice. Use the optional `section` (insight | strengths_gaps | scorecard | velocity) to fetch one slice; omit for all. Manage the tracked set with add_competitor / remove_competitor / refresh_competitor.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
section"insight" | "strengths_gaps" | "scorecard" | "velocity" | "all"facultatif
insight | strengths_gaps | scorecard | velocity | all (default all)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_competitor_analytics",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_competitors

list_competitors

Readreviews:read

List the competitors tracked for a location (name, place id, rating, review count, sentiment). Location-scoped — requires clientId AND locationId. Use get_competitor for one competitor's detail, or get_competitor_analytics for the full benchmark.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_competitors",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_competitor

get_competitor

Readreviews:read

Get one tracked competitor's profile for a location (rating, review count, sentiment, etc.). Location-scoped — requires clientId, locationId, and competitorId (from list_competitors).

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
competitorIdstringobligatoire
Competitor id from list_competitors
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_competitor",
    "arguments": {
      "clientId": "string",
      "locationId": "string",
      "competitorId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/add_competitor

add_competitor

Writereviews:write

Track a new competitor for a location, by business name (matched to Google). Location-scoped — requires clientId, locationId, name. Returns the created competitor profile.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
namestringobligatoire
Competitor business name
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_competitor",
    "arguments": {
      "clientId": "string",
      "locationId": "string",
      "name": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/add_client_competitor

add_client_competitor

Writereviews:write

Track a new competitor at the CLIENT level (a roll-up competitor shown across every location for that client), by business name. Distinct from add_competitor, which tracks one for a single location. Returns the created competitor profile.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
namestringobligatoire
Competitor business name
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_client_competitor",
    "arguments": {
      "clientId": "string",
      "name": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/refresh_client_competitors

refresh_client_competitors

Writereviews:write

Trigger competitor auto-discovery and a fresh review pull across an entire client (every one of its locations), rather than one already-tracked competitor. Runs in the background — discovery plus a deep review pull can take longer than a single request allows for a large client. Returns { ok, queued }; there is no synchronous result to check.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "refresh_client_competitors",
    "arguments": {
      "clientId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/remove_competitor

remove_competitor

Writereviews:write

Stop tracking a competitor, by competitorId (from list_competitors). Agency-scoped.

Paramètres
competitorIdstringobligatoire
Competitor id from list_competitors
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_competitor",
    "arguments": {
      "competitorId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/refresh_competitor

refresh_competitor

Writereviews:write

Re-scrape a single tracked competitor's Google reviews, by competitorId (from list_competitors). Returns { ok, note }.

Paramètres
competitorIdstringobligatoire
Competitor id from list_competitors
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "refresh_competitor",
    "arguments": {
      "competitorId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_topic_series

get_topic_series

Readreviews:read

Topic trends over time for a location — the per-topic monthly sentiment/mention series behind the Topic Trends heatmap. Location-scoped — requires clientId AND locationId. Optional months (default 12).

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
monthsnumberfacultatif
Months of history (default 12)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_topic_series",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_topic_reviews

get_topic_reviews

Readreviews:read

List the reviews that mention a specific topic for a location (drill-down from get_topic_trends). Location-scoped — requires clientId, locationId, and topic. Optional month (YYYY-MM) narrows to a single month — pass it when the caller is drilling into ONE cell of the topics-by-month heatmap, or you get the topic's whole history newest-first instead of that cell's reviews. Optional limit (default 50).

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
topicstringobligatoire
Topic/keyword to drill into
limitnumberfacultatif
Max reviews (default 50)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_topic_reviews",
    "arguments": {
      "clientId": "string",
      "locationId": "string",
      "topic": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_review_widgets

list_review_widgets

Readreviews:read

List the review widgets configured for a location (embeddable review displays for the client's website). Location-scoped — requires clientId AND locationId.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_review_widgets",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_review_widget

get_review_widget

Readreviews:read

Get a single review widget by id (its config + status). Agency-scoped.

Paramètres
widgetIdstringobligatoire
Review widget id (from list_review_widgets).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_review_widget",
    "arguments": {
      "widgetId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/count_widget_matches

count_widget_matches

Readreviews:read

Count how many of a location's reviews match a widget configuration — the live '{N} reviews match this configuration' preview. Location-scoped — requires clientId AND locationId. Optional minRating, sources, includeInternal, dateWindow (30d | 90d | 1y | all).

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
minRatingnumberfacultatif
Only reviews at/above this rating (1–5)
sourcesstring[]facultatif
Marketplaces to include (empty = all)
includeInternalbooleanfacultatif
Include first-party (invite-collected) feedback
dateWindow"30d" | "90d" | "1y" | "all"facultatif
30d | 90d | 1y | all
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "count_widget_matches",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/create_review_widget

create_review_widget

Writereviews:write

Create an embeddable review widget for a location. Location-scoped — requires clientId, locationId, name. Optional: minRating, sources, selectionMode (recent | highest | manual), dateWindow, count, includeInternal, layout (carousel | grid | wall), status (draft | published, default published). Use count_widget_matches first to preview how many reviews match.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
namestringobligatoire
Widget name
minRatingnumberfacultatif
Minimum star rating (1–5)
sourcesstring[]facultatif
Marketplaces to pull from (empty = all)
selectionMode"recent" | "highest" | "manual"facultatif
recent | highest | manual
dateWindow"30d" | "90d" | "1y" | "all"facultatif
30d | 90d | 1y | all
countnumberfacultatif
Max reviews to show (default 10)
includeInternalbooleanfacultatif
Include first-party feedback
layout"carousel" | "grid" | "wall"facultatif
carousel | grid | wall
status"draft" | "published"facultatif
draft | published (default published)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_review_widget",
    "arguments": {
      "clientId": "string",
      "locationId": "string",
      "name": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/delete_review_widget

delete_review_widget

Writereviews:write

Delete a review widget by id. Agency-scoped.

Paramètres
widgetIdstringobligatoire
Review widget id (from list_review_widgets).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_review_widget",
    "arguments": {
      "widgetId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_review_campaigns

list_review_campaigns

Readreviews:read

List a location's review-acquisition campaigns (email/SMS review requests). Location-scoped — requires clientId AND locationId. Paginated.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
pagenumberfacultatif
Page (default 1)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_review_campaigns",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_invite_stats

get_invite_stats

Readreviews:read

Get review-invite acquisition stats for a location: total acquisitions, feedback received, customer-experience score, click-through rate. Location-scoped — requires clientId AND locationId.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_invite_stats",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_campaign_responses

list_campaign_responses

Readreviews:read

List responses to a location's review-invite campaigns (who responded, feedback given). Location-scoped — requires clientId AND locationId. Paginated.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
pagenumberfacultatif
Page (default 1)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_campaign_responses",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/list_campaign_recipients

list_campaign_recipients

Readreviews:read

List recipients of a location's review-invite campaigns (contacts messaged + delivery/response status). Location-scoped — requires clientId AND locationId. Paginated.

Paramètres
clientIdstringobligatoire
The client's id (from list_clients).
locationIdstringobligatoire
The location's id (from list_locations).
pagenumberfacultatif
Page (default 1)
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_campaign_recipients",
    "arguments": {
      "clientId": "string",
      "locationId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/get_campaign

get_campaign

Readreviews:read

Get a single review-invite campaign by id (config, status, schedule). Agency-scoped.

Paramètres
campaignIdstringobligatoire
Campaign id (from list_review_campaigns).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_campaign",
    "arguments": {
      "campaignId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/bulk_reply_reviews

bulk_reply_reviews

Writereviews:write

Post replies to many reviews in one call. Pass `replies` as an explicit array of { reviewId, text }. Each is applied independently (Google and Facebook pushed live; others saved). Rate-limited per Google Business Profile (10 edits/min); throttled items come back with retryable:true so they can be re-attempted rather than treated as hard failures. Returns a per-review result array with ok/pushed/error/retryable, plus succeeded/failed counts.

Paramètres
repliesobject[]obligatoire
Array of { reviewId, text }
reviewIdstringfacultatif
Review id (from list_reviews).
textstringfacultatif
Reply text
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bulk_reply_reviews",
    "arguments": {
      "replies": [
        {}
      ]
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/validate_review_source

validate_review_source

Readreviews:read

Check whether a URL is a usable review source before adding it with add_review_source. Probes the page live (a few seconds), detecting its platform (Google/Yelp/Facebook/TripAdvisor/Trustpilot/BBB/Foursquare/Healthgrades/OpenTable/custom), whether it actually collects reviews, an estimated review count, and the business name found on the page. If you pass locationId, it also checks whether the page's business name matches that location's name and whether this URL is already added there; omit locationId to instead get a suggested location match by name. `ok` is true only when the source collects reviews AND isn't a duplicate.

Paramètres
urlstringobligatoire
The review page URL to check (required).
locationIdstringfacultatif
The location this source would be added to (from list_locations). Omit to get a suggested location match instead.
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "validate_review_source",
    "arguments": {
      "url": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/add_review_source

add_review_source

Writereviews:write

Add a custom review source (a specific review-page URL) to a location — e.g. a Yelp, TripAdvisor, Trustpilot, BBB, or other business-listing page whose reviews aren't already pulled in automatically (Google and Facebook are auto-pulled via the connected OAuth account and don't need this). Run validate_review_source on the URL first to confirm it collects reviews and isn't already added. Once added, its reviews are scraped immediately in the background and then re-checked on a recurring schedule. Fails if this exact URL is already added to this location.

Paramètres
locationIdstringobligatoire
The location to add this review source to (required, from list_locations).
urlstringobligatoire
The review page URL (required).
platformstringfacultatif
The detected platform slug (from validate_review_source). Auto-detected from the URL if omitted.
labelstringfacultatif
A display label for the source. Auto-detected from the URL if omitted.
detectedNamestringfacultatif
The business name detected on the page (from validate_review_source), for reference.
reviewCountnumberfacultatif
The estimated review count detected at validation time, shown until the first scrape lands.
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_review_source",
    "arguments": {
      "locationId": "string",
      "url": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/hide_review_source

hide_review_source

Writereviews:write

Hide or unhide a review source from a location's review feed and analytics, without deleting its historical reviews. Pass an auto-detected platform slug (e.g. "google") with type "auto" to hide one of the automatically-pulled platforms, or a custom source's id (from validate_review_source's result, or the id returned by add_review_source) with type "custom".

Paramètres
locationIdstringobligatoire
The location whose source visibility you're changing (required, from list_locations).
keystringobligatoire
The auto platform slug (e.g. "google", "yelp") when type is "auto", or the custom source's id when type is "custom" (required).
type"auto" | "custom"obligatoire
Whether `key` is an auto platform slug or a custom source id (required).
hidebooleanobligatoire
true to hide, false to unhide (required).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hide_review_source",
    "arguments": {
      "locationId": "string",
      "key": "string",
      "type": "auto",
      "hide": true
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.

MCPOutils MCP/Avis/remove_review_source

remove_review_source

Writereviews:write

Permanently remove a custom review source from a location. This only removes the tracked source going forward — reviews already imported into the app from it are NOT deleted. Only custom sources (added via add_review_source) can be removed this way; the auto-pulled platforms (Google, Facebook) can only be hidden with hide_review_source, not removed. Identify the source by its id (from add_review_source's result, or a "custom:<id>" key seen elsewhere).

Paramètres
sourceIdstringobligatoire
The custom review source's id to remove (required).
Exemple de requête
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_review_source",
    "arguments": {
      "sourceId": "string"
    }
  }
}
Exemple de réponse
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forme de la réponse est indicative — le contenu réel dépend de l'outil et de vos données.