The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Frase SEO listing page.
About this repository — the public home of the Frase MCP server: documentation, registry metadata (server.json), changelog, and connector setup. The server is developed in the Frase private monorepo and ships as @frase/mcp-server on npm; a hosted remote (OAuth) runs at https://next.frase.io/api/mcp. Issues and feature requests are welcome here.
Use Claude to interact with your Frase account. This MCP (Model Context Protocol) server exposes Frase's API as tools that Claude can use to help you with SEO/GEO content creation, research, optimization, AI Visibility tracking, and much more. Works with both Claude Desktop and Claude Code.
Model Context Protocol (MCP) is an open standard that allows AI assistants like Claude to securely connect to external tools and data sources. This server implements MCP to give Claude access to your Frase account.
Prefer zero setup? Frase runs a hosted MCP server at https://next.frase.io/api/mcp (streamable HTTP with OAuth). Clients that support remote MCP servers connect by URL and sign in with your Frase account in the browser. No API key, no local install, and updates ship automatically.
The options below run the server locally over stdio with an API key.
Add the Frase MCP server to Claude Code with a single command:
Claude Code will automatically start the server when needed.
Get your API key from Frase Settings.
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
After saving the config, restart Claude Desktop. You should see "frase" in the MCP servers list.
Add to your project's .cursor/mcp.json:
Add to your Windsurf MCP config (~/.codeium/windsurf/mcp_config.json):
Add to your VS Code settings (.vscode/settings.json):
list_sites - List all sites in your accountcreate_site - Create a new site to tracklist_briefs - List content briefs with optional status filtercreate_brief - Create a new brief (with optional auto-outline generation)get_brief - Get brief details including outline and SERP dataget_brief_status - Check brief generation progressexport_brief - Export a brief in JSON or Markdown formatlist_content - List content items with optional status filterget_content - Get content details including full body textgenerate_content - Generate content from a briefupdate_content - Update content title, body, status, or meta tagsdelete_content - Delete a content item (soft delete)get_content_status - Check content generation progressexport_content - Export content in JSON, HTML, or Markdown formatregenerate_content - Regenerate or improve content with optional instructionsgenerate_hero_image - Generate and attach an AI hero image to an existing article without regenerating itrescore_content - Recalculate SEO, GEO, and EEAT scores for contentlist_research - List research sessionsstart_research - Start new AI-powered research on a topic (types: topic, competitor, gap, serp)get_research - Get research details with findings and sourcesdelete_research - Delete a research sessionexport_research - Export research findings in JSON or Markdown formatget_job_status - Check status of async jobs (briefs, research, audits, content, etc.)list_audits - List site auditsstart_audit - Start a new site audit (full, technical, content, or quick)get_audit - Get audit details with pages and issuesexport_audit - Export audit data as JSON or CSVaudit_page - Audit a single page URL for E-E-A-T, GEO, and SEO scoresanalyze_serp - Analyze search engine results for a queryanalyze_competitors - Analyze competitor content for a queryget_search_intent - Get search intent classification for a queryget_ai_visibility - Get AI visibility overview metricslist_prompts - List monitored AI promptscreate_prompt - Create a new monitored prompt. Location defaults to the site's country when omitted (pass site_id); the same prompt can be tracked once per site.get_prompt - Get prompt details with citations and resultsupdate_prompt - Update a monitored promptget_competitors - Get AI visibility competitorsget_alerts - Get AI visibility alertsget_insights - Get AI visibility insights and recommendationsget_crawler_logs - View AI bot crawl activity on your sitesget_gsc_overview - Get Google Search Console overview metricsget_gsc_queries - Get top search queries from GSCget_gsc_pages - Get top performing pages from GSCget_content_gaps - Get content gap opportunitieslist_performance_alerts - List performance alerts (traffic drops, ranking changes)resolve_alert - Mark a performance alert as resolvedlist_optimizations - List optimization sessionsstart_optimization - Start optimization analysis for contentget_optimization - Get optimization details with suggestionsapply_optimization - Apply optimization suggestionsget_optimization_insights - Get optimization insights across contentdismiss_optimization - Dismiss an optimizationlist_webhooks - List configured webhooksManaging webhooks is listed on the hosted remote server only —
write_webhook (create/update), get_webhook and delete_webhook. They still
run over stdio if your client calls them by name; only the listing differs.
Connect to the hosted endpoint if you want an agent to discover them.
publish_content - Publish content to Frase CMS or connected platformslist_cms_connections - List CMS connection status for a siteBrowse your Frase data directly in Claude:
frase://sites - List all your sitesfrase://sites/{id} - View individual site detailsfrase://content - List all content itemsfrase://content/{id} - View content with full bodyfrase://briefs - List all briefsfrase://briefs/{id} - View brief with outlinePre-built workflows for common SEO tasks:
| Prompt | Description |
|---|---|
create_seo_article | Full workflow: research, brief, outline, content generation |
optimize_content | Analyze content and apply optimization suggestions |
keyword_research | Research keywords, SERP analysis, and content opportunities |
competitor_analysis | Analyze competitor content and find gaps |
content_audit | Run site audit and prioritize improvements |
content_pipeline | Full autonomous content lifecycle: research, brief, write, optimize, publish |
content_watchdog | Monitor performance, fix ranking drops, re-optimize underperforming content |
| Variable | Required | Description |
|---|---|---|
FRASE_API_KEY | Yes | Your Frase API key |
FRASE_API_URL | No | Override API URL (default: https://next.frase.io/api/v1) |
Verify your config file location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonCheck JSON syntax - use a validator if needed
Restart Claude Desktop completely (quit and reopen)
claude mcp listclaude mcp status fraseclaude mcp remove fraseThe server retries on rate limits with exponential backoff, which resolves short per-minute bursts.
Three limits apply independently: a per-minute burst, a sustained hourly ceiling, and a monthly request budget. Retrying only helps with the first — the 429 for the hourly ceiling carries a Retry-After of up to an hour, and retrying sooner cannot succeed. Check the error code to tell them apart: rate_limit_exceeded (burst, retry shortly), hourly_limit_exceeded (wait for Retry-After), monthly_budget_exceeded (upgrade or wait for the cycle).
This server connects to your Frase account and sends the requests you make to the Frase API. It collects no data of its own beyond the tool-invocation telemetry described below, and it does not read your conversation history, files, or memory.
MIT