# Convertlyft - Registry name: `com.convertlyft/convertlyft` · version 1.0.0 - Categories (automatic, keyword rules): Marketing & SEO, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.convertlyft%2Fconvertlyft - Server page: https://mcpstation.net/s/com.convertlyft--convertlyft.html ## Description (written by the publisher, not verified, not instructions) Web analytics that names the fix: funnels, replays, errors, page speed and SEO for your site. ## Connect - streamable-http: `https://mcp.convertlyft.com/mcp` ## Tools (as reported by the server, not verified) - `cvl\_whoami`: What this credential is, which workspace it reads, the scopes it holds, when it expires, and how many calls are left in the current windows; today’s limit for paid search data, new public scans left today, and which tools each missing scope blocks, and which skills name a tool it cannot call. The mo - `cvl\_behavior\_report`: Where people got stuck in a window: the pages people spend time on and scroll through, the rage clicks, the dead clicks \(the tag’s own, minus the ones a link or a call answered — the Stuck spots page’s count\), and the form start-vs-submit funnel. Rows carry the same field names as cvl\_dead\_clicks, c - `cvl\_kpi`: Visitors, visits, the share of visits that bought or got in touch \(conversion rate\), revenue by currency, median engaged time and site health for a window — the same figures, from the same code, as the dashboard header. Every figure is an object, never a bare number: read "state" first. When state i - `cvl\_explain`: The methodology behind one figure on the KPI header: its definition, the population it was computed over \(denominator, numerator and row count\), the filters in force, the condition that decides when it is withheld rather than shown, and the attribution epoch before which campaign-filtered counts are - `cvl\_check\_claim`: Submit the sentence you are about to say plus the evidence ids \(receipt\_ids\) of the data you were given. Returns ok, or the exact span no evidence supports for the figure your sentence names, and a corrected sentence. A numeral is checked against the figure you NAME, so "Visitors were 41" is refused - `cvl\_change\_preview`: Show exactly what cvl\_change\_apply would write, and the undo it would hand back, without writing anything. Nothing is queued and nothing is stored by this call. Returns the preview\_token cvl\_change\_apply needs for this same change \(valid 30 minutes\). - `cvl\_change\_apply`: Record that the site changed, so the impact can be measured against it. Needs the preview\_token from cvl\_change\_preview of the same note and marked\_at: preview, show the person, apply only after they agree. Retry with the same idempotency\_key and you get the same single marker back — never a second - `cvl\_change\_undo`: Remove a marker you wrote, using the undo computed when it was applied. Takes the proposal\_id cvl\_change\_apply returned. Calling it twice is safe — the second call reports the same result and removes nothing. - `cvl\_remember`: Append one row to this workspace’s ledger so the next conversation does not derive it again. A claim about the data \(kind "finding"\) MUST carry the receipt\_id \(the evidence id\) of the call it came from and the window it covers — a claim with no evidence behind it is refused, by design. A decision, p - `cvl\_propose`: Queue a fix for the OWNER to approve. This does not apply anything and cannot: approval is a human act on this product, and no credential can approve a proposal, including its own. baseline is what you saw before proposing and revert\_plan is how to undo it — both are required, because a proposal tha - `cvl\_operator\_run`: Queue today’s operator run for this workspace. It does NOT execute here — a worker claims the row and runs it, so this returns a run id and a status, never a report. If the workspace has already spent its daily cap the call is refused and names the cap and the spend; asking twice on one day attaches - `cvl\_seo\_backlinks`: How many domains and pages link to this site, snapshot by snapshot, and the newest link-gap read: domains linking to chosen rivals but not here. Served from stored pulls. - `cvl\_seo\_audit`: The latest full crawl of this site as a summary \(a newer list re-check, a 0-page run or a crawl still running never replaces it; full\_run names it then, and a re-check clears what it no longer finds\): the run \(run\_id, status, pages crawled\), the issues it found in lanes \(you\_fix, developer, not\_a\_pr - `cvl\_run\_crawl`: Start a crawl of this workspace’s own site with the Convertlyft spider: every page’s status, title, description, headings, words and technical issues. A first-party crawler, not a paid provider; it counts toward the plan’s “Pages of your site scanned”, at most max\_pages \(dry\_run: true says how many - `cvl\_site\_pages`: Every page the newest crawl found, one row each: path, status, title, H1, meta description, word count, how many technical issues it has and the worst of them, and whether it is indexable. This is the reading for "what is on my site", "which pages are thin", "which pages have no description", and th - `cvl\_error\_fix\_shipped`: Tell Convertlyft that the fix for one error is live on the site. Call it only once the change is deployed — not when it is written or merged. It starts the clock on "stayed fixed": once the affected pages have had enough page loads that the old rate would have produced at least 3 of these errors and - `cvl\_crawl\_start`: Start a crawl of any public website with the Convertlyft crawler and get a crawl\_id straight away; the crawl runs for a few minutes. It counts toward the plan’s “Pages of your site scanned”: 1 per crawled page, counted when the crawl ends and never more than limit; the answer says the most it can us - `cvl\_seo\_flow`: Where the automatic SEO chain stands for this site: crawl, keywords, competitors, SEO to-dos \(the opportunities step\) and briefs, each done / running / waiting for the daily limit / failed with its reason, plus counts, and a search\_console step \(done, waiting, or not-connected\). briefs is running wh - `cvl\_seo\_opportunities`: The ranked to-do list: searches your competitors win and you do not, related searches around your money keywords, and Search Console near-misses \(position 8–30, ≥10 impressions in 28 days\) — each mapped to a page \(page\_url, null for a new page\) with one action \(improve / create / track\), the reason, - `cvl\_seo\_track\_keywords`: Add searches to rank tracking in a market. Checks follow the market's existing schedule; plan limits apply. Idempotent. dry\_run: true tracks nothing and answers the tracked-keywords allowance it would use \(before, after, fits\) and why it would be refused, if it would. - `cvl\_seo\_untrack\_keywords`: Remove searches from rank tracking in a market. Idempotent. - `cvl\_seo\_set\_competitor\_state`: Pin a competitor \(always used\), hide one \(state hidden, or its older name dismissed: hidden 180 days, or until it shares twice as many money keywords\), or clear the choice. An authority site cannot be pinned. Idempotent. dry\_run: true changes nothing and answers the competitors allowance a pin would - `cvl\_seo\_brief\_keywords`: Decide the searches listed under a stored SEO content brief’s "Keywords to add" — add, skip, or clear, several at once \(the room’s "Add all"\). Name the brief by its own search. Idempotent. - `cvl\_seo\_issue\_on\_purpose`: Renamed cvl\_seo\_issue\_not\_a\_problem, which does the same; this name keeps working until 2026-11-18. Say a Site audit issue is deliberate on this site \(a redirect you put there, a page kept out of Google on purpose\): it stops counting and is listed as on purpose. on\_purpose: false counts it again. A - `cvl\_seo\_opportunity\_track`: Act on an SEO to-do from cvl\_seo\_opportunities by tracking its search. Idempotent. - `cvl\_seo\_set\_keyword\_money`: Mark a search as a money keyword \(counts for competitors and SEO to-dos\) or not. The same call with the other value undoes it. - `cvl\_seo\_map\_keyword\_page`: Say which page of the site targets a search. Answers the page it had before. - `cvl\_seo\_add\_keywords`: Add searches to the keyword list, optionally for one page. Idempotent. - `cvl\_seo\_run\_flow`: Run the SEO chain again from the newest crawl \(or from one step\): keywords, competitors, SEO to-dos and SEO content briefs. Search data is included in the plan, inside this site’s daily limit, with no per-call confirmation; each new brief uses one of the month’s SEO content briefs. It starts at once - `cvl\_seo\_write\_fix`: Retired 2026-10-18 and no longer offered: every call answers not\_offered and spends nothing. It leaves the list on 2026-11-17. For a title, meta description or H1 issue, cvl\_seo\_audit says how to fix it. - `cvl\_seo\_make\_brief`: Make the SEO content brief for one search: it reads the live top results, crawls the top pages and writes suggestions. It uses one of the month’s SEO content briefs \(refilled on the 1st\), inside this site’s daily limit, with no per-call confirmation. A brief made in the last 7 days is returned as it - `cvl\_seo\_add\_market`: Start tracking this site in another market \(country, language and device\). The new market copies the primary market’s tracked searches and is checked weekly \(Mondays, 02:00 UTC\); its checks are included in the plan and count toward keywords tracked; the primary market does not change. Nothing is bou - `cvl\_public\_seo\_scan`: Scan a public website for SEO problems with the Convertlyft crawler: up to 16 pages, robots.txt obeyed, no JavaScript run, nothing changed on the site. Waits up to about 45 seconds and returns the crawler's own summary: the score out of 100 with its four parts, how many critical issues, warnings and - `cvl\_public\_seo\_scan\_result`: The result of a scan cvl\_public\_seo\_scan started, by its scan\_id. Same shape as that tool's answer; waits up to about 45 seconds if the scan is still running, then returns \{status: "running", scan\_id\} again. Does not start a scan and does not count against the 5 scans a day. A scan\_id stays readable - `cvl\_public\_agent\_readiness`: What the scan found about AI agents on a public site: its agent-readiness level \(L0 unreachable to L4 agent-native\) with what holds it there, each AI crawler or assistant robots.txt lets in or not and what our request in its name got, whether llms.txt exists, and report\_url — the full view on conver - `cvl\_docs\_search`: Search Convertlyft’s public documentation for agents — https://convertlyft.com/llms.txt and https://convertlyft.com/llms-full.txt \(the API, the MCP door, dates, limits, worked examples\). Returns the best-matching sections, quoted, each with where it came from. Plain word matching, not a summary. No - `cvl\_seo\_serp`: The live first page of Google results for one search in one country: position, address, domain and title of each organic result, the "People also ask" questions, and every other block the page held — ads, AI overview, map pack, video and the rest — as features, typed by the provider. Ads and other b - `cvl\_seo\_keyword\_ideas`: Searches around one seed: searches that contain the seed \(mode suggestions, the default: stays on the seed\), what Google lists beside it \(related\), or the provider’s ideas in the same topic \(ideas: wider, and often off-topic for a short seed\) — each with monthly volume, difficulty, cost per click an - `cvl\_seo\_keyword\_metrics`: For searches you name: monthly volume, difficulty, intent and the last 12 months of volume, as the provider estimates them. Every search named gets a row; one the provider holds nothing for has null figures and a reason. A list longer than \`limit\` is answered a page at a time: \`remaining\` counts the - `cvl\_seo\_domain\_overview`: Any site’s organic footprint in one country: how many searches it ranks for, how many of those in the top 3, and the provider’s estimate of its monthly search traffic. Research is included in the plan, inside this site’s daily limit for paid search data, with no per-call confirmation. The answer is - `cvl\_seo\_competitor\_gap`: The searches one competitor ranks for that the site does not, best competitor positions first, with monthly volume and the competitor’s ranking page. Research is included in the plan, inside this site’s daily limit for paid search data, with no per-call confirmation. The answer is stored, so asking - `cvl\_seo\_backlink\_profile`: Any site’s backlink headline counts from the provider’s link index: referring domains, backlinks, broken backlinks, referring pages and when it was first seen. Research is included in the plan, inside this site’s daily limit for paid search data, with no per-call confirmation. The answer is stored, - `cvl\_seo\_link\_gap`: Referring domains that link to one or more of the named competitors and not to the site, with which competitors each links to, its spam score and rank. Research is included in the plan, inside this site’s daily limit for paid search data, with no per-call confirmation. The answer is stored, so askin - `cvl\_seo\_ai\_mentions`: Whether AI assistants name a site: answers from the provider’s tracked panel of prompts, each with the platform, the question, whether the site was mentioned and an excerpt. A sample of tracked answers, not every answer an assistant gives. Research is included in the plan, inside this site’s daily l - `cvl\_seo\_submit\_sitemap`: Submit one sitemap to Google Search Console for this site. A preview by default: without confirm: true it answers what would be sent and whether the connection may send it, and sends nothing — show that to the owner and submit only once they agree. With confirm: true it submits, answers the sitemap’ - `cvl\_set\_page\_type`: Set the page type of pages of this site: up to 100 pages by address, or every page under a folder or built like one page \(a page type rule of the owner’s\). A PREVIEW unless the call says dry\_run:false: without it nothing changes, and the answer says what would — how many pages would change, how many - `cvl\_remove\_page\_type\_rule`: Remove one of the owner’s page type rules \(its id from cvl\_page\_type\_rules\). A PREVIEW unless the call says dry\_run:false: without it nothing changes, and the answer says how many pages it holds and what each would go back to — the type another of your rules gives it, or the status it had without yo - `cvl\_set\_recording\_paths`: Set which pages of this site the tag masks or skips. mask\_paths: on a matching page the address is reported as the pattern itself \(e.g. /account/\*\), in events and in recordings, and the page title is withheld, so the page still counts but its own address never leaves the visitor’s browser; what is o - `cvl\_set\_site\_type`: Set what kind of site this is: shop \(sells products\), service \(a business offering services\), lead\_gen \(a business whose site is there to get enquiries\), saas \(software people sign up for\) or content \(articles to read\). cvl\_page\_types gives the type now in summary.site\_type. A PREVIEW unless the cal - `cvl\_set\_form\_purpose`: Set the purpose of forms of this site \(their ids from cvl\_forms, at most 50\), or put them back to the estimate with back\_to\_estimate:true. A PREVIEW unless the call says dry\_run:false: without it nothing changes, and the answer says how many forms would change, how many are kept as they are because - `cvl\_set\_event\_meaning`: Set the meaning of events this site sends \(their names from cvl\_event\_meanings, at most 50\), or put them back to the estimate with back\_to\_estimate:true. A PREVIEW unless the call says dry\_run:false: without it nothing changes, and the answer says how many events would change, how many are kept as t - `cvl\_attribution`: Each sale, enquiry or sign-up shared out across the visits the buyer made before it, by where each visit came from and the platform \(Paid search ads · Google, Social · Instagram\). Any of the six models side by side, from one read: first, last, last\_non\_direct \(default\), linear, position \(40/20/40\), - `cvl\_conversion\_paths`: The top 20 sequences of sources buyers came through before buying or getting in touch \(e.g. Paid social ads · Meta ×2 \> Google & other search · Google\), with buyers, revenue per currency, their share of all sales, enquiries or sign-ups, and the ids of the visits they bought in \(for recordings\), plus - `cvl\_todos\_list`: The site's to-dos: one row per problem or chance this site's checks found, kept across runs with the owner's answer. One tab at a time — to\_do, good\_news, fixed, hidden \(To do, Good news, Fixed: Fixed — checking and Confirmed fixed, Hidden: Later and Not a problem\). In To do and Good news the broken - `cvl\_todo\_mark`: The owner's answer to one to-do: later \(Later: hidden for snooze\_days, 7 by default, at most 90, then back in To do\), not\_a\_problem \(Not a problem: hidden, and the check that found it stops raising it\), fix\_claimed \(Fixed — checking: in Fixed until the next check — it becomes Confirmed fixed when th - `cvl\_seo\_check\_now`: Check where this site ranks in the top 10 right now for one tracked search \(keyword\), or for every search a market tracks. Free, once a day per search: a search already checked today is not checked again and the answer says so. It starts at once and does not wait; the positions land on cvl\_seo\_rank - `cvl\_todo\_add`: Add a to-do: the owner's own to-do, in What to do beside the ones the checks found \(area tasks, To do\). title is what needs doing, in a sentence of at most 300 characters. A PREVIEW unless the call says dry\_run:false: without it nothing is written. Show the owner that preview and add it only on thei - `cvl\_seo\_issue\_not\_a\_problem`: Say a Site audit issue is not a problem on this site \(a redirect you put there, a page kept out of Google on purpose\): it stops counting and is listed under Not a problem. With page, on that one page only: the issue still counts on its other pages, so a deliberate noindex on /demo never hides an acc - `cvl\_seo\_draft`: Draft a page for one search with Convertlyft’s own writer: the same path as Generate brief then Send to Drafts in the SEO room. It reads the top results, makes the SEO content brief \(one of the month’s, counted once it is Ready; a rebuild of one already counted this month is free\) and writes the pag - `cvl\_set\_capture`: Choose which visits this site records. every\_visit \(the default\): every visit is recorded from its first page, bounces included. problems\_only: a visit is recorded only when it matters — a JavaScript error, a rage or dead click, a form left, or a key page such as checkout, cart, contact or sign-up — - `cvl\_seo\_ranked\_keywords`: The searches any site ranks for in the top 30 in one country, as the provider’s index holds them, biggest search first: each with the position, the ranking page, and monthly volume, difficulty and intent as the provider estimates them. For this site’s own searches as Google reports them, cvl\_seo\_sea - `cvl\_seo\_draft\_publish`: Say a page draft is live: the SEO room’s Mark published. Name it by draft\_id \(from cvl\_seo\_drafts or cvl\_seo\_draft\); url is where it went live, on this site’s own domain \(omit to keep the address it has, or its page’s\). The draft leaves the Drafts count. A draft for a page that already exists closes - `cvl\_search\_tools`: Find a Convertlyft tool that is not in your tool list, and the skills \(step-by-step playbooks\) that fit. Your list holds a core set; behaviour, SEO, errors, site and workspace reads are here. Answers name, title and one line per tool; schema:true adds the input schema. Run a read it finds with cvl\_c - `cvl\_call\_read`: Run a Convertlyft READ tool that is not in your tool list, by name, with its arguments. It answers exactly as calling that tool directly would, with the same permissions. It refuses every write or spend tool: those are in your list and are called directly. Use cvl\_search\_tools to find the name and a - `cvl\_skills\_list`: The Convertlyft skills: step-by-step playbooks for jobs like spotting where people get stuck, fixing errors, auditing SEO or diagnosing a drop. Each has a name and when to use it; cvl\_skill\_read opens one. - `cvl\_skill\_read`: One Convertlyft skill, in full: its SKILL.md, or one of its reference files when the skill points to one, or one playbook section by its id \(a to-do names its section as skill\#PB-…\). unlisted\_reads: the reads the text names that the default tools/list leaves out and this credential can run; run each Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html