Replo
by replohq · remote · no sign-in to list tools · v1.0.0 · published by GitHub user replohq
Research competitors and build, edit, and manage ecommerce sites from your AI assistant.
77 tools: 21 can delete or cancel things, 18 change things and 38 only read.
Scanned Oct 21, 2026
- Deletes or cancels21Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things18Claude Code: ask: see these tools
- Only reads38Claude Code: allow: see these tools
16 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http replo https://api.replo.app/v1/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "resolve_agent_interaction" destructive (destructiveHint: true), and its name says "resolve", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "resolve_agent_interaction" says "resolve": a word for reading.
The server marks "query_replo_analytics" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "query_replo_analytics" says "query": a word for reading.
The server marks "sightglass_list_saved" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sightglass_list_saved" says "list": a word for reading.
The input schema at properties.query.description mentions "Credentials".
What this check looks forMatched text
inputSchema.properties.query.description: "...experience views require experience_id. Credentials and project scope are injected server-s..."
- Infocreate_api_key
The description mentions "credential".
What this check looks forMatched text
description: "...the tool result for storage in a local credential helper or REPLO_API_KEY environment var..."
- Inforeport_bug
The description mentions "credentials".
What this check looks forMatched text
description: "...n, and fixable site-code mistakes. Omit credentials and unrelated customer data. Files feed..."
Show 10 more findingsShow fewer
The description mentions "credentials".
What this check looks forMatched text
description: "...verbatim messages, message references, credentials, or unrelated personal or customer data..."
The input schema at properties.description.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.description.description: "...verbatim messages, message references, credentials, and unrelated personal or customer dat..."
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
- Infocreate_site_page
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
- Infoedit_site_page
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
- Infodelete_site_page
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
77 tools
Deletes or cancels 21Claude Code: deny
abort_agent_sessionCancel the in-progress turn of a Replo session.No findings
Why it is in this group
- The description's first verb is "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
apply_brand_kit_to_siteApply the project's saved brand to the selected site's shared style tokens, fonts, layout, and shared components.1 finding
Why it is in this group
- The name "apply_brand_kit_to_site" says "apply": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it Apply 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_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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
create_or_update_brand_kitCreate or update the project's saved brand: business information, colors, fonts, logos, personas, overviews, and brand-context file tags.1 finding
Why it is in this group
- The name "create_or_update_brand_kit" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it Create 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_kit_to_site separately. Starts an asynchronous internal-agent operation; poll get_agent_session and answer any replacement confirmation before it proceeds.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
create_site_pageCreate a draft page at one route in an existing site.1 finding
Why it is in this group
- The name "create_site_page" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it Create 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 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
delete_site_pageRemove the selected route's draft page.1 finding
Why it is in this group
- The name "delete_site_page" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it Remove 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 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
delete_taskPermanently delete a scheduled Replo task and stop all future runs.No findings
Why it is in this group
- The name "delete_task" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Permanently delete a scheduled Replo task and stop all future runs.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
edit_site_pageEdit the selected site's draft page at one route, including its copy, sections, product display, forms, and page-local components.1 finding
Why it is in this group
- The name "edit_site_page" says "edit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it Edit 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 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
publish_sitePublish a site to make changes live.No findings
Why it is in this group
- The name "publish_site" says "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Publish a site to make changes live. Requires the siteId from list_sites. Builds, packages, uploads, and deploys.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
resolve_agent_interactionResolve one pending Replo agent interaction with the user's explicit answer.1 finding
Why it is in this group
- The name "resolve_agent_interaction" says "resolve": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "resolve_agent_interaction" destructive (destructiveHint: true), and its name says "resolve", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "resolve_agent_interaction" says "resolve": a word for reading.
Description, as the server wrote it Resolve 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 own text only where that step's allowCustom is true; an empty array skips a step. Never infer an answer. Approving or answering resumes the agent, which can then overwrite or delete content, publish, or write to an external service. Returns the updated session status; an interaction that is no longer pending returns an error and nothing is delivered, so call get_agent_session again.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
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)…No findings
Why it is in this group
- The name "set_product_inventory" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
sightglass_delete_boardDelete one of the user's Sightglass boards and everything saved on it.No findings
Why it is in this group
- The name "sightglass_delete_board" says "delete": a word for removing or ending something.
- The description says "cannot be undone".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
sightglass_follow_companiesSet the brands the user follows in Sightglass.No findings
Why it is in this group
- The description's first verb is "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
sightglass_research_companyFind or add a company by website domain and queue background research into its ads, landing pages, store details, and technologies.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
update_fileRename or move an entry within its project.No findings
Why it is in this group
- The name "update_file" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
update_productChange the current catalog details of a Replo-managed product.No findings
Why it is in this group
- The name "update_product" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Change the current catalog details of a Replo-managed product. Null values clear nullable fields.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
update_projectUpdate the supplied settings of a Replo project: name, time zone, currency, support email, or checkoutProvider.No findings
Why it is in this group
- The name "update_project" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
update_siteRename a Replo site's dashboard display name.No findings
Why it is in this group
- The name "update_site" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Rename a Replo site's dashboard display name. This does not change its SEO page title or published page content.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
update_site_metadataUpdate site-wide SEO title, description, social preview, favicon references, or search visibility in the selected site's root layout.1 finding
Why it is in this group
- The name "update_site_metadata" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
update_site_trackingAdd, change, or remove a user-requested analytics or marketing script in the selected site's root layout.1 finding
Why it is in this group
- The name "update_site_tracking" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.instructions.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.instructions.description: "...y references, not conversation history, credentials, or unrelated personal data."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 18Claude Code: ask
connect_custom_domainBegin connecting a custom domain to a Replo site.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Begin 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
connect_replo_accountSign the user in to Replo.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sign 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_api_keyCreate an API key for user-requested local Git development of one Replo project at git.replo.app.1 finding
Why it is in this group
- The name "create_api_key" says "create": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...the tool result for storage in a local credential helper or REPLO_API_KEY environment var..."
Description, as the server wrote it Create 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. Returns the secret once in the tool result for storage in a local credential helper or REPLO_API_KEY environment variable; do not repeat it in chat or commit it. Use list_projects to resolve workspaceId and projectId and list_sites for the clone URL.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_fileCreate a private document or folder in Files.No findings
Why it is in this group
- The name "create_file" says "create": a word for a change.
Description, as the server wrote it Create 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_productCreate a Replo-managed product for native product pages or checkout flows.No findings
Why it is in this group
- The name "create_product" says "create": a word for a change.
Description, as the server wrote it Create a Replo-managed product for native product pages or checkout flows. New products are active immediately.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_projectCreate a Replo project in a workspace selected for the user's requested work.No findings
Why it is in this group
- The name "create_project" says "create": a word for a change.
Description, as the server wrote it Create 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
query_replo_analyticsRun read-only ClickHouse SQL over a project's Replo analytics for traffic, conversion, revenue, and session-level questions.2 findings
Why it is in this group
- The name "query_replo_analytics" says "query": a word for reading.
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The input schema at properties.query.description mentions "Credentials".
What this check looks forMatched text
inputSchema.properties.query.description: "...experience views require experience_id. Credentials and project scope are injected server-s..."
- Warn
The server marks "query_replo_analytics" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "query_replo_analytics" says "query": a word for reading.
Description, as the server wrote it Run 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. Only SELECT/WITH queries are accepted, and project-scoped tables are automatically restricted to the requested project and its authorized same-workspace, same-store siblings. For table columns, query examples, and limits, see the Replo Public API analytics query docs. Also supports connected external metrics through the parameterized views listed in the query input schema. Check get_integration_status before querying; external data can be cached for eight hours and an empty result does not prove zero activity. Use provider tools for discovery or provider-native reports.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
report_bugReport a credible user-reported or directly observed Replo defect, including API, MCP, or documentation defects.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...n, and fixable site-code mistakes. Omit credentials and unrelated customer data. Files feed..."
Description, as the server wrote it Report 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 unknowns; never invent evidence, root cause, or severity. Exclude ordinary bad arguments, missing configuration, and fixable site-code mistakes. Omit credentials and unrelated customer data. Files feedback with Replo's team; continue helping with the user's task. Do not resubmit the same report after success.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
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.No findings
Why it is in this group
- The name "sightglass_copy_creative_to_assets" says "copy": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_create_boardCreate a named board in the user's Sightglass collection.No findings
Why it is in this group
- The name "sightglass_create_board" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
sightglass_list_savedWhat the user has collected in Sightglass.1 finding
Why it is in this group
- The name "sightglass_list_saved" says "list": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "sightglass_list_saved" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sightglass_list_saved" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_update_boardRename one of the user's Sightglass boards.No findings
Why it is in this group
- The name "sightglass_update_board" says "update": a word for a change.
Description, as the server wrote it Rename one of the user's Sightglass boards.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The description's first verb is "start": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
start_plan_upgradeStart buying a Replo plan for a free workspace.No findings
Why it is in this group
- The name "start_plan_upgrade" says "start": a word for a change.
Description, as the server wrote it Start 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 workspace that already has a plan or can't buy this one from chat; chat never changes an existing subscription. Share the url either way. Call only after the user chose the plan, usually from get_plan_options.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
submit_feature_requestSubmit a feature request to Replo when the user asks to send feedback about a missing capability.2 findings
Why it is in this group
- The name "submit_feature_request" says "submit": a word for a change.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...verbatim messages, message references, credentials, or unrelated personal or customer data..."
- Info
The input schema at properties.description.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.description.description: "...verbatim messages, message references, credentials, and unrelated personal or customer dat..."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upload_assetImport a file or publicly accessible URL into a project's asset library.No findings
Why it is in this group
- The name "upload_asset" says "upload": a word for a change.
Description, as the server wrote it Import a file or publicly accessible URL into a project's asset library. Replo generates a semantic-search embedding by default.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
verify_custom_domainCheck DNS for a pending or stale custom domain and activate it when records have propagated.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 38Claude Code: allow
find_assetsFind media and files in a project's asset library using semantic search or library metadata.No findings
Why it is in this group
- The name "find_assets" says "find": a word for reading.
Description, as the server wrote it Find media and files in a project's asset library using semantic search or library metadata.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_ordersFind storefront orders when investigating a payment state or fulfillment state.No findings
Why it is in this group
- The name "find_orders" says "find": a word for reading.
Description, as the server wrote it Find 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 currency's minor units (Stripe convention: 2500 = $25.00 USD, 1999 = ¥1999 JPY), paired with each order's currencyCode.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_productsFind Replo-managed products for catalog, product-page, or checkout work.No findings
Why it is in this group
- The name "find_products" says "find": a word for reading.
Description, as the server wrote it Find 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_agent_sessionRetrieve a Replo session's current status, latest response, tool activity, errors, and pending interactions (permission requests and questions).No findings
Why it is in this group
- The name "get_agent_session" says "get": a word for reading.
Description, as the server wrote it Retrieve 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 pass it to resolve_agent_interaction: a choice takes one option value as the decision; a form takes one answers array per step.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_brand_kitRead the selected project's saved business information, overviews, colors, fonts, logo marks, and personas.No findings
Why it is in this group
- The name "get_brand_kit" says "get": a word for reading.
Description, as the server wrote it Read 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_custom_domain_statusDiagnose a connected custom domain by inspecting its activation state and required DNS records.No findings
Why it is in this group
- The name "get_custom_domain_status" says "get": a word for reading.
Description, as the server wrote it Diagnose a connected custom domain by inspecting its activation state and required DNS records.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_fileRetrieve metadata for an existing Files document or folder by fileId.No findings
Why it is in this group
- The name "get_file" says "get": a word for reading.
Description, as the server wrote it Retrieve metadata for an existing Files document or folder by fileId.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_integration_statusCheck one integration's connection status in the selected Replo project.No findings
Why it is in this group
- The name "get_integration_status" says "get": a word for reading.
Description, as the server wrote it Check 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. externalAnalytics lists supported SQL views and their maximum cache age, not proof the connection can fetch metrics. Check this before querying external metrics, including when a provider's tools are absent from your catalog. Analytics integration keys include triple-whale, contentsquare, intelligems, google-analytics, google-search-console, shopify, and converge. connectFailureMessage explains a failed connection attempt. isAlwaysAvailable identifies a built-in integration; isSettingsManaged identifies setup in integration settings. This tool does not connect an account or change permissions.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_orderInspect the public record of one storefront order: line items, fulfillment, refunds, and event history.No findings
Why it is in this group
- The name "get_order" says "get": a word for reading.
Description, as the server wrote it Inspect 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 USD, 1999 = ¥1999 JPY), paired with the order's currencyCode.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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).No findings
Why it is in this group
- The name "get_plan_options" says "get": a word for reading.
Description, as the server wrote it The 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_productRetrieve the current public catalog details for a specific Replo-managed product.No findings
Why it is in this group
- The name "get_product" says "get": a word for reading.
Description, as the server wrote it Retrieve the current public catalog details for a specific Replo-managed product.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 checko…No findings
Why it is in this group
- The name "get_project" says "get": a word for reading.
Description, as the server wrote it Read 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 fails: connecting Shopify does not switch it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_taskInspect the schedule and current timing of a specific recurring Replo task.No findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
Description, as the server wrote it Inspect the schedule and current timing of a specific recurring Replo task.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_filesList private working documents and folders in a project.No findings
Why it is in this group
- The name "list_files" says "list": a word for reading.
Description, as the server wrote it List private working documents and folders in a project. Omit parentId for My Files. Assets are a separate media library.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_projectsList accessible Replo projects, optionally within one workspace.No findings
Why it is in this group
- The name "list_projects" says "list": a word for reading.
Description, as the server wrote it List 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 are needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_sitesFind the Replo site to inspect, manage, or clone within a project.No findings
Why it is in this group
- The name "list_sites" says "list": a word for reading.
Description, as the server wrote it Find 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: follow next_cursor until has_more is false before concluding a site does not exist. Site names are dashboard labels, not SEO page titles.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tasksList scheduled Replo tasks in a project.No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it List scheduled Replo tasks in a project.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_workspacesThe user's Replo workspaces with each one's plan (free, starter or pro).No findings
Why it is in this group
- The name "list_workspaces" says "list": a word for reading.
Description, as the server wrote it The 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
read_fileRead complete small UTF-8 documents in Files, or obtain a temporary download URL for binary and larger files.No findings
Why it is in this group
- The name "read_file" says "read": a word for reading.
Description, as the server wrote it Read complete small UTF-8 documents in Files, or obtain a temporary download URL for binary and larger files.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_arena_compare" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_find_adsSearch a library of real Meta ads and the landing pages they drive to.No findings
Why it is in this group
- The name "sightglass_find_ads" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_find_anglesA brand's angles: the pitch each ad leans on, for whom; offers sit on top.No findings
Why it is in this group
- The name "sightglass_find_angles" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 i…No findings
Why it is in this group
- The name "sightglass_find_campaigns" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_find_offersOffer campaigns across brands.No findings
Why it is in this group
- The name "sightglass_find_offers" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_find_personas" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_find_site_pagesFind destination pages ads drive to — what users call 'landing pages'.No findings
Why it is in this group
- The name "sightglass_find_site_pages" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_find_technologies" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_find_top_angles" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 n…No findings
Why it is in this group
- The name "sightglass_get_access" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_get_ad" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_get_companyOne company's full profile plus its six nearest competitors.No findings
Why it is in this group
- The name "sightglass_get_company" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 w…No findings
Why it is in this group
- The name "sightglass_get_company_activity" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_get_rankingsThe market view: who holds what share of active ads, week by week.No findings
Why it is in this group
- The name "sightglass_get_rankings" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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…No findings
Why it is in this group
- The name "sightglass_get_site_page" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.No findings
Why it is in this group
- The name "sightglass_get_site_page_versions" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_get_xrayRead an X-ray.No findings
Why it is in this group
- The name "sightglass_get_xray" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_search_companiesSearch Sightglass companies — what users call brands: the business behind one or more Meta advertiser pages, keyed on its domain.No findings
Why it is in this group
- The name "sightglass_search_companies" says "search": a word for reading.
Description, as the server wrote it 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 is spending. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sightglass_showShow a prior Sightglass result to the user as an inline card, in hosts that draw cards.No findings
Why it is in this group
- The name "sightglass_show" says "show": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http replo https://api.replo.app/v1/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__replo__get_agent_session",
"mcp__replo__find_assets",
"mcp__replo__get_custom_domain_status",
"mcp__replo__list_files",
"mcp__replo__get_file",
"mcp__replo__read_file",
"mcp__replo__find_orders",
"mcp__replo__get_order",
"mcp__replo__find_products",
"mcp__replo__get_product",
"mcp__replo__list_projects",
"mcp__replo__get_project",
"mcp__replo__list_sites",
"mcp__replo__list_tasks",
"mcp__replo__get_task",
"mcp__replo__get_integration_status",
"mcp__replo__get_brand_kit",
"mcp__replo__sightglass_show",
"mcp__replo__sightglass_find_ads",
"mcp__replo__sightglass_search_companies",
"mcp__replo__sightglass_get_company",
"mcp__replo__sightglass_get_company_activity",
"mcp__replo__sightglass_get_rankings",
"mcp__replo__sightglass_find_site_pages",
"mcp__replo__sightglass_get_site_page",
"mcp__replo__sightglass_get_ad",
"mcp__replo__sightglass_find_technologies",
"mcp__replo__sightglass_get_access",
"mcp__replo__sightglass_find_campaigns",
"mcp__replo__sightglass_find_offers",
"mcp__replo__sightglass_find_angles",
"mcp__replo__sightglass_find_top_angles",
"mcp__replo__sightglass_find_personas",
"mcp__replo__sightglass_arena_compare",
"mcp__replo__sightglass_get_site_page_versions",
"mcp__replo__sightglass_get_xray",
"mcp__replo__list_workspaces",
"mcp__replo__get_plan_options"
],
"ask": [
"mcp__replo__query_replo_analytics",
"mcp__replo__create_api_key",
"mcp__replo__upload_asset",
"mcp__replo__connect_custom_domain",
"mcp__replo__verify_custom_domain",
"mcp__replo__report_bug",
"mcp__replo__submit_feature_request",
"mcp__replo__create_file",
"mcp__replo__create_product",
"mcp__replo__create_project",
"mcp__replo__create_shared_preview",
"mcp__replo__sightglass_list_saved",
"mcp__replo__sightglass_create_board",
"mcp__replo__sightglass_update_board",
"mcp__replo__sightglass_copy_creative_to_assets",
"mcp__replo__sightglass_xray",
"mcp__replo__connect_replo_account",
"mcp__replo__start_plan_upgrade"
],
"deny": [
"mcp__replo__resolve_agent_interaction",
"mcp__replo__abort_agent_session",
"mcp__replo__update_file",
"mcp__replo__update_product",
"mcp__replo__set_product_inventory",
"mcp__replo__update_project",
"mcp__replo__revoke_shared_preview",
"mcp__replo__update_site",
"mcp__replo__publish_site",
"mcp__replo__delete_task",
"mcp__replo__apply_brand_kit_to_site",
"mcp__replo__update_site_navigation",
"mcp__replo__update_site_metadata",
"mcp__replo__update_site_tracking",
"mcp__replo__create_or_update_brand_kit",
"mcp__replo__create_site_page",
"mcp__replo__edit_site_page",
"mcp__replo__delete_site_page",
"mcp__replo__sightglass_delete_board",
"mcp__replo__sightglass_follow_companies",
"mcp__replo__sightglass_research_company"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as replo. Review it before you use it.
