Gentic Reviews — Documentation
Connect any AI agent to your product reviews. Pull your latest Junip reviews — newest-first, incremental since last check — through the Model Context Protocol. Filter by rating, media, or product, and poll for new reviews on a schedule without re-reading the whole backlog.
1. Getting Started
Sign Up & Get Your API Key
Before you can use Gentic Reviews, you need an API key to authenticate your requests.
- Go to gentic.co/reviews and create an account.
- Create an organization from your dashboard. API keys and billing are scoped to the organization.
- Generate an API key and use it as a Bearer token in your MCP client.
2. Connecting to the MCP Server
The server is available at https://mcp.gentic.co/reviews. For Claude Code:
claude mcp add gentic-reviews \
--transport http \
https://mcp.gentic.co/reviews \
--header "Authorization: Bearer YOUR_API_KEY"For Claude Web and ChatGPT you can also connect via OAuth — no API key needed. See the connect section on the landing page for other MCP clients (n8n, OpenClaw).
3. Agent Skill
For the best results, pair the MCP server with the Gentic Reviews agent skill. The MCP server gives your agent tool access; the skill teaches it the optimal workflow order. Both the raw SKILL.md and a ready-to-upload .skill bundle are generated on demand from the live manifest, so they always reflect the current tools and pricing.
Add the skill directly via URL:
https://gentic.co/reviews/SKILL.mdOr upload a .skill bundle to Claude Managed Agents:
https://gentic.co/reviews/gentic-reviews.skillDownload this file and upload it wherever Claude Managed Agents asks for a .skill file. It's a zip bundle generated on demand from the latest SKILL.md.
4. When to Apply
- User wants to read their latest product or store reviews.
- User wants to poll for new reviews on a schedule without re-reading old ones.
- User wants to filter reviews by an exact star rating (1–5).
- User wants only reviews that include photos or videos.
- User wants reviews for specific products (by store-platform product IDs).
- User wants to feed recent reviews into sentiment analysis, support triage, or ad copy.
5. Workflow
1. Connect Junip once, then read without credentials
The Reviews server sources the Junip store key from the org's connected integration (Gentic dashboard → Integrations → Junip). In normal use you never pass `store_key` — leave it unset and the server uses the connected credential. Only pass `store_key` for an ad-hoc/one-off pull against a store that isn't connected in the dashboard yet.
2. Read newest-first with `junip_get_reviews`
`junip_get_reviews` is **5¢ per call (flat)**. With no inputs it returns the newest reviews (default `type: product`, `limit: 50`). Set `type: store` for store-level reviews instead of product reviews. `limit` is 1–250 (default 50) — the tool paginates internally to gather up to that many in one call. Returns `{ reviews, count, latest_id, next_cursor, has_more }`.
3. Poll incrementally with `since_id` / `latest_id`
Junip's v1 Display API has **no date-range filter**, so 'reviews since last check' is done with a high-water mark. Persist the `latest_id` returned by each run, and on the next run pass it back as `since_id` — pagination stops once a review with id ≤ `since_id` is reached, so you only get reviews newer than last time. This is the supported pattern for scheduled/cron polling.
4. Page manually with `next_cursor` / `page_after`
To walk further back through history in one session, pass a prior call's `next_cursor` back as `page_after` to continue fetching older reviews. Omit `page_after` to start from the newest. `has_more` tells you whether another page exists.
5. Filter by rating, media, or product
`rating` maps to Junip's `filter[rating]` and is an **EXACT-match** filter (1–5) — `rating: 4` returns only 4-star reviews, NOT 4-and-up (Junip has no rating-range filter). `media_only: true` returns only reviews with photos/videos. `product_remote_ids` restricts to specific store-platform product IDs (e.g. Shopify product IDs).
6. Present results clearly
Don't dump raw JSON. Summarize the reviews — rating, author, body, product, and any media — and surface the `count`. If `has_more` is true and the user wants more, offer to page with `page_after`. For recurring checks, remind the user you'll track `latest_id` so the next run only pulls new reviews.
6. Tool Reference
1 tool, rendered live from the Gentic MCP manifest. Parameter tables come directly from each tool's JSON Schema.
junip_get_reviews
Fetch reviews from Junip (v1 Display API), newest-first, with cursor pagination and incremental-since support. Sources the Junip store key from the org's connected integration; pass `store_key` only to override. Every fetched review is also upserted into the org's `reviews` table in MotherDuck (deduped on the Junip review id; mutable fields like response/votes/featured/rating are refreshed on re-pull), and the tool returns the persisted rows for this pull — including `review_created_at` / `review_updated_at` and `ingested_at` — newest-first. For scheduled polling, persist the returned `latest_id` and pass it back as `since_id` on the next run to fetch only newer reviews (Junip has NO date-range filter, so this high-water-mark pattern is the supported way to get 'reviews since last check'). For manual paging, pass the returned `next_cursor` back as `page_after`. Respects Junip's 2 req/sec rate limit. Returns `{ reviews, count, latest_id, next_cursor, has_more, persisted, table }`; if the MotherDuck write fails the call still returns the freshly-fetched reviews with `persisted: false`. $0.05 per call.
| Parameter | Type | Description |
|---|---|---|
store_key | string | Optional Junip store key override. Prefer leaving this unset — the server uses the org's connected Junip credential. Only pass for ad-hoc/one-off pulls against a store not yet connected in the dashboard. |
type | string | Which Junip endpoint to read: 'product' reviews (default) or 'store' reviews. enum: product, store |
limit | integer | Max reviews to return this call (1–250, default 50). The tool paginates internally to gather up to this many. 1 – 250 |
since_id | integer | High-water mark. Pagination stops once a review with id ≤ this is reached, so only reviews newer than `since_id` are returned. Pass the previous run's `latest_id` here for incremental scheduled polling. max 9007199254740991 |
page_after | string | Raw Junip cursor for manual pagination — pass a prior call's `next_cursor` to continue fetching older reviews. Omit to start from the newest. |
rating | integer | Maps to Junip `filter[rating]` — an EXACT-match filter (1–5). e.g. `rating: 4` returns only 4-star reviews, NOT 4-and-up. Junip's v1 Display API has no rating-range filter. 1 – 5 |
media_only | boolean | When true, maps to Junip `filter[media_only]` — only reviews with photos/videos. |
product_remote_ids | string[] | Maps to Junip `filter[product_remote_ids]` — restrict to these store-platform product IDs (e.g. Shopify product IDs). |
7. Pricing
Pricing is pulled live from the Gentic MCP manifest. All prices are per call and deducted from your Gentic credits.
| Tool | Cost |
|---|---|
| junip_get_reviews | 5¢ / call |
8. Notes
- Organization-scoped: the store key comes from the org's connected Junip integration. Pass `store_key` only to override for an unconnected store.
- Cost: `junip_get_reviews` is a flat **5¢ per call** regardless of how many reviews come back or how many internal pages are fetched to satisfy `limit`.
- Reviews are always returned newest-first. For 'since last check', persist `latest_id` and pass it as `since_id` next run — there is no date-range filter in Junip's v1 Display API.
- `rating` is exact-match, not and-up. To approximate 'and-up', call once per star value you care about.
- Respects Junip's 2 req/sec rate limit; the tool handles internal pagination within that budget.