Replo
REMOTE · API.REPLO.APP
Research competitors and build, edit, and manage ecommerce sites from your AI assistant.
Available components
Last scanned (5 hours ago)
Scores higher than 52% of remote servers
Reachable. Last reached 5 Nov 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (resolve_agent_interaction). See how to fix → View diagnostics → Fail
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability72
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 23954 tokens (~244/item across 98 items; 96 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
- Stability check failed: schema churn in the 17 days we've observed: 2 tool removals, 2 breaking changes, 0 auth/transport breaks, 21 additions. See how to fix → Fail
Tool Coverage88
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 65% of tool parameters carry a description.Partial
Tool Safety96
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 5 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "query_insights_report" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 98 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
- Tool “create_artifact” rewrote its description, which is the text the model reads security
- Tool “generate_artifact” rewrote its description, which is the text the model reads security
- Tool “update_artifact” rewrote its description, which is the text the model reads security
- New resource “files-widget” functional
- New tool “get_artifact_report_context” functional
- New tool “get_artifact_view_access” functional
- New tool “run_artifact_chart” functional
- New tool “show_artifact” functional
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 46 to 49.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 39 to 43.
- 1 Nov 26 −1
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “create_or_update_brand_kit” was removed ▼ security
- Tool “edit_artifact” was removed ▼ security
- Tool “get_brand_kit” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- New tool “generate_artifact”, which the server declares destructive security
- New tool “update_artifact”, which the server declares destructive security
- New tool “update_brand”, which the server declares destructive security
- Tool “apply_brand_kit_to_site” rewrote its description, which is the text the model reads security
- Tool “create_artifact” rewrote its description, which is the text the model reads security
- Tool “create_artifact” no longer declares itself destructive security
- Tool “set_file_sharing” is now declared destructive security
- Tool “sightglass_update_board” is now declared destructive security
- “create_artifact” added a required parameter “files”, so existing callers break ▼ functional
- “create_artifact” added a required parameter “title”, so existing callers break ▼ functional
- “create_artifact” dropped the required parameter “instructions” ▼ functional
- “create_artifact” dropped the required parameter “operationId” ▼ functional
- New tool “get_branding” functional
- “create_artifact” added an optional parameter “description” cosmetic
- “create_artifact” added an optional parameter “parentId” cosmetic
- “query_replo_analytics” reworded the description of “query” cosmetic
- “create_artifact” dropped the optional parameter “sessionId” cosmetic
- “create_artifact” dropped the optional parameter “sources” cosmetic
- 31 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “connect_replo_account” rewrote its description, which is the text the model reads security
- Tool “get_integration_status” rewrote its description, which is the text the model reads security
- Tool “get_plan_options” rewrote its description, which is the text the model reads security
- Tool “list_projects” rewrote its description, which is the text the model reads security
- Tool “query_replo_analytics” rewrote its description, which is the text the model reads security
- Tool “sightglass_search_companies” rewrote its description, which is the text the model reads security
- Tool “start_plan_upgrade” rewrote its description, which is the text the model reads security
- Schema quality: 210 → 232 ▼ functional
- New tool “create_site” functional
- New tool “skills” functional
- “update_project” added an optional parameter “industryCategoryId” cosmetic
- “query_replo_analytics” reworded the description of “query” cosmetic
- “sightglass_show” reworded the description of “resultId” cosmetic
- 30 Oct 26 0
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “create_insights_report” was removed ▼ security
- Tool “edit_insights_report” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “create_api_key” rewrote its description, which is the text the model reads security
- Tool “create_artifact” rewrote its description, which is the text the model reads security
- Tool “edit_artifact” rewrote its description, which is the text the model reads security
- Tool “create_api_key” is now declared destructive security
- “create_api_key” added a required parameter “expiresInDays”, so existing callers break ▼ functional
- “create_api_key” added a required parameter “projectIds”, so existing callers break ▼ functional
- “create_api_key” made “scopes” required, so existing callers break ▼ functional
- “create_api_key” dropped the required parameter “projectId” ▼ functional
- New tool “get_file_sharing” functional
- New tool “set_file_sharing” functional
- “create_api_key” added an optional parameter “type” cosmetic
- “create_api_key” reworded the description of “scopes” cosmetic
- “edit_artifact” reworded the description of “fileId” cosmetic
- Tool “create_api_key” changed its title: Create repository API key → Create API key cosmetic
- 29 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- New tool “create_comment_thread” functional
- New tool “get_comment_thread” functional
- New tool “list_comment_threads” functional
- New tool “reply_to_comment_thread” functional
- New tool “resolve_comment_thread” functional
- 28 Oct 26 0
- Stability: 0.27 → fail ▼ security
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “delete_task” rewrote its description, which is the text the model reads security
- Tool “update_site” rewrote its description, which is the text the model reads security
- “update_site” made “name” required, so existing callers break ▼ functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- MCP protocol version: 2025-11-25 → 2026-07-28 functional
- “delete_task” reworded the description of “taskId” cosmetic
- “get_task” reworded the description of “taskId” cosmetic
- “update_site” reworded the description of “name” cosmetic
- “update_site” reworded the description of “siteId” cosmetic
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://api.replo.app/v1/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=replo.app | CN=YE2,O=Let's Encrypt,C=US | 23 Oct 2026 | 21 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 5416a057e0a7dfe47307b2d32afc35466c3 |
| SANs: *.replo.app, replo.app | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.replo.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| replo.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.replo.app/v1/mcp | Verified | 200 | |
| http (plaintext) | http://api.replo.app/v1/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
revoke_shared_preview Revoke shared preview ~68
Disable a public shared preview link using the id returned by create_shared_preview. Only its creator with current project access or a workspace admin can revoke it. Repeating the request succeeds; page content is preserved. Revoke only the link the user requested.
| Name | Type | Req | Description |
|---|---|---|---|
| sharedPreviewId | string | yes | – |
No output schema declared.
No examples provided.
run_artifact_chart Run artifact chart ~165
Used by the artifact card to load the live numbers for a chart or report it shows. Not for direct use: call query_insights_report to query a report.
| Name | Type | Req | Description |
|---|---|---|---|
| chartPath | string | yes | The report or chart file the artifact's page draws, relative to the artifact folder. |
| fileId | string | yes | The artifact's .artifact folder ID, as create_artifact, update_artifact or list_files returned it; never an embedded report file ID. |
| forceRefresh | boolean | – | Skip the cached result and run the query again. |
| queryId | string | – | The report card's query, for a report file; omitted for a chart file. |
| scope | object | – | The report's current filters, such as its date range and site domains. |
No output schema declared.
No examples provided.
set_file_sharing Set file sharing ~175
Change who can open a Files document, folder, or artifact. Only its owner or a workspace admin can. Each access entry sets one audience: "team" (everyone in the project), "link" (anyone with the URL, signed in or not, which publishes the file), or a project member's email. A role of null removes that access given on this file; access inherited from a parent folder, such as a shared folder, stays and is listed under inherited. Audiences you do not list keep their access. All entries apply together or not at all. Returns who can open the file afterwards, including artifactUrl for an artifact.
| Name | Type | Req | Description |
|---|---|---|---|
| access | array | yes | Access to set. Audiences not listed keep their current access. Each audience or email appears once. |
| fileId | string | yes | – |
No output schema declared.
No examples provided.
set_product_inventory Set product inventory ~116
Set stock counts and stock policy for a Replo-managed product's variants, addressing each variant by its option-value combination (empty optionValues for a product with no options). available is an absolute count, not a delta. Turning on trackInventory without an available count leaves the variant unsellable until a count exists — set both together. Only products the merchant fulfills themselves can track stock; print-on-demand and digital variants are made to order and will be refused.
| Name | Type | Req | Description |
|---|---|---|---|
| productId | string | yes | – |
| variants | array | yes | – |
No output schema declared.
No examples provided.
show_artifact Show artifact ~160
Show a saved artifact to the user as an inline card they can expand and scroll, in hosts that draw cards. Call it once after create_artifact or update_artifact saves one, after generate_artifact's session reports the saved artifact, or when the user asks to see an existing artifact. Returns its title, description and viewer link; nothing about the artifact changes. Where the host draws the card, the user can already see the artifact: say in a sentence what it shows and do not repeat its contents. Where no card appears, give the user the artifactUrl.
| Name | Type | Req | Description |
|---|---|---|---|
| fileId | string | yes | The artifact's .artifact folder ID, as create_artifact, update_artifact or list_files returned it; never an embedded report file ID. |
No output schema declared.
No examples provided.
sightglass_arena_compare Compare on a map ~476
Place personas, ads, landing pages or companies (brands) on one or two 'this vs that' axes, the same map the user sees in Sightglass Arena. Each item gets a position per axis from 0 (most like the low end) to 100 (most like the high end), relative to the items returned, plus the raw similarity. Use a lens for the preset pairs (who it's for, why they buy, price and style, occasion) or pass your own axes, e.g. [{low: 'Minimal', high: 'Maximal'}]; omit high and the opposite is chosen for you. The user's own company and Brand Studio personas are included and marked isYou. Use it to answer 'where do we sit against these brands' or 'which buyers are nobody's focus'. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| axes | array | – | One or two axes; overrides lens |
| companyRefs | array | – | Company ids or slugs to compare; omit for the top companies. The project's own company is always added |
| kind | string | yes | What to place: personas, ads, pages (landing pages) or companies |
| lens | string | – | A preset pair of axes: who (Beginner↔Expert × Solo↔Social), why (Feeling↔Logic × Need↔Treat), price (Cheap↔Premium × Classic↔Modern), occasion (Everyday↔Special occasion × Solo↔Social). Ignored when… |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_copy_creative_to_assets Copy creative to Assets ~161
Copy one ad creative's image from Sightglass into the Replo project's Assets, so it can be used as a reference in the project. Takes the `creative.id` of an ad, not the ad's own id. Returns the asset's id and URL; copying the same creative again returns the existing asset.
| Name | Type | Req | Description |
|---|---|---|---|
| creativeId | string | yes | An ad's `creative.id`, not the ad's own id. |
| projectId | string | yes | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_create_board Create board ~141
Create a named board in the user's Sightglass collection. A board holds one kind of item: ad, site_page (landing pages), company (brands) or persona. Returns the board and its id.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | What the board holds; a board takes one kind of item. |
| name | string | yes | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_delete_board Delete board ~116
Delete one of the user's Sightglass boards and everything saved on it. This cannot be undone, so only call it when the user asked for this board to be deleted.
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_ads Find ads ~867
Search a library of real Meta ads and the landing pages they drive to. `search` is a semantic vector search, so describe the ad's angle, offer or visual style rather than one keyword. Combine it with companyIds, displayFormats, pageTypes and technologies to narrow, and with hookTypes, angleTypes, offerTags and funnelStages to filter on what the ad's creative was read as (each ad carries these in `tags`, null until it is read). Users say 'brands' for advertisers and 'landing pages' for site pages — map their words onto these filters. performanceScore and scoreTiers come from a transparent longevity + duplication heuristic; they are NOT spend, reach or ROAS and must never be presented as such. Returns metadata plus ready-to-view media URLs; call sightglass_get_ad for one ad's full detail, sightglass_get_site_page for the page an ad drives to. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| angleTypes | string | – | CSV of angle types: problem_solution,mechanism,proof,comparison,identity,founder_story,objection_handling,urgency,education,transformation,price_or_value,quality_or_craft,clean_or_non_toxic,convenien… |
| companyIds | string | – | CSV of company ids. Users usually call companies 'brands'. |
| cursor | string | – | nextCursor from the previous page of this same call, to get the next page. Keep every other argument the same. |
| displayFormats | string | – | CSV of image,video,carousel,dco,dpa,text,other |
| funnelStages | string | – | CSV of funnel stages: cold,warm,retargeting |
| hookTypes | string | – | CSV of hook types: question,bold_claim,problem_callout,curiosity,proof_number,before_after,first_person_story,offer_first,us_vs_them,demo,audience_callout,contrarian,customer_testimonial,expert_or_ce… |
| limit | integer | – | Results per page: 20 by default, up to 40. Use the user's number when they give one; for more than 40, page with cursor. |
| offerTags | string | – | CSV of offer tags: discount,bundle,subscription,trial_or_sample,gift_with_purchase,financing,free_shipping,giveaway |
| pageTypes | string | – | CSV of landing-page types: offer_page,advertorial,listicle,quiz,lead_capture,homepage,pdp,collection,blog,marketplace,app_store,social_profile. The stored names product, squeeze and other still work. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| scoreTiers | string | – | CSV of testing,scaling,growing,optimized,winning. These tiers come from a transparent longevity + duplication heuristic — they are NOT spend, reach or ROAS, and must never be described as such. |
| search | string | – | Semantic search over the ad's copy, creative caption and advertiser. Describe the angle, offer or visual style you want (for example 'before and after skin results with a discount code'), not a singl… |
| sort | string | – | – |
| status | string | – | – |
| technologies | string | – | CSV of stack names on the brand's site, e.g. Shopify,Klaviyo |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_angles Find a brand's angles ~335
A brand's angles: the pitch each ad leans on, for whom; offers sit on top. Each angle has a type (problem/solution, proof, founder story…), a short name for the idea, the newest headline hook, the persona it speaks to (a segment nickname, the buyer's situation in their words, an age range when the ad shows one, and awareness stage from unaware to most-aware), the product, how many ads (and live ads) and landing pages use it, when it was first and last seen, and the offers the same ads carried. Most used first. Use it to answer 'how does this brand sell' or to compare two brands' messaging. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRef | string | yes | Company id or slug. Users call companies 'brands'. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_campaigns Find a brand's offers ~322
A brand's offer campaigns: what deal it ran (discount, bundle, free gift…), in plain English, from when to when, how deep, on how many ads and landing pages, with the exact quote it was read from. Grouped from the brand's ads and page captures; a deepening discount (5% → 10%) is one campaign with steps. Use it to answer 'what is this brand running' or to compare two brands' promotions. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRef | string | yes | Company id or slug. Users call companies 'brands'. |
| from | string | – | YYYY-MM-DD; defaults to six weeks back |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| to | string | – | YYYY-MM-DD; defaults to a week ahead |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_offers Find offers across brands ~401
Offer campaigns across brands. With no companyRefs, `mode` is 'top': the offers running across every tracked brand in the trailing window, sorted by how many ads carry them, how long they have run, or how deep the discount is. With companyRefs, `mode` is 'calendar': those brands' campaigns in a date window, side by side, for comparing promo timing. Use it for 'what offers are working in this market' and 'when do these brands run sales'. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRefs | array | – | Company ids or slugs: returns the promo calendar for these brands. Omit for the top offers across every tracked brand. |
| days | integer | – | Top offers only. Trailing window; defaults to 30. |
| from | string | – | Calendar only. YYYY-MM-DD; defaults to six weeks back |
| limit | integer | – | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| sort | string | – | Top offers only. ads = most ads carrying it, running = longest running, depth = deepest discount. |
| to | string | – | Calendar only. YYYY-MM-DD; defaults to a week ahead |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_personas Find a brand's personas ~294
A brand's customer personas: who it markets to, their age range and awareness stage, with the angles and offers aimed at each. Each persona is a segment nickname, the buyer's situation in their words, its share of the brand's ads, how many ads and landing pages speak to it, and its top angles and offers. Empty until the brand has enough ads and pages read. Use it to answer 'who is this brand selling to' or to compare two brands' audiences. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRef | string | yes | Company id or slug. Users call companies 'brands'. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_site_pages Find landing pages ~446
Find destination pages ads drive to — what users call 'landing pages'. Filter by pageTypes (offer_page, advertorial, listicle, quiz, lead_capture, homepage, pdp, collection, blog, marketplace, app_store, social_profile) and by the technologies detected on the site, e.g. Shopify or Klaviyo. `search` is semantic over the page's title and description. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| activeAdsCountGte | integer | – | – |
| cursor | string | – | nextCursor from the previous page of this same call, to get the next page. Keep every other argument the same. |
| domains | string | – | CSV of site domains |
| limit | integer | – | Results per page: 20 by default, up to 40. Use the user's number when they give one; for more than 40, page with cursor. |
| pageTypes | string | – | CSV of landing-page types: offer_page,advertorial,listicle,quiz,lead_capture,homepage,pdp,collection,blog,marketplace,app_store,social_profile. The stored names product, squeeze and other still work. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| search | string | – | – |
| sort | string | – | – |
| technologies | string | – | CSV of technology names |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_technologies Find technologies ~288
The technology directory: the apps and vendors detected on tracked brands' sites (Shopify, Klaviyo, Recharge…), ranked by how many brands use each and how those brands are doing. Pass `slug` for one technology's adopter stats and its category peers. To list the brands or ads behind a technology, pass its name as `technologies` to sightglass_find_ads or sightglass_find_site_pages. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | App category as the fingerprinter labels it, e.g. email-sms |
| limit | integer | – | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| search | string | – | – |
| slug | string | – | One technology's slug from an earlier result: returns its adopter stats and peers instead of the directory. |
| sort | string | – | – |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_find_top_angles Find angles across brands ~316
The angles in use across every tracked brand in the trailing window: the same shape as sightglass_find_angles, with the brand on each. Filter by angle type, the age band or awareness stage of the persona it speaks to, and sort by ads, landing pages or newest. Use it for 'what pitches are brands using on this audience' and to find an angle nobody is running. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| ageBand | string | – | SightglassAgeBand |
| awareness | string | – | ProjectPersonaAwareness |
| days | integer | – | – |
| limit | integer | – | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| sort | string | – | SightglassTopAnglesSort |
| type | string | – | SightglassAngleType |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_follow_companies Follow brands ~155
Set the brands the user follows in Sightglass. companyIds replaces the whole list, so read the current one with sightglass_list_saved (kind=following) and include the ones to keep. Followed brands feed the user's home view and offer calendar.
| Name | Type | Req | Description |
|---|---|---|---|
| companyIds | array | yes | The full list of company ids to follow; it replaces the current list, so include the ones to keep. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_access Get Sightglass plan ~145
What the user's Replo plan includes in Sightglass: the plan name, row caps per list, whether sales and traffic estimates are included, the history and trend windows, and how many new-brand researches are used and left this month. Call it when a result comes back with locked fields and the user asks why, or before sightglass_research_company.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_ad Get ad ~161
Fetch one ad in full: copy, creative caption, duplication facts, its destination landing page, and presigned media URLs you can pull into context to look at the creative itself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| adId | string | yes | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_company Get brand ~279
One company's full profile plus its six nearest competitors. Use the id or slug from sightglass_search_companies, or the `companySlug` on an ad's advertiser. Includes the category breadcrumb, every Meta page the company runs, grade mix, and the Momentum components. Call sightglass_get_company_activity for its trend and launch history. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRef | string | yes | Company id or slug. Users call companies 'brands'. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_company_activity Get brand activity ~312
How one brand's advertising has moved: its daily active-ad trend, ads launched per week, how long its ads stay live (longevity buckets), and the technology stack on its site with when each tool was first seen. Use it for 'is this brand scaling up or pulling back' and 'what did they change'. The trend window and the launch and longevity charts depend on the plan. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| companyRef | string | yes | Company id or slug. Users call companies 'brands'. |
| days | integer | – | Trend window in days; defaults to 90. Capped by the plan. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| weeks | integer | – | Weeks of launches; defaults to 26. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_rankings Get market rankings ~390
The market view: who holds what share of active ads, week by week. `pulse` is the headline numbers for the scope (brands, active ads, launches, video and advertorial share). `share` is the weekly share of the top groups, grouped by company (default), category, platform, country or plan. `categories` lists the categories under the scope so you can drill in with categoryId; with a categoryId, `leaders` is that category's top companies. Share is share of ads Sightglass has seen, not spend or revenue. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | string | – | Scope to one category's subtree; ids come from the `categories` in this tool's result. With a category, `leaders` lists its top companies. |
| groupBy | string | – | What to rank by share of active ads: company (default), category, platform, country or plan. |
| limit | integer | – | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| weeks | integer | – | – |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_site_page Get landing page ~225
Fetch one landing page in full: desktop, mobile and pre-popup screenshots as viewable URLs, the site's detected technology stack, its traffic estimates, and how many live ads point at it. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| sitePageId | string | yes | – |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_site_page_versions Get landing page history ~244
How one landing page changed over time: its dated captures, newest first, each with a screenshot and the offers read from it. Use it for 'what did they change on this page' and to see when an offer appeared or deepened. The window depends on the plan. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| sitePageId | string | yes | – |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_get_xray Get X-ray ~261
Read an X-ray. Pass requestId to poll a grade started with sightglass_xray (a finished request is billed when first read). Pass adId or sitePageId to read the grade itself: scores, findings and fixes, as far as the workspace has unlocked it. A target nobody has graded returns its summary with the grade locked; offer to run sightglass_xray. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| adId | string | – | Grade this ad together with its landing page, as a funnel. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| requestId | string | – | A request id from sightglass_xray: returns its status. Pass this instead of a target while a grade is running. |
| sitePageId | string | – | Grade this landing page alone. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_list_saved List saved items ~339
What the user has collected in Sightglass. Returns up to 100 boards with nextBoardCursor for more; pass boardCursor to continue. With no `kind` it adds a count summary; with `kind` it lists saved ads, landing pages (site_pages), companies or followed brands. Pass nextCursor as cursor for the next page of items. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself.
| Name | Type | Req | Description |
|---|---|---|---|
| boardCursor | string | – | Pass nextBoardCursor from a prior result to list more boards. |
| boardId | string | – | Limit to one board; ids come from `boards` in this result. |
| cursor | string | – | nextCursor from the previous page of this same call, to get the next page. Keep every other argument the same. |
| kind | string | – | Which saved items to list. Omit for just the boards and a count summary. |
| limit | integer | – | Results per page: 20 by default, up to 40. Use the user's number when they give one; for more than 40, page with cursor. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_research_company Research a new brand ~188
Find or add a company by website domain and queue background research into its ads, landing pages, store details, and technologies. Newly tracked companies consume one monthly research allowance when research is dispatched. Already tracked companies do not consume another allowance. Results populate asynchronously. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | The brand's website domain, e.g. gruns.co |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_search_companies Search brands ~649
Search Sightglass companies — what users call brands: the business behind one or more Meta advertiser pages, keyed on its domain. `search` is semantic, so describe the business (what it sells and to whom). Pass `similarToCompanyId` to find a company's nearest competitors instead. To look a brand up by its website pass `domainSearch`; when that finds nothing the brand is not tracked yet, so read its site or use the user's words, write one sentence on what it sells and to whom, and pass that as `search`: the results are tracked brands competing for the same customers. Each result carries store facts (platform, estimated monthly sales, products, employees, follower counts with 30-day change — all vendor estimates, never reported revenue), rank and rank movement by active ads, and `momentum`: a transparent 0-100 score whose `components[].text` say why a brand is growing (ad launches vs last month, active-ad change, follower growth, catalog activity, stack upgrades). Sort by `momentum` for who is blowing up, `most_estimated_sales` for the biggest, `most_active_ads` for who runs the most ads. Trends come from ad start/stop dates and only cover ads Sightglass has seen. Fields the user's Replo plan doesn't include come back null and are named in that item's `locked` list (`estimates` = sales, visits and traffic); `lockedCount` is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| activeAdsCountGte | integer | – | – |
| categoryIds | string | – | CSV of category ids from sightglass_search_companies results; a node matches its whole subtree. |
| cursor | string | – | nextCursor from the previous page of this same call, to get the next page. Keep every other argument the same. |
| domainSearch | string | – | A brand's website, e.g. example.com or a full URL, to find that brand when Sightglass tracks it. |
| limit | integer | – | Results per page: 20 by default, up to 40. Use the user's number when they give one; for more than 40, page with cursor. |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| search | string | – | Semantic by default: describe the business (what it sells, to whom), not one keyword. |
| searchMode | string | – | – |
| similarToCompanyId | string | – | Find the nearest competitors of this company instead of searching. |
| sort | string | – | – |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_show Show Sightglass results ~155
Show a prior Sightglass result to the user as an inline card, in hosts that draw cards. Call it once, after the data call that answered the user's question, with that call's resultId. This call returns the stored result without searching again or spending credits. Skip it for empty results. Where the host draws the card, the user already sees every item: do not restate them as a list or a table, write two or three sentences on what stands out. Where no card appears, the user has not seen the items, so summarize the ones that answer the question.
| Name | Type | Req | Description |
|---|---|---|---|
| resultId | string | yes | resultId from the Sightglass call whose results answer the user's question, or from its sign-in result. |
No output schema declared.
No examples provided.
sightglass_update_board Rename board ~98
Rename one of the user's Sightglass boards.
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | – |
| name | string | yes | – |
| projectId | string | – | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
sightglass_xray X-ray an ad or landing page ~260
Start an X-ray: a graded teardown of one ad (with its landing page, as a funnel) or one landing page, scored against what works in its category. Pass exactly one of adId or sitePageId. This spends the workspace's Replo credits (the model cost, or one credit when a grade already exists), so only call it when the user asked for a grade. It returns a request; poll sightglass_get_xray with its id every few seconds until it finishes, then read the grade with the same target. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
| Name | Type | Req | Description |
|---|---|---|---|
| adId | string | – | Grade this ad together with its landing page, as a funnel. |
| projectId | string | yes | Replo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies. |
| sitePageId | string | – | Grade this landing page alone. |
| workspaceId | string | – | Replo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace. |
No output schema declared.
No examples provided.
skills Read Replo skills ~174
Replo's skills: how Replo's tools fit together, how to build and publish pages, and how to use each integration. Before doing Replo work, call skills to list every skill (each one's name and description), then skills with name to load one skill's full SKILL.md. A skill lists the files it bundles by relative path, such as references/fonts.md; read one by its skill directory and path, such as building-replo-pages/references/fonts.md. Works without a Replo account: call it before asking the user to sign in.
| Name | Type | Req | Description |
|---|---|---|---|
| name | – | – | The one skill to load, by the name this tool lists (`klaviyo`), or a file a skill bundles, as its directory and relative path (`building-replo-pages/references/fonts.md`). Leave it out to list every… |
No output schema declared.
No examples provided.
start_plan_upgrade Start plan upgrade ~218
Get the user a link to move a workspace onto a Replo plan. Returns { status, url, message }. status checkout: url opens a page where the user signs in and continues to Stripe Checkout for a free workspace, and nothing is charged until they pay there. status manage_in_dashboard: url opens a page where they sign in and continue to the workspace's billing settings, for one that already has a plan or can't buy this one from chat; chat never changes an existing subscription. Either link works for 30 minutes; share it, and when the user says they finished, call get_plan_options to see the plan the workspace is on now. status done: the workspace is already on that plan, so there's nothing to share. Call only after the user chose the plan, usually from get_plan_options.
| Name | Type | Req | Description |
|---|---|---|---|
| interval | string | – | Billing interval; monthly only from chat. |
| plan | string | yes | The plan to buy: starter or pro. |
| workspaceId | string | yes | Replo workspace id, from list_workspaces. |
No output schema declared.
No examples provided.
submit_feature_request Submit a feature request ~147
Submit a feature request to Replo when the user asks to send feedback about a missing capability. Provide the projectId, a short title, and a concise description of the requested capability. Do not include conversation transcripts, verbatim messages, message references, credentials, or unrelated personal or customer data. Creates one feedback record for Replo's team; retries after success create duplicates.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | Concise description of the requested Replo capability. Exclude conversation history, verbatim messages, message references, credentials, and unrelated personal or customer data. |
| projectId | string | yes | Project ID from list_projects. |
| title | string | yes | Short headline for the feature request. |
No output schema declared.
No examples provided.
update_artifact Update artifact ~495
Replace parts of an existing artifact with content you wrote, keeping its folder ID, link and sharing. If the artifact is shared by link, the change is visible to anyone with that link, including people outside the workspace; get_file_sharing shows who can open it. Only what is sent changes: each listed file is written (null deletes it), each edit replaces one exact match of its find text in an existing text file, description replaces the card text, and title renames it; every other file is kept. Prefer edits for small changes to a large file. Read the current files with list_files and read_file first. Call show_artifact afterwards so the user sees the change. Requires write permission; deleting a file also needs delete permission, which API keys don't have. Checks run before anything is written; if storage fails partway, files already saved stay, so re-read before retrying, and re-sending the same files is safe. To have Replo's agent revise it from a request in words, use generate_artifact with fileId.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | The one-line summary shown on the artifact's card. |
| edits | array | – | Targeted replacements in existing text files, applied in order, so a small change doesn't resend the whole file. If any edit fails to match exactly once, nothing is saved. A path can't appear in both… |
| fileId | string | yes | The .artifact folder ID, including for Insights artifacts; never an embedded report file ID. |
| files | object | – | Files to write, keyed by relative path; null deletes that file. Files not listed are kept. index.html is the page. Link sibling files with relative URLs; scripts may load only from the artifact, cdnj… |
| projectId | string | yes | – |
| title | string | – | Renames the artifact. |
No output schema declared.
No examples provided.
update_brand Change the saved brand ~908
Create or update the saved brand kit, with `ops` or from a public site's `url`. Never applies branding to an existing site or publishes it. `ops`: business facts, the business and design overviews, colors, fonts, personas, logo marks, and which Drive files count as brand context; brand ops apply in order in one transaction, file ops run after it. `url`: Replo reads the site into the brand on its servers by `mode`: replace (default, whole brand) · swap (only `parts`, in full) · fill (keep what's set, fill gaps); a figma.com file link instead adds the file to the brand's Figma designs. Statuses: applied (saved at the returned version) · partial (brand saved, a file op refused; see files) · invalid (what was refused; nothing was written) · running (an import started and returns at once with `importId`: poll get_branding until it is completed or failed, under extraction for a site or figmaDesigns for a Figma file) · failed (the import could not start; see message) · action_required (the person must act first, such as connecting Figma; see connectUrl and message). A null value deletes that item, and a replace overwrites what was there. An import returns at once with an importId; follow it with get_branding instead of calling this again. A project gets 50 calls with a url a day, whether or not they start an import; ops don't count. Does not start an agent session.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | – | With url: how the site lands on the brand. replace (default): the whole brand becomes the site's ("make my brand from this site"). swap: each part in `parts` becomes the site's in full, nothing else… |
| ops | array | – | Ops in order; fill only the fields your op uses. setColor value: { key, name, hex: "#rrggbb", category: "brand" | "neutral", roles: string[], usage: string | null, position: integer }. setFont value:… |
| parts | array | – | With url: the parts swap and fill take from the site, each written as the ops of its kind: facts → setBusiness and setOverview, colors → setColor, fonts → setFont, logo → setMarks; images adds the si… |
| projectId | string | yes | The project whose saved brand to change. |
| url | string | – | Import the brand from this public site instead of ops (add https:// if missing). Replo reads it on its servers into facts, palette, fonts, marks, brief, design notes and screenshots, and writes them… |
No output schema declared.
No examples provided.
update_file Update file ~59
Rename or move an entry within its project. Set parentId to null to move it to My Files. Existing content is preserved; conflicts never overwrite.
| Name | Type | Req | Description |
|---|---|---|---|
| fileId | string | yes | – |
| name | string | – | – |
| parentId | – | – | – |
No output schema declared.
No examples provided.
update_product Update product ~65
Change the current catalog details of a Replo-managed product. Null values clear nullable fields.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | – |
| externalCheckoutUrl | – | – | – |
| productId | string | yes | – |
| slug | – | – | – |
| status | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
update_project Update project ~136
Update the supplied settings of a Replo project: name, time zone, currency, support email, or checkoutProvider. Changing checkoutProvider affects checkout on the project's sites after publication; Shopify checkout requires a connected store and Replo checkout requires payments onboarding. Publishing is a separate action.
| Name | Type | Req | Description |
|---|---|---|---|
| checkoutProvider | string | – | – |
| currency | string | – | Currency |
| industryCategoryId | – | – | What the business sells or does: an industry category id from find_industry_categories. Null clears it. |
| name | string | – | – |
| projectId | string | yes | – |
| supportEmail | – | – | – |
| timeZone | string | – | – |
No output schema declared.
No examples provided.
update_site Update site ~109
Rename a Replo site's dashboard display name. This does not change its SEO page title, which lives in the site's layout metadata, or its published page content. Use list_sites to find site IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The new human-readable display name for the site. This is the site's name shown in the dashboard, distinct from the SEO page title in the site's layout metadata. |
| siteId | string | yes | The ID of the site to rename. Use list_sites to find site IDs. |
No output schema declared.
No examples provided.
update_site_metadata Update site metadata ~187
Update site-wide SEO title, description, social preview, favicon references, or search visibility in the selected site's root layout. Does not rename the dashboard label. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
| Name | Type | Req | Description |
|---|---|---|---|
| instructions | string | yes | Requested changes for this operation only. Include necessary references, not conversation history, credentials, or unrelated personal data. |
| sessionId | string | – | Omit to start this operation. To continue, supply the returned sessionId with the same operation and target; mismatches and legacy sessions are rejected. |
| siteId | string | yes | Site ID from list_sites. |
No output schema declared.
No examples provided.
update_site_navigation Update site navigation ~183
Update the selected site's shared navigation, header, or footer in its layout and shared components. Shared component changes affect all pages using them. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
| Name | Type | Req | Description |
|---|---|---|---|
| instructions | string | yes | Requested changes for this operation only. Include necessary references, not conversation history, credentials, or unrelated personal data. |
| sessionId | string | – | Omit to start this operation. To continue, supply the returned sessionId with the same operation and target; mismatches and legacy sessions are rejected. |
| siteId | string | yes | Site ID from list_sites. |
No output schema declared.
No examples provided.
update_site_tracking Update site tracking ~200
Add, change, or remove a user-requested analytics or marketing script in the selected site's root layout. Name the provider, identifiers, and requested behavior. After publication, the script may send visitor data to that provider. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
| Name | Type | Req | Description |
|---|---|---|---|
| instructions | string | yes | Requested changes for this operation only. Include necessary references, not conversation history, credentials, or unrelated personal data. |
| sessionId | string | – | Omit to start this operation. To continue, supply the returned sessionId with the same operation and target; mismatches and legacy sessions are rejected. |
| siteId | string | yes | Site ID from list_sites. |
No output schema declared.
No examples provided.
upload_asset Upload asset ~84
Import a file or publicly accessible URL into a project's asset library. Replo generates a semantic-search embedding by default.
| Name | Type | Req | Description |
|---|---|---|---|
| altText | string | – | – |
| assetFile | object | – | – |
| generateEmbedding | boolean | – | – |
| name | string | – | – |
| projectId | string | yes | – |
| tags | array | – | – |
| url | string | – | – |
No output schema declared.
No examples provided.
verify_custom_domain Verify custom domain ~52
Check DNS for a pending or stale custom domain and activate it when records have propagated. If verification cannot complete yet, the tool returns the current domain status instead of failing.
| Name | Type | Req | Description |
|---|---|---|---|
| customDomainId | string | yes | – |
No output schema declared.
No examples provided.
How do I install the Replo MCP server?
Replo is a hosted endpoint at https://api.replo.app/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.replo.app
claude mcp add --transport http replohq-replo 'https://api.replo.app/v1/mcp'
What is the Replo MCP server?
Replo is an MCP server listed in the public MCP registry as io.github.replohq/replo. Research competitors and build, edit, and manage ecommerce sites from your AI assistant. This page covers its hosted endpoint (https://api.replo.app/v1/mcp).
Is the Replo MCP server safe to use?
Replo scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Replo MCP server expose?
Replo exposes 96 tools: get_agent_session, resolve_agent_interaction, abort_agent_session, query_replo_analytics, list_sites, and 91 more. Their descriptions and schemas cost roughly 21,322 tokens of context every time the server is loaded.
Does the Replo MCP server require authentication?
No. We connected to Replo without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Replo MCP server still maintained?
Replo is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.