frase_generate_ contentGenerate content from brief.
Turn a keyword into a researched brief, write the draft, check a live page's scores, see where AI answers cite you, or find out what to fix first on your site, all by asking.
PopMCPFrase
Every endpoint of Frase's API is its own tool, plus a few that do the long jobs in one call: research to brief, brief to article, and waiting for background work. Sites can be named by name or domain, and a request that needs a site fills it in when your account has only one.
190 tools in the full catalog: 101 read and 89 write. 39 load by default, and the rest are found with tool search.
frase_generate_ contentGenerate content from brief.
frase_get_ contentGet content.
frase_import_ contentImport an existing article.
frase_list_ contentList content.
frase_publish_ contentPublish content to CMS.
frase_resolve_ content_ by_ nameResolve a content name to a content ID.
frase_update_ contentUpdate content.
frase_create_ briefCreate brief.
frase_get_ briefGet brief.
frase_list_ briefsList briefs.
frase_apply_ optimizationApply suggestion.
frase_create_ tracked_ promptAdd tracked prompt.
frase_get_ ai_ visibility_ overviewGet AI visibility overview.
frase_get_ optimizationGet optimization.
frase_list_ tracked_ promptsList tracked prompts.
frase_start_ optimizationStart optimization.
frase_get_ gsc_ overviewGet GSC overview.
frase_get_ gsc_ pagesGet top pages.
frase_get_ gsc_ queriesGet top queries.
frase_audit_ pageAudit a single page.
frase_create_ siteCreate site.
frase_get_ auditGet audit.
frase_get_ researchGet research.
frase_list_ sitesList sites.
frase_start_ auditStart audit.
frase_start_ researchStart research.
frase_generate_ articleWrite the article from a finished brief and wait for it.
frase_get_ site_ healthGet site health.
frase_research_ and_ briefResearch a topic and turn it into a content brief with an outline, in one call.
frase_site_ overviewA site's state in one call: its health scores and top issues, the ranked list of what to do next, and what the plan has left.
frase_wait_ for_ jobWait for a Frase background job and return its finished result.
frase_analyze_ serpAnalyze SERP.
frase_analyze_ serp_ competitorsAnalyze competitors.
frase_classify_ search_ intentClassify search intent.
frase_list_ opportunitiesList opportunities.
frase_get_ accountGet account identity.
frase_get_ brand_ contextGet the brand governance bundle for on-brand authoring.
frase_get_ usageGet usage and quota.
frase_get_ next_ actionsWhat to do now on a site.
frase_bulk_ update_ cms_ postsPublish, unpublish, or delete many CMS posts at once.
frase_create_ cms_ authorCreate a CMS author.
frase_create_ cms_ categoryCreate a CMS category.
frase_create_ cms_ postCreate a CMS post.
frase_create_ cms_ redirectCreate a redirect.
frase_create_ cms_ tagCreate a CMS tag.
frase_delete_ cms_ authorDelete a CMS author.
frase_delete_ cms_ categoryDelete a CMS category.
frase_delete_ cms_ postDelete a CMS post.
frase_delete_ cms_ redirectDelete a redirect.
frase_delete_ cms_ tagDelete a CMS tag.
frase_get_ cms_ import_ job_ statusGet import job status.
frase_get_ cms_ industry_ demandIndustry content demand for a site's vertical.
frase_get_ cms_ postGet a CMS post.
frase_get_ cms_ post_ by_ slugGet a CMS post by slug.
frase_get_ cms_ post_ performancePerformance for one CMS post.
frase_get_ cms_ post_ versionGet one post version.
frase_import_ cms_ postsBulk import CMS posts.
frase_import_ cms_ redirectsBulk-import redirects.
frase_inspect_ cms_ redirect_ chainsDiagnose redirect chains and loops.
frase_list_ cms_ authorsList CMS authors.
frase_list_ cms_ categoriesList a site's CMS categories.
frase_list_ cms_ demand_ signalsContent demand and gaps for a site.
frase_list_ cms_ post_ versionsList a post's version history.
frase_list_ cms_ postsList CMS posts.
frase_list_ cms_ redirectsList a site's redirects.
frase_list_ cms_ tagsList a site's CMS tags.
frase_merge_ cms_ authorsMerge two CMS authors.
frase_merge_ cms_ categoriesMerge two CMS categories.
frase_merge_ cms_ tagsMerge two CMS tags.
frase_publish_ cms_ postPublish a CMS post.
frase_request_ autonomous_ cms_ publishRequest a governed autonomous publish.
frase_restore_ cms_ post_ versionRestore a post to an earlier version.
frase_unpublish_ cms_ postUnpublish a CMS post.
frase_update_ cms_ authorUpdate a CMS author.
frase_update_ cms_ categoryUpdate a CMS category.
frase_update_ cms_ postUpdate a CMS post.
frase_update_ cms_ redirectUpdate a redirect.
frase_update_ cms_ tagUpdate a CMS tag.
frase_upload_ cms_ mediaUpload or rehost an image.
frase_validate_ cms_ postDry-run a CMS post create.
frase_delete_ contentDelete content.
frase_export_ contentExport content.
frase_generate_ content_ hero_ imageGenerate a hero image for existing content.
frase_get_ content_ statusGet content generation status.
frase_get_ content_ summaryGet content counts by status.
frase_regenerate_ contentRegenerate or improve content.
frase_rescore_ contentRecalculate content scores.
frase_restore_ contentRestore trashed content.
frase_unschedule_ contentClear a scheduled publish.
frase_contribute_ brief_ factsContribute claims, sources, or both to a brief's fact ledger.
frase_export_ briefExport brief.
frase_get_ brief_ statusGet brief generation status.
frase_list_ brief_ factsList a brief's fact ledger.
frase_regenerate_ briefRebuild a brief from its research session's current research.
frase_set_ brief_ fact_ approvalApprove or reject one fact.
frase_set_ brief_ source_ decisionVerify, replace, or remove one fact source.
frase_update_ briefUpdate brief.
frase_update_ brief_ sectionUpdate one section of a brief's outline.
frase_dismiss_ optimizationDismiss optimization.
frase_get_ ai_ crawler_ logsGet AI crawler logs.
frase_get_ ai_ visibility_ alertsGet visibility alerts.
frase_get_ ai_ visibility_ citation_ formulaGet citation-formula coaching for the org's vertical.
frase_get_ ai_ visibility_ competitorsGet competitor analysis.
frase_get_ ai_ visibility_ industry_ benchmarkGet industry benchmark.
frase_get_ ai_ visibility_ insightsGet optimization insights.
frase_get_ auto_ optimization_ statusGet auto-optimization status.
frase_get_ content_ monitoringGet Content Guard monitoring status.
frase_get_ optimization_ insightsGet learning insights.
frase_get_ tracked_ promptGet tracked prompt.
frase_list_ optimizationsList optimizations.
frase_republish_ optimized_ contentAccept a suggestion application and re-publish.
frase_set_ auto_ optimizationTurn auto-optimization on or off for a site.
frase_set_ content_ monitoringEnable or disable Content Guard monitoring.
frase_update_ tracked_ promptUpdate tracked prompt.
frase_cancel_ playbook_ runCancel a playbook run.
frase_delete_ playbookDelete playbook.
frase_get_ playbookGet playbook.
frase_get_ playbook_ runGet a playbook run.
frase_list_ playbook_ runsList a playbook's runs.
frase_list_ playbooksList playbooks.
frase_resume_ playbook_ runResume a paused playbook run.
frase_start_ playbook_ runStart a playbook run.
frase_add_ rule_ to_ rule_ setAdd a rule to a rule set.
frase_assign_ to_ clusterAssign content or a brief to a cluster.
frase_create_ clusterCreate a topic cluster.
frase_delete_ competitive_ analysisDelete competitive analysis.
frase_delete_ rule_ setDelete rule set.
frase_evaluate_ rule_ set_ against_ contentEvaluate one rule set against a content row.
frase_generate_ brief_ from_ competitive_ analysisGenerate brief from analysis.
frase_get_ clusterGet a topic cluster.
frase_get_ competitive_ analysisGet competitive analysis.
frase_get_ content_ gapsGet content gaps.
frase_get_ rule_ setGet rule set.
frase_list_ clustersList topic clusters.
frase_list_ competitive_ analysesList competitive analyses.
frase_list_ performance_ alertsGet performance alerts.
frase_list_ rule_ setsList rule sets.
frase_remove_ rule_ from_ rule_ setRemove a rule from a rule set.
frase_resolve_ performance_ alertResolve alert.
frase_search_ competitive_ analysis_ locationsSearch locations.
frase_set_ cluster_ pillarElect a cluster's pillar content.
frase_start_ competitive_ analysisStart competitive analysis.
frase_suggest_ clustersSuggest new topic clusters for a site.
frase_apply_ ai_ commentApply an AI suggestion to the content body.
frase_apply_ templateResolve a template into a ready-to-use outline.
frase_batch_ create_ atomizationsCreate several atomizations for one article.
frase_bulk_ set_ comment_ statusResolve or reopen many comments at once.
frase_create_ atomizationCreate (or regenerate) an atomization.
frase_create_ webhookCreate webhook.
frase_delete_ researchDelete research.
frase_delete_ ruleDelete rule.
frase_delete_ templateDelete template.
frase_delete_ webhookDelete webhook.
frase_evaluate_ content_ rulesEvaluate every enabled rule set against a content row.
frase_evaluate_ rule_ setsEvaluate rule sets against content, a CMS post, or raw text.
frase_export_ atomizationExport an atomization.
frase_export_ auditExport audit.
frase_export_ researchExport research.
frase_extract_ templateExtract a reusable template from a brief or an article.
frase_get_ atomizationGet an atomization.
frase_get_ ruleGet rule.
frase_get_ site_ cms_ delivery_ tokenGet a site's FraseCMS delivery token.
frase_get_ templateGet template.
frase_get_ webhookGet webhook.
frase_list_ atomizationsList atomizations.
frase_list_ auditsList audits.
frase_list_ cms_ connectionsList CMS connections.
frase_list_ content_ commentsList comments on a content article.
frase_list_ researchList research.
frase_list_ rulesList rules.
frase_list_ templatesList templates.
frase_list_ webhooksList webhooks.
frase_request_ ai_ commentsRequest AI suggestion comments on a content article.
frase_rotate_ site_ cms_ delivery_ tokenRotate a site's FraseCMS delivery token.
frase_set_ comment_ statusResolve or reopen a comment.
frase_update_ webhookUpdate webhook.
frase_get_ site_ health_ cannibalizationGet keyword cannibalization conflicts.
frase_get_ site_ health_ issuesList aggregated site health issues.
frase_get_ site_ health_ linksGet internal link data.
frase_legacy_ get_ documentGet document by ID (Legacy).
frase_legacy_ get_ documents_ by_ emailGet documents by email (Legacy).
frase_legacy_ process_ serpProcess SERP (Legacy).
frase_legacy_ process_ urlProcess URL (Legacy).
frase_create_ opportunity_ briefCreate a brief from an opportunity.
frase_get_ opportunityGet an opportunity.
frase_check_ brand_ terminologyCheck raw text against brand terminology.
frase_get_ cms_ delivery_ postGet a published post by slug (headless delivery).
frase_list_ cms_ delivery_ postsList published posts (headless delivery).
frase_ask_ answersAsk Frase Answers a question (SSE).
frase_get_ job_ statusGet job status.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Frase side.
Open Frase in PopMCP, click Authorize with Frase, sign in to Frase and approve. There is no developer app and no callback URL to set up. If you would rather use a Frase API key, create one under Settings, API Keys in Frase and add it under More options.
your-frase-value••••••••••••3f7aReading changes nothing in your account. Research, briefs, articles and audits use the same plan credits as in the app, and publishing, editing and deleting wait until an owner or admin allows write actions in PopMCP. New connections start read-only. Publishing goes live unless the AI asks for a draft, so it checks with you first.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Frase credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How is my site doing, and what should I work on first?
frase_site_overviewok
Then just ask for the work
“How is my site doing, and what should I work on first?”
“Research "best CRM for small agencies" and turn it into a content brief with an outline”
“Write the article from this brief and tell me its scores when it is done”
“Audit this page for its target keyword and list what to fix”
“Who ranks for this keyword, what are people asking, and what is the search intent?”
“Where do AI answers mention my brand, and which tracked prompts have I set up?”
“Which of my pages get the most Search Console clicks, and which topics am I missing?”
“Save this finished article to my CMS as a draft so I can review it”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Frase behind an AI client.
No. PopMCP is a registered OAuth client of Frase, so you open Frase in PopMCP, click Authorize with Frase, sign in and approve. There is no developer app or callback URL. If you prefer a key, one from Settings, API Keys in Frase works instead under More options.
Frase says its API keys and AI connections work on every plan, including the free trial. Some features follow your plan, and when one is not included Frase says so and the AI passes that on instead of retrying.
Only for work that uses them, and only after you allow write actions. Each task uses the same plan credits it would use in the app: a research session, a brief, an article, the pages of an audit. frase_get_usage shows what each allowance has left and when it refills, and costs nothing.
Yes, once you allow write actions, to the CMS you have connected in Frase. A publish goes live unless the AI asks for a draft, so the tool tells it to save a draft unless you asked it to publish. An article written by the AI stays a draft in Frase until then.
Frase runs them in the background, so the tools wait for a while and then say where things stand and how to carry on. Carrying on picks up the same job: it does not start another one or use another credit.
A connection reaches your whole Frase organization. The AI can name a site by its name or domain, and if a request needs a site and yours has more than one, it asks you which instead of guessing.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Frase in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Frase on the consent screen. The Frase tools are then available in that session, and no Frase credential is stored on your machine.
Loading 190 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 39-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 190 here. A trigger is something PopMCP watches for you: 10 Frase events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Frase.
Launch a hosted MCP endpoint for Frase, keep tool access under control, and start testing real workflow prompts right away.