Replo

io.github.replohq/replo · v1.0.0 · ecommerce

Replo is healthy: it completed an MCP handshake in 2596 ms and exposes 77 tools.

Research competitors and build, edit, and manage ecommerce sites from your AI assistant.

Endpoint: https://api.replo.app/v1/mcp (streamable-http)

No repository listed · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count77
Latency2596 ms
Last checked (UTC)2026-10-19T22:01:01.613Z

Health history

Checked (UTC)StatusLatencyError
2026-10-19T22:01:01.613ZHealthy2596

Tools (77)

get_agent_sessionRetrieve a Replo session's current status, latest response, tool activity, errors, and pending interactions (permission requests and questions). Use to check progress after starting or continuing a session. When pendingInteractions is non-empty, show it to the user and wait for their answer, then pa
resolve_agent_interactionResolve one pending Replo agent interaction with the user's explicit answer. For a permission request, pass type permission and the decision from its response options. For a question, pass type question and one answers array per form step, in order, holding the selected option values, or the user's
abort_agent_sessionCancel the in-progress turn of a Replo session. Cancellation interrupts unfinished work and may leave partial changes. Completed changes are not rolled back, and the session is retained.
query_replo_analyticsRun read-only ClickHouse SQL over a project's Replo analytics for traffic, conversion, revenue, and session-level questions. Queryable public tables are session_attribution, events_computed, currency_exchange_rates, daily_page_rollups, daily_namespace_rollups, and daily_namespace_purchase_rollups. O
create_api_keyCreate an API key for user-requested local Git development of one Replo project at git.replo.app. Defaults to repo.read for cloning and pulling; include repo.write only for authorized pushes. Grants no publishing or workspace administration access. Requires permission to manage the selected project.
find_assetsFind media and files in a project's asset library using semantic search or library metadata.
upload_assetImport a file or publicly accessible URL into a project's asset library. Replo generates a semantic-search embedding by default.
connect_custom_domainBegin connecting a custom domain to a Replo site. This creates a pending domain and returns the DNS records required before verification can activate it. Never connect a Shopify store's primary domain: Shopify runs checkout there.
get_custom_domain_statusDiagnose a connected custom domain by inspecting its activation state and required DNS records.
verify_custom_domainCheck 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.
report_bugReport a credible user-reported or directly observed Replo defect, including API, MCP, or documentation defects. Pass projectId from list_projects. Include expected/actual behavior, reported or performed reproSteps, retry/workaround outcomes, and observed errors or request IDs in errorContext. Mark
submit_feature_requestSubmit 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 per
list_filesList private working documents and folders in a project. Omit parentId for My Files. Assets are a separate media library.
get_fileRetrieve metadata for an existing Files document or folder by fileId.
read_fileRead complete small UTF-8 documents in Files, or obtain a temporary download URL for binary and larger files.
create_fileCreate a private document or folder in Files. Documents require a text, base64, or asset source. Asset sources copy without deleting the source. Folders have no source. Name conflicts never overwrite.
update_fileRename or move an entry within its project. Set parentId to null to move it to My Files. Existing content is preserved; conflicts never overwrite.
find_ordersFind storefront orders when investigating a payment state or fulfillment state. Returns order summaries only: no customer contact details or payment identifiers are included. To look up a known customer's orders, pass their address as the `customerEmail` filter. Money amounts are integers in the cur
get_orderInspect the public record of one storefront order: line items, fulfillment, refunds, and event history. The customer's contact address is masked (`j••••@example.com`) and no payment identifiers are returned. Money amounts are integers in the currency's minor units (Stripe convention: 2500 = $25.00 U
find_productsFind Replo-managed products for catalog, product-page, or checkout work. These are separate from products managed by Shopify or other integrations. If no Replo-managed products are found, tell the user they can connect Shopify from the Replo dashboard.
get_productRetrieve the current public catalog details for a specific Replo-managed product.
create_productCreate a Replo-managed product for native product pages or checkout flows. New products are active immediately.
update_productChange the current catalog details of a Replo-managed product. Null values clear nullable fields.
set_product_inventorySet 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 u
list_projectsList accessible Replo projects, optionally within one workspace. Use to resolve the project for the user's Replo request. Returns paginated projects or setup_required with eligible workspaces when project creation is available. Listing does not create a project. Follow next_cursor when more results
create_projectCreate a Replo project in a workspace selected for the user's requested work. Requires an eligible workspaceId from list_projects and a project name. Returns the created project; this changes the workspace's project list.
get_projectRead one Replo project's settings: name, time zone, currency, support email, and checkoutProvider ('shopify' means Shopify Checkout, 'replo' means Replo checkout, null means checkout is off). Check checkoutProvider before promising Shopify checkout or when a Shopify-connected site's Checkout button
update_projectUpdate 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
create_shared_previewCreate or recover a public live preview link to a site page without publishing. Anyone with the URL can view the draft from your account's existing preview workspace. Use projectId from list_projects and siteId from list_sites; supply the page route and omit locale for the default. Page availability
revoke_shared_previewDisable 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.
list_sitesFind the Replo site to inspect, manage, or clone within a project. Each site returns clone_url, the URL used to clone that site's code over Git, and is_default. When the user does not name a site, use the site with is_default true; if no site is default, ask which one to use. Results are paginated:
update_siteRename a Replo site's dashboard display name. This does not change its SEO page title or published page content.
publish_sitePublish a site to make changes live. Requires the siteId from list_sites. Builds, packages, uploads, and deploys.
list_tasksList scheduled Replo tasks in a project.
get_taskInspect the schedule and current timing of a specific recurring Replo task.
delete_taskPermanently delete a scheduled Replo task and stop all future runs.
apply_brand_kit_to_siteApply the project's saved brand to the selected site's shared style tokens, fonts, layout, and shared components. Affects that site's drafts, not the saved brand kit. Use create_or_update_brand_kit first if there is no saved brand. Starts an asynchronous internal-agent operation; poll get_agent_sess
update_site_navigationUpdate 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 ta
update_site_metadataUpdate 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
update_site_trackingAdd, 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_sess
get_integration_statusCheck one integration's connection status in the selected Replo project. Returns connected, not_connected, or needs_reconnect, along with a dashboard URL for setup when available. connectFailureMessage explains a failed connection attempt. isAlwaysAvailable identifies a built-in integration; isSetti
get_brand_kitRead the selected project's saved business information, overviews, colors, fonts, logo marks, and personas. Returns null when no brand exists. Makes no changes and does not start an agent session.
create_or_update_brand_kitCreate or update the project's saved brand: business information, colors, fonts, logos, personas, overviews, and brand-context file tags. May import from a public website URL; replacement can delete prior brand data and import assets/references. Does not restyle or publish a site: use apply_brand_ki
create_site_pageCreate a draft page at one route in an existing site. Preserve existing pages. Supply copy, layout, product references, and design requirements in instructions. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchan
edit_site_pageEdit the selected site's draft page at one route, including its copy, sections, product display, forms, and page-local components. Shared component edits may affect other pages using them. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool w
delete_site_pageRemove the selected route's draft page. Its published copy remains live until a separate publication removes it. Does not delete the site or other routes. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged ta
sightglass_showShow 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 th
sightglass_find_adsSearch 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, of
sightglass_search_companiesSearch 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
sightglass_get_companyOne 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_activi
sightglass_get_company_activityHow 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 tren
sightglass_get_rankingsThe 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`
sightglass_find_site_pagesFind 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`
sightglass_get_site_pageFetch 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 (`estimat
sightglass_get_adFetch 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
sightglass_find_technologiesThe 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, pas
sightglass_get_accessWhat 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
sightglass_list_savedWhat 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 pa
sightglass_create_boardCreate 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.
sightglass_update_boardRename one of the user's Sightglass boards.
sightglass_delete_boardDelete 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.
sightglass_follow_companiesSet 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.
sightglass_research_companyFind 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
sightglass_copy_creative_to_assetsCopy 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.
sightglass_find_campaignsA 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 st
sightglass_find_offersOffer 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
sightglass_find_anglesA 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 a
sightglass_find_top_anglesThe 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 usin
sightglass_find_personasA 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 of
sightglass_arena_comparePlace 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
sightglass_get_site_page_versionsHow 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 com
sightglass_xrayStart 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
sightglass_get_xrayRead 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 gr
connect_replo_accountSign the user in to Replo. Call this only after the user agrees to connect an account, usually after a tool returned status sign_in_required; it opens the client's sign-in window. Once signed in it returns who they are. Then call list_workspaces.
list_workspacesThe user's Replo workspaces with each one's plan (free, starter or pro). Call right after sign-in: use the only workspace, or ask the user once which to use when there are several, then pass its id as workspaceId on Sightglass calls. Also use it when the user wants to switch workspaces.
get_plan_optionsThe workspace's current Replo plan, and the Starter and Pro plans' monthly prices and what each adds in Sightglass (sales and traffic estimates, trends, more brand research). Use it when a result names a locked field or a higher plan, or the user asks about upgrading.
start_plan_upgradeStart buying a Replo plan for a free workspace. Returns { status, url, message }: status checkout means url is a Stripe Checkout link for the user to open and pay, and nothing is charged until they finish there. status manage_in_dashboard means url is the workspace's billing settings, for a workspac