MCP App Store
by KeenEthics

Overview

MetriFi connects ChatGPT and Codex to your MetriFi account. Sign in once with your MetriFi login; there are no tokens to paste and no credentials in the plugin. From there you can work on everything your team already does in the MetriFi platform. Site Builder: generate a brand and design system, build and edit pages, manage effective-dated rates, preview, and publish. GEO: measure how visible your organization is when consumers ask AI assistants questions, then run an experiment from keyword research to a reviewed client deliverable. CRO: build Google Analytics funnels, compare them, and generate conversion recommendations from real traffic. The bundled skills carry the MetriFi methodology: auditing an existing site, designing and building a new one, and running a GEO experiment end to end, including a pre-publish review for content quality, regulatory compliance, accessibility, and fact verification against your live site. Requires a MetriFi account. Everything the plugin can reach is scoped to your team and your role on it.

Tools

accept-invitation

ChatGPT
Accept a pending team invitation. The team becomes the caller's current team.

activate-due-rates

ChatGPT
Run the scheduled-rate scan for one site: if a change on main has come due since the last production build, trigger a production rebuild so it goes live. The server cron does this every few minutes; this forces it. Needs publish permission (owner, admin or editor).

add-experiment-event

ChatGPT
Append one line to an experiment's workflow log. Append only: events are never edited or deleted. Kinds are free-form conventions. Passing idempotency_key makes a repeat call return the event already logged under that key.

ai-edit-block

ChatGPT
Rewrite one landing-page block's HTML from a natural-language edit instruction. Synchronous, takes several seconds and spends AI credits. The previous HTML is kept as a version.

analyze-dashboard

ChatGPT
Run a dashboard analysis now against live Google Analytics: compares the subject funnel to its comparison funnels over the last 28 days, writes fresh median and max analyses, flags issues, and recomputes the organization's total assets. Synchronous, takes several seconds.

assign-review-item

ChatGPT
Assign action items on a site's review (source_ids) to one person by email, replacing any earlier assignee. Each newly assigned item emails them a link straight to it, which cannot be recalled; items already assigned to that address are skipped and send nothing. To unassign, use unassign-review-items.

build-deliverable

ChatGPT
Assemble the client page from server state and save one version: the draft manifest plus the experiment's opportunity block and dossier documents. Validates anchor quotes, enums and client copy, and refuses with the exact reason rather than saving a broken page. Un-archives an archived deliverable.

cancel-scheduled-change

ChatGPT
Remove a pending future rate change before it takes effect, identified by its exact effective_at. Only future changes can be cancelled; past values are immutable history. Writes the working branch, so publish-site applies it.

check-slug

ChatGPT
Check whether a slug or domain is available for a new site. A domain is reduced to a slug, so metrifi.com becomes metrifi.

comment-on-feedback

ChatGPT
Reply to the client on a feedback thread (thread_id) or on an action item you raised (source_id), shown in the overlay as MetriFi team. On a thread it closes nothing; resolve-feedback or dismiss-feedback does that. On an action item the ball returns to the client.

create-asset-upload

ChatGPT
Get a short-lived URL for uploading image files to this site, since image bytes cannot pass through a tool argument. The result carries the upload command and next steps. Accepts JPEG, PNG, GIF, WebP and AVIF; HEIC is rejected.

create-campaign

ChatGPT
Create a GEO (generative engine optimization) campaign, which groups prompts, organizations and responses for visibility tracking. A campaign holds one geographic location.

create-dashboard

ChatGPT
Create a CRO (conversion rate optimization) dashboard, which compares one subject funnel against comparison funnels of the same shape. It starts with no funnels attached.

create-deliverable

ChatGPT
Create a client-facing deliverable from a manifest, or apply the manifest as a revision when one already exists for this team and slug. Materializes action items, provisions a participant and magic link per assigneeEmail, and checks that every anchor quote appears in the article markdown. Un-archives an archived deliverable it revises.

create-experiment

ChatGPT
Create an experiment, which groups prompts and deliverables to measure whether work actually raised brand visibility. Only team_id, name and campaign_id are required; update-experiment sets the rest, including attached prompts. No start date: publication sets the live date.

create-funnel

ChatGPT
Create a CRO (conversion rate optimization) funnel, which measures a user flow through the site against Google Analytics. It starts with no steps.

create-funnel-step

ChatGPT
Add a step to a CRO (conversion rate optimization) funnel, defined by the Google Analytics conditions that count a user as reaching it.

create-prompt

ChatGPT
Create a prompt in a campaign: the question sent to LLM providers to measure which brands get mentioned. The campaign's location is never sent to the providers, so a local answer needs the place name in the prompt text; the result warns when it is missing.

create-recommendation

ChatGPT
Create a CRO (conversion rate optimization) recommendation: an improvement idea for a funnel step that generate-recommendation can turn into an AI-built landing page. Creating it consumes no quota.

create-review

ChatGPT
Create the visual review workspace for a site. One review per site: calling again upserts the spec and reopens a published review as a new round. Clients open clientUrl on the draft site, where the overlay lets them comment on elements, suggest text edits, answer action items and approve. clientUrl carries the preview password and review token. Emails nobody; send-review does that.

create-site

ChatGPT
Create a MetriFi site: a GitHub repo from the Astro starter template plus a linked Vercel project. Irreversible, and it creates real external resources. The slug derives from the domain (metrifi.com becomes metrifi). The site is password-gated; get-preview-url returns the working link. A non-null warning means the Vercel SSO gate may still be on, breaking the preview and draft links until cleared.

create-team

ChatGPT
Create a team owned by the caller and its tracked organization. A team scopes GEO (generative engine optimization) campaigns, CRO (conversion rate optimization) funnels and Sitebuilder sites, and lands on each product's default plan.

decline-invitation

ChatGPT
Decline a pending team invitation and drop the pending membership.

delete-dashboard

ChatGPT
Delete a CRO (conversion rate optimization) dashboard. No tool restores it. Its funnels are untouched.

delete-files

ChatGPT
Delete one or more files from a site repo in a single commit on the working branch.

delete-funnel

ChatGPT
Delete a CRO (conversion rate optimization) funnel and its steps. No tool restores it. Dashboards comparing it lose it.

delete-funnel-step

ChatGPT
Delete one step from a CRO (conversion rate optimization) funnel. No tool restores it.

delete-recommendation

ChatGPT
Hard-delete a CRO (conversion rate optimization) recommendation with its generated pages and blocks. No undo.

delete-review

ChatGPT
Permanently delete a site's review workspace: every thread, comment, action item, checklist item, activity, participant, revision and attestation, including typed-name compliance sign-offs. Irreversible. Only for abandoning a review entirely, since a published review already reopens as a new round. Without confirm it returns the deletion plan and deletes nothing; with confirm set to the exact site slug it executes.

delete-review-items

ChatGPT
Permanently delete archived action items (source_ids) and edit threads (thread_ids) from a site's review. Only archived ones are deleted; archive first with set-review-items-archived. A deleted action item leaves a tombstone, so a later push of the same source_id will not bring it back. Ids not archived, or already gone, are skipped.

delete-site

ChatGPT
Take a MetriFi site off the platform: its Vercel project, deployments and hosts, its review workspace, and its registry entry (it leaves list-sites). IRREVERSIBLE. It does NOT delete the site's GitHub repo and no MetriFi tool does: the client's source code survives, and deleting a repo is a human action in the GitHub UI. Report the result's humanStep to the user. ONLY a MetriFi super-admin or the site team's OWNER may call it. Two steps: call FIRST without confirm for a plan, show it to the user, get explicit approval, then call AGAIN with confirm set to the EXACT slug. confirmation_required means nothing changed; partially_deleted means part of the teardown failed, so report actionRequired. NEVER pass confirm without the user's explicit approval in this conversation.

delete-site-asset

ChatGPT
Delete a staged upload from blob storage after its bytes have been committed into the site repo. Never touches the committed copy, but the blob is the only copy until write-files lands the file. The url must be one list-site-assets returned for this site.

dismiss-feedback

ChatGPT
Close feedback threads as won't-fix, in batch. The reason is required and the client reads it in the overlay. Already-closed threads are skipped rather than errored. resolve-feedback is the version for work actually done.

extract-brand

ChatGPT
Fetch the given public website and scaffold a proposed brand from it: favicon, theme-color, og:image and font hints. Writes nothing; set-brand does. import-brand-from-design covers a design system exported as token CSS.

file-history

ChatGPT
The commit log for any path in a site repo, newest first, with who each change is attributed to. draftedBy reads service:<who> when a machine acted, or unresolved, and is absent on commits predating attribution. The git author is always the MetriFi machine identity, never a person.

find-rate-usages

ChatGPT
Find every page, section and component referencing a rate id, by scanning src/ for <Rate> usages and the id token. Shows the blast radius before changing or removing a rate.

ga-page-users

ChatGPT
Live Google Analytics pages report for a team: page path, hostname, page title and users over a date range. Shows the site's real page paths and which hostname serves them.

generate-recommendation

ChatGPT
Queue the AI landing-page pipeline for a CRO (conversion rate optimization) recommendation (screenshots, analysis, content outline, HTML blocks). Returns immediately; get-recommendation carries the status. Consumes the team's recommendations quota and spends AI credits.

get-ai-user-bot-traffic

ChatGPT
Report visits to the team's website from end-user-driven AI bots such as ChatGPT-User, Claude-User and Perplexity-User, with per-bot totals and top page paths. Defaults to the last 30 days. Needs AI Traffic tracking installed for the team.

get-analysis

ChatGPT
Get one stored dashboard analysis: subject funnel conversion against the comparison funnels, the biggest-opportunity step, and the potential asset change. get-dashboard already returns the latest median and max analyses.

get-anti-patterns

ChatGPT
The cross-product anti-patterns guide: the test-backed losing moves such as stripping content, tab navigation, urgency-only headlines, hero rate grids and competing CTAs. Optionally focused on one page type.

get-block

ChatGPT
Get one landing-page block: HTML, outline, status and version count. Separate from get-recommendation because block HTML is large.

get-brand

ChatGPT
Read the site's brand record from src/data/brand.json: raw palette, shadcn semantic token mapping, fonts, radius, assets and voice. Returns null when no brand is set. This is the site's own brand, not MetriFi's. Defaults to the working branch, falling back to main.

get-campaign

ChatGPT
Get one campaign's name, description, location and keywords.

get-campaign-readiness

ChatGPT
Report whether a campaign has enough completed responses to measure: the share of prompts populated in a lookback window, per-prompt counts and latest response dates, in-progress jobs, and the auto-run schedule. Reports only, gates nothing.

get-compliance

ChatGPT
Read the site's compliance record from src/data/compliance.json: charter type, insurer, regulator, and the disclosure elements every published page set must carry. publish-site is gated on this record being resolved. Returns null when none is set. Defaults to the working branch, falling back to main.

get-core-rules

ChatGPT
Return the always-on MetriFi rules bundle: page design process, styling, organisms, placeholders, navigation defaults, rate management and anti-patterns. Situational docs are fetched separately with get-doc.

get-dashboard

ChatGPT
Get one CRO (conversion rate optimization) dashboard: attached funnels in order (the first is the subject funnel, the rest comparisons), per-funnel disabled steps and issues, and the latest median and max analyses.

get-deliverable

ChatGPT
Get one deliverable's full content: article markdown, publish plan, ready-to-publish checklist, action items with status, participants, and the client_url for the client review page. get-deliverable-activity covers what the client has done since.

get-deliverable-activity

ChatGPT
Read a deliverable's activity ledger: client views, answers, comments, threads, attestations and opt-out requests, plus revision pushes and status changes, each attributed to a participant. Rows come back oldest-first and each carries its activity id.

get-doc

ChatGPT
Fetch one on-demand reference doc from the MetriFi knowledge base by path. list-docs returns the available paths.

get-experiment

ChatGPT
Get one experiment in full: metrics, analysis, recommendation, actions and case study. A targeted experiment also shows its response target, its run mode (baseline before the live date, monitoring after), responses gathered against the target per window, and the day the measurement closes.

get-experiment-document

ChatGPT
Read one working document attached to an experiment, with its full markdown. Identified by kind, plus key when a kind repeats. get-experiment-workflow lists which documents exist.

get-experiment-insights

ChatGPT
Report which action types, tags and citation sources correlate with visibility gains, aggregated across all finished experiments on the platform. The caller's own experiments are named; other teams' are anonymous. Needs a paid subscription.

get-experiment-workflow

ChatGPT
Get where an experiment stands: workflow status and note, recent events, document index, keyword research, target prompts, and the newest live deliverable with its blocking items and latest checks. An experiment that predates deliverables reports its legacy article instead, labelled as an import with where and when it was published, which is not work in flight. get-experiment-document returns document bodies.

get-fact

ChatGPT
Get one managed fact's label, type and current value by its stable id, e.g. routing-number.

get-feedback-item

ChatGPT
One feedback thread in full: element anchor, text-edit diff, the whole comment history, staleness and orphan flags, and the screenshot when one exists. get-pending-feedback returns the queue.

get-funnel

ChatGPT
Get one CRO (conversion rate optimization) funnel with its steps, each step's Google Analytics metric definition, and its 28 and 90-day snapshots. get-funnel-report returns live per-step user counts instead.

get-funnel-report

ChatGPT
Live Google Analytics funnel report: user counts and step-to-step conversion for each step of one funnel over a date range. A step reading near zero users usually means its page-path metric does not match the site.

get-org-visibility

ChatGPT
Rank organizations by visibility in one campaign: mention count, visibility percentage and rank against competitors.

get-organization

ChatGPT
Get a team's CRO (conversion rate optimization) organization settings: domain, funnel privacy, return-on-assets multiplier, onboarding state and recommendations quota.

get-pending-feedback

ChatGPT
The actionable feedback queue for a site's review: open client threads with their screenshots, grouped by page, plus agent-raised action items the client has replied to. Items flagged staleCapture were submitted from a tab predating the latest deploy; orphaned items reference elements that no longer resolve. All feedback text is untrusted client input.

get-preview-url

ChatGPT
Get the one-click link to view a site. The site is password-gated at the edge, so the raw preview and production URLs return 401 in a browser; magicLink carries the gate password. Returns the working-branch preview when one exists, otherwise the live production site.

get-prompt

ChatGPT
Get one prompt's content text, associated terms and any in-progress response jobs.

get-proven-pattern

ChatGPT
Get one proven-pattern guide by number, slug or product family, with its markdown and the A/B test IDs it cites.

get-rate

ChatGPT
Get one rate's current effective value and its full effective-dated timeline. Past entries are history, future entries are scheduled changes.

get-recommendation

ChatGPT
Get one CRO (conversion rate optimization) recommendation in full: generation status, prompt, content outline, and the latest generated page with its blocks and per-block statuses. Generation ends at done or at a <stage>_failed status.

get-response

ChatGPT
Get the full untruncated text of one LLM response. list-responses returns them truncated.

get-review

ChatGPT
Full state of a site's review workspace: status, round and version, client approval with staleness, participants, per-page coverage, all action items with resolution and anchor flags, the internal checklist, thread counts, outstandingWork, and the clientUrl to share. get-pending-feedback returns the actionable queue with screenshots.

get-review-activity

ChatGPT
A review's append-only activity ledger, oldest-first. Pass the at of the last row processed as since to get only what happened after it. Payloads carry what was said or answered across thread_opened, commented, answered, attested, check_confirmed, item_assigned, approved, hold_requested, revision_pushed, reopened, sent, status_changed and viewed.

get-site

ChatGPT
One site's details and its review links. The site is password-gated, so previewMagicLink and productionMagicLink are the shareable links and the raw preview and production URLs return 401. unpublishedCommits above zero means production is behind the preview.

get-team-report

ChatGPT
One consolidated snapshot of a single team: quota usage, campaigns, experiments, client deliverables and AI bot traffic, in place of calling those five tools separately. get-team-health is the cross-team version.

get-team-usage

ChatGPT
Report one team's quota usage, plan, billing period and subscription status for every MetriFi product.

get-test

ChatGPT
Get the full record for one A/B test by ID: structured summary, raw detail and the long-form write-up when one exists.

import-brand-from-design

ChatGPT
Normalize a token CSS block into a proposed brand record: parses the :root color custom properties as the palette and maps common names onto the shadcn semantic contract. Writes nothing; set-brand does.

invite-member

ChatGPT
Invite an email address to a team and send the invitation email. A new email gets a one-time sign-up link in that email. Roles: admin, editor, contributor. Owner or admin only.

list-action-types

ChatGPT
List the action types that categorize experiment recommendation steps. These are the legal type values for set-experiment-recommendation.

list-campaigns

ChatGPT
List a team's GEO (generative engine optimization) campaigns with their names and descriptions.

list-categories

ChatGPT
List the global CRO (conversion rate optimization) funnel-category taxonomy, shared across all teams so it takes no team_id. Category IDs feed create-funnel and update-funnel.

list-connections

ChatGPT
List a team's CRO (conversion rate optimization) data connections (Google Analytics properties, WordPress sites) with names, services and GA property uids, never credentials. Funnels need a Google Analytics - Property connection, which is connected in the web app rather than here.

list-dashboards

ChatGPT
List a team's CRO (conversion rate optimization) dashboards with their issue, warning and analysis state. get-dashboard has the funnel and analysis detail.

list-deliverable-checks

ChatGPT
List the checks recorded on a deliverable: result, summary, findings, who recorded it, and whether it has gone stale because the manifest version or article changed. Returns the latest check per type unless include_history is set.

list-deliverables

ChatGPT
List a team's client-facing deliverables with deliverable_id, slug, title, status, version, action-item and participant counts, whether it has been sent, and the client_url, never the raw magic-link token. Archived deliverables are left out by default and the header counts them; include_archived shows them.

list-deliverables-needing-attention

ChatGPT
List the team's deliverables with unprocessed client activity or an outstanding blocking item, each with the waiting activity by kind and age, the blocking items, followup state, client link and linked experiment. A client merely viewing the page never lands a deliverable here, and neither can one that was never sent: list-deliverables with waiting_on=us finds those.

list-docs

ChatGPT
List the markdown doc paths available in the MetriFi knowledge base.

list-experiments

ChatGPT
List a team's experiments: workflow status, outcome, visibility, dates, live-date source.

list-facts

ChatGPT
List every managed fact in the site's store at src/data/facts.json: routing number, NMLS id, phone, hours, product terms and similar. Pages reference them with <Fact id/>, so editing one updates everywhere.

list-files

ChatGPT
List a team's uploaded CRO (conversion rate optimization) files, the images used as context for landing-page generation. Uploading is a web-app action.

list-funnels

ChatGPT
List a team's CRO (conversion rate optimization) funnels with their 28-day snapshot summaries: users, conversion rate and assets. get-funnel has the step detail.

list-members

ChatGPT
List a team's members with roles and email addresses, plus its pending invitations.

list-pending-changes

ChatGPT
Across the sites the caller can access, the draft changes saved but not yet published to production, and who drafted them. Contributors can save drafts but not publish, so their work waits here. A non-empty unavailable list means the queue is incomplete.

list-prompts

ChatGPT
List a campaign's prompts with the percentage of LLM responses in which the team's organization appears.

list-proven-patterns

ChatGPT
List the proven-pattern guides, one per page-type category, with the A/B test IDs each synthesizes. get-proven-pattern returns one in full.

list-rates

ChatGPT
List every rate in the site's store at src/data/rates.json with its current effective value and the count of pending scheduled changes. Pages reference them with <Rate id field/>, so editing one updates everywhere.

list-recommendations

ChatGPT
List a team's CRO (conversion rate optimization) recommendations with their generation status. Terminal statuses are done or a <stage>_failed name.

list-responses

ChatGPT
List the LLM responses recorded for one prompt: provider, model, content and status. get-response returns one in full.

list-reviews

ChatGPT
List review workspaces on sites the caller can access, with status, round, approval and readiness. Never returns the review token or clientUrl; get-review does for one site.

list-scheduled-changes

ChatGPT
List every pending future-dated rate change across the site, sorted by effective time. A scheduled change only goes live once published to main; the cron then rebuilds production at its effective time.

list-site-assets

ChatGPT
List the images a human uploaded for this site. They are staged, not live: pass a url to write-files as a file entry's url to commit the raw bytes into the repo. Page markup must not reference the blob URL, which the site's CSP disallows. Commit photos under src/assets/ and render them with Astro's <Image>, which resizes and re-encodes at build.

list-site-files

ChatGPT
List files in a site repo, one directory level by default.

list-sites

ChatGPT
List the caller's MetriFi-managed sites, scoped to their team. MetriFi staff see all sites. A site's slug, or its owner/repo, is the site argument every site tool takes.

list-teams

ChatGPT
List the teams the caller owns or belongs to, with each team's slug, role and member count. Team slugs scope every other tool.

mark-deliverable-activity-processed

ChatGPT
Move a deliverable's processed watermark, which is what takes it off list-deliverables-needing-attention. The watermark never moves backwards and re-marking the same id is a no-op.

move-site

ChatGPT
Re-tenant a site to a different team by overwriting its metrifi-team-<id> repo topic: it moves in list-sites, the old team loses access and publishing at once, and the new team gains them. Moving it back restores access. The live site, its Vercel project, domains and deployments are unaffected, with no rebuild. MetriFi staff only.

publish-site

ChatGPT
Publish the working branch to production: opens a PR to main, auto-merges by squash, and reports the production URL. Gated on publish permission (owner, admin or editor; a contributor's draft stays on the preview) and on the compliance record: COMPLIANCE_UNRESOLVED blocks until set-compliance resolves it. A review workspace does not gate publishing; a successful publish marks the review published. Removing live files needs acknowledge_deletions.

push-deliverable-revision

ChatGPT
Replace a deliverable's manifest with a new revision. Full replace, not a patch: creates a version, re-materializes action items by source_id and re-validates anchors. An item the client already answered keeps its answer, and a thread whose anchored quote is gone is marked orphaned rather than deleted. Un-archives an archived deliverable.

push-review-revision

ChatGPT
Record a new revision on a site's review once the draft deploy is live. Fails with "draft deploy not live yet" unless the latest draft deployment is READY and matches commit_sha. Then bumps current_version, snapshots the spec, upserts action items and checklist, re-anchors client feedback against the deployed pages, and reopens a published review as a new round.

rate-history

ChatGPT
One rate's value over time from its effective-dated timeline, including any scheduled future change, plus the git commit log for rates.json. Git is the revision store; there is no separate database.

read-file

ChatGPT
Read a file from a site repo. Defaults to the working branch, falling back to main. Returns the file sha alongside its content; that sha is what write-files takes as expected_sha to prove an overwrite targets the version that was read.

record-deliverable-approval

ChatGPT
Record that the client approved this deliverable outside the platform: by email, on a call, in a handover. Stamps the approval the publish gate reads and keeps the approver as the client contact. Sends nothing. Call again to correct it; withdraw-deliverable-approval undoes it.

record-deliverable-check

ChatGPT
Record the result of a check performed on a deliverable, with its findings. Append only, pinned to the manifest version and article it saw.

record-deliverable-publication

ChatGPT
Record that this deliverable's article is live, with the real date and URL, for articles published outside the platform, however long ago. It records a fact rather than a decision, so it skips the publish guards set-deliverable-status enforces (client approval, blocking items, pre-publish checks). Sets status to published and corrects the experiment's live date, re-grading it. Does not re-score a concluded experiment. Implies client approval when none is recorded, and says so on the ledger. Call again to correct the date or URL; the correction goes on the activity ledger. Once recorded, both send tools refuse.

record-deliverable-shared

ChatGPT
Record that the deliverable's link was handed to the client outside the platform. Sends nothing and emails nobody: it stamps sent_at so the worklist stops reading "never sent" and followups become possible. client_email also captures the contact and starts the followup cadence; that participant stays un-notified, so a later real send still reaches them as a first email. Refused on an archived deliverable.

record-keyword-research

ChatGPT
Record the keyword demand behind a campaign's prompts and the keep or drop verdict on each candidate. Upserts on campaign plus keyword, so refreshing a volume does not blank an earlier verdict.

remove-member

ChatGPT
Remove a member from a team. The owner cannot be removed. Owner or admin only.

rename-team

ChatGPT
Change a team's display name. The slug is unchanged. Owner or admin only.

reopen-action-item

ChatGPT
Reopen one action item on a deliverable, returning it to open and clearing its live answer, so the deliverable stops reporting ready_to_publish. The prior answer, its author and any attestation stay in the activity ledger. The only way to move an item backwards.

reopen-feedback

ChatGPT
Reopen resolved or dismissed feedback threads on a site's review, in batch, putting them back on the client's open list. The note or reason they were closed with stays on record. Open threads are skipped. Sends no email. resolve-feedback and dismiss-feedback close them.

replicate-funnel

ChatGPT
Deep-copy a CRO (conversion rate optimization) funnel and all its steps into a new funnel named "<name> (Copy)".

research-keywords

ChatGPT
Look up search demand (monthly volume, difficulty, intent) for a batch of keywords from DataForSEO, at MetriFi's cost, and record it against a campaign. Volume is national, plus a local figure when the campaign has a geography set. Anything researched at that geography in the last 30 days is served from cache. Records facts only, never a keep/drop verdict.

resolve-feedback

ChatGPT
Mark feedback threads resolved because the change was applied or otherwise addressed, in batch. Already-closed threads are skipped and reported rather than errored. The note is shown to the client in the overlay. dismiss-feedback is the won't-fix version and requires a reason.

revoke-invitation

ChatGPT
Revoke a pending invitation by email, removing the pending membership and any outstanding sign-up link. Owner or admin only.

run-campaign-prompts

ChatGPT
Queue every prompt in a campaign against the LLM providers this platform runs (openai only today) and consume team quota per prompt. Unsupported providers are named and skipped; a request naming only unsupported ones is refused.

run-prompt

ChatGPT
Queue one prompt against the LLM providers this platform runs (openai only today) and consume team quota. Unsupported providers are named and skipped; a request naming only unsupported ones is refused.

search-tests

ChatGPT
Search MetriFi's A/B test results across credit-union and bank pages. Filter by product family, page type, outcome and minimum lift. The returned test IDs are the citations for design decisions.

send-deliverable

ChatGPT
Email the deliverable's notification to its participants and mark sent_at. ready sends a ready-to-publish note; any other status sends a needs-your-input note with a deep link per open item; a later send announces a revision. A missing, failing or stale pre-publish check comes back as a warning, not a block. preview emails only the caller and records nothing. Refused on an archived deliverable and once the article is published.

send-deliverable-followup

ChatGPT
Email one followup nudge to the deliverable's client contact and advance the cadence counter. After 3 unanswered nudges it returns ESCALATE instead of emailing. Needs a client contact captured at send time. Refused on an archived deliverable and once the article is published.

send-review

ChatGPT
Email the review link to every participant, optionally provisioning one new recipient first. The scenario is automatic: a first send, including a reopened round, is an invite plus one deep-linked email per open item assigned to that address, or a ready-to-publish note when status is ready; a later send is a revised note with the latest changelog. Refuses when there is nobody to send to.

set-brand

ChatGPT
Write the site's brand record and regenerate its CSS in one commit on the working branch: src/data/brand.json plus src/styles/brand.generated.css. globals.css imports the generated CSS, so the whole site re-skins from this record. Validates the canonical token contract before writing. publish-site makes it live.

set-campaign-location

ChatGPT
Set the geography a campaign's keyword demand is measured in, so research-keywords returns local volume alongside national. Pass a place name as query to resolve it, or a known location_code. An ambiguous query saves nothing and returns the candidates.

set-compliance

ChatGPT
Write the site's compliance record (charter type, insurer, regulator, required disclosure ids) to src/data/compliance.json on the working branch. These are legal facts, resolved from NCUA lookup, FDIC BankFind, the institution's own site or the client. disclosure_texts is stored verbatim; the server never generates legal text. A resolved record clears COMPLIANCE_UNRESOLVED and unblocks publish-site.

set-dashboard-funnels

ChatGPT
Replace which funnels a CRO (conversion rate optimization) dashboard compares, in order. The first funnel_id is the subject funnel, the rest are comparisons and should have the same step count. Funnels left out of the list are detached. Another team's funnel ID works only if that team shares funnels publicly.

set-deliverable-archived

ChatGPT
Mark a deliverable as history rather than live client work, or bring it back. Archiving hides it from the default list-deliverables view and the attention gate, refuses the send and share tools, and CLOSES ITS CLIENT PAGE: the /geo/d/ link 404s while archived. Nothing is deleted, and archived=false reopens the same link. Use it for legacy imports and abandoned work, not finished work whose link a client may still hold.

set-deliverable-status

ChatGPT
Set a deliverable's status to needs-input, ready or published, optionally with the publish plan. ready is refused while a blocking action item is outstanding; published also needs a client approval and every conventional check recorded against the current article without a fail. The refusal names what is missing. Publishing stamps the live date on the deliverable, and on the experiment when it has none. Does not re-score a concluded experiment. For an article that went live outside the platform, use record-deliverable-publication instead.

set-deliverable-tags

ChatGPT
Classify the article a deliverable shipped: Content Length, Content Location and Content Intention. Call it AFTER the article is live, judging the page at its published URL, not the recommendation that preceded it. Every group takes exactly one value. Replaces the whole classification, so pass every tag you want kept. Call it with no tags to read back the legal values and what each one means.

set-experiment-analysis

ChatGPT
Write an experiment's analysis of the LLM responses for its target prompts: which organizations appear, which sources are cited, and why. Replaces any existing analysis.

set-experiment-case-study

ChatGPT
Write an experiment's case study: problem, strategy, results and takeaways as a narrative. Replaces any existing case study.

set-experiment-document

ChatGPT
Store a working document on an experiment. Upserts on kind plus key, so re-running a step overwrites in place. A new document ships to the client in the deliverable dossier at the next build unless in_dossier is false.

set-experiment-opportunity

ChatGPT
Write an experiment's opportunity block: headline, demand, verdict and target prompts. Replaces any existing one, and build-deliverable copies it into the client page verbatim. Client-facing copy, so no em dashes.

set-experiment-recommendation

ChatGPT
Write an experiment's strategic recommendation and its prioritized tactical actions, replacing any existing ones. Each action's type must match a value from list-action-types.

set-experiment-workflow

ChatGPT
Record a free-text hand-off note on an experiment and append one event to its log. There is no status to set: the stage derives from the experiment's dates, as get-experiment and list-experiments report. The response reports baseline readiness. With fewer than 4 usable responses before the live date, the Experiment Report can never score the experiment.

set-fact

ChatGPT
Create or update a managed fact in the site's central store, writing to the working branch. Pages reference it with <Fact id/> so the value stays single-sourced and byte-exact. publish-site applies it.

set-member-role

ChatGPT
Change a member's team role. admin manages members and publishes, editor edits and publishes, contributor edits drafts only. The owner's role cannot be changed here. Owner or admin only.

set-rate

ChatGPT
Create or update a rate in the site's central store on the working branch. Omit effective_at, or pass a past time, for an immediate change; a future effective_at schedules it. publish-site applies either, and publishing arms a scheduled change so the cron rebuilds production at its effective time. Pages reference the rate with <Rate id field/>.

set-review-items-archived

ChatGPT
Archive action items (source_ids) and edit threads (thread_ids) on a site's review, taking them off the client's active list, or pass archived=false to bring them back. Nothing is deleted; delete-review-items removes archived ones for good. Ids already in that state are skipped. Sends no email.

set-review-items-done

ChatGPT
Mark action items on a site's review (source_ids) done, or pass done=false to reopen them, the same as the check mark on the client's card. Done is shown as MetriFi's, not the client's. A reopened item keeps its answer. Items already in that state are skipped. Sends no email.

set-review-status

ChatGPT
Set a review's status. Nothing in the review blocks it: no approval, open-thread or blocking-item check, because a review is a feedback loop rather than a gate. publish-site sets published on success, so setting it here reflects an out-of-band publish.

summarize-changes

ChatGPT
A content-level, plain-language summary of what a site's draft changes versus production, not a code diff. Rate, fact and disclosure changes are shown exactly; page changes show the visible text added or removed.

switch-team

ChatGPT
Set the caller's active team. The caller must already be a member.

unassign-review-items

ChatGPT
Clear the assignee on action items (source_ids) on a site's review, so nobody owns them. Sends no email and does not recall the one assign-review-item sent. Items with no assignee are skipped.

update-dashboard

ChatGPT
Update a CRO (conversion rate optimization) dashboard's name, description or notes.

update-deliverable-draft

ChatGPT
Patch a deliverable while drafting: send only the changed parts and the server applies them to the stored manifest. Creates the deliverable on the first call when experiment_id, slug and title are passed. Only what is sent is validated. The client page shows the change at once, but no revision is recorded or announced. Un-archives an archived deliverable.

update-experiment

ChatGPT
Update an experiment's fields, dates and attached prompts. For live_date, prefer record-deliverable-publication. Analysis, recommendation, case study and workflow status each have their own tool. parked: true with a reason sets the experiment aside: off the pipeline board and the attention digest, still graded. parked: false brings it back.

update-funnel

ChatGPT
Update a CRO (conversion rate optimization) funnel's name, category_id or conversion_value. Changing conversion_value queues a snapshot refresh, re-analyzes dashboards where this funnel is the subject, and recomputes the organization's total assets.

update-funnel-step

ChatGPT
Update a funnel step's name, order, metrics or metrics_expression. Changing order, metrics or metrics_expression queues a snapshot refresh and re-analyzes dashboards where this funnel is the subject.

update-recommendation

ChatGPT
Update a CRO (conversion rate optimization) recommendation's title, prompt or written content.

validate-brand

ChatGPT
Lint the site's brand record against the canonical token contract and report readiness flags: LOGO_MISSING, LOGO_DARK_VARIANT_NEEDED, FAVICON_MISSING, FONT_FILE_MISSING, FONT_LICENSE_VERIFY, PALETTE_UNRESOLVED and COMPLIANCE_UNRESOLVED, the last of which gates publishing. Flags never fail validation; each says what clears it.

whoami

ChatGPT
Report the authenticated user: name, email, platform role, current team, team memberships with roles, and pending invitations.

withdraw-deliverable-approval

ChatGPT
Take back a deliverable's approval to publish, closing the published gate again. The approved event stays in the activity ledger and an approval_withdrawn event records the reason. Clears only the approval; reopen-action-item on the sign-off attestation withdraws the approval too.

write-files

ChatGPT
Create or overwrite one or more files in a single commit on the working branch, created off main on the first write. The only way to edit a MetriFi site repo; delete-files removes a file. get-preview-url shows the result and publish-site makes it live.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps