Awesome MCP Servers by AI Anytime

Directory / Marketing, content & social

Seonix

SEO workspace for agents, read-only (36 tools): Search Console and GA4 rankings and clicks, technical audit issues, keyword clusters, content, and brand mentions in ChatGPT, Gemini, Claude and Perplexity answers. Bearer API key on paid plans. Endpoint: https://api.seonix.ai/mcp · Registry: io.github.pahaa97/seonix

Needs auth  Reachable, and asks for an OAuth sign-in before it will talk. Tools were not inspected.

Category
Marketing, content & social
Transport
http
Source
https://seonix.ai/mcp
Endpoint
https://api.seonix.ai/mcp
MCP Registry
io.github.pahaa97/seonix
Tools
41
Context cost
about 5,674 tokens for the tool definitions (estimated at four characters per token)
Tool definitions last changed
no change seen since first check
Handshake time
352 ms
Last checked
2026-11-03 10:54:48 UTC
Listed since
2026-10-20

Health and compatibility

Endpoint reachableVerifiedResponded in 352 ms
MCP handshake (initialize)UntestedThe server asks for an OAuth sign-in first
Tool discovery (tools/list)UntestedNot attempted
AuthenticationVerifiedRequires an OAuth sign-in
Protocol versionUntestedOnly known after a completed handshake
TransportUntestedListed as http

Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.

Recent history

100% of the last 10 daily checks reachable; median response 444 ms. Green answered, violet asked for auth, red did not answer.

Set up in your client

Claude Code

Run this in a terminal:

claude mcp add --transport http seonix https://api.seonix.ai/mcp

Then run /mcp inside Claude Code to sign in.

Claude Desktop

Open Settings → Connectors → Add custom connector and paste this URL:

https://api.seonix.ai/mcp

Or bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):

{
  "mcpServers": {
    "seonix": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.seonix.ai/mcp"
      ]
    }
  }
}

Cursor

Add to Cursor

Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "seonix": {
      "url": "https://api.seonix.ai/mcp"
    }
  }
}

VS Code

Add to VS Code

Or add it to .vscode/mcp.json:

{
  "servers": {
    "seonix": {
      "type": "http",
      "url": "https://api.seonix.ai/mcp"
    }
  }
}

Or from a terminal:

code --add-mcp '{"name": "seonix", "type": "http", "url": "https://api.seonix.ai/mcp"}'

Windsurf

Add it to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "seonix": {
      "serverUrl": "https://api.seonix.ai/mcp"
    }
  }
}

Other clients

Most clients accept this shape. The endpoint is:

https://api.seonix.ai/mcp
{
  "mcpServers": {
    "seonix": {
      "type": "http",
      "url": "https://api.seonix.ai/mcp"
    }
  }
}

If it does not connect

Tools 41

Names, descriptions and input schemas exactly as the server returned them on 2026-10-28. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON

acknowledge_issuecan modifyMark an issue thread as an intentional choice (write scope — ask the user first): it stops counting against …

Mark an issue thread as an intentional choice (write scope — ask the user first): it stops counting against the score and stays marked across scans. Typical uses: noindex on pagination, a deliberately short page, a redirect that must stay. Undo with unacknowledge_issue.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
issue_idstringrequiredIssue id from list_issues / get_issue.
reasonstringoptionalWhy it is intentional (shown in the dashboard).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "acknowledge_issue",
    "arguments": {
      "issue_id": "..."
    }
  }
}
analyze_seoread-onlyRun Seonix's deterministic SEO + readability + AI-answer (AEO) scoring on ANY draft you pass (title + HTML + …

Run Seonix's deterministic SEO + readability + AI-answer (AEO) scoring on ANY draft you pass (title + HTML + meta + keyphrase). No AI credits are spent. Use it as a linter: fix the problems it lists, re-run until the score is ≥ 80, then publish.

ParameterTypeDescription
project_idstringoptionalProject id or slug (used for language/domain context).
titlestringrequiredThe page/article title (H1).
htmlstringrequiredBody HTML of the draft.
meta_descriptionstringoptional
focus_keyphrasestringoptional
slugstringoptional
languagestringoptionalExpected language code (default: project language).
content_typestringoptionalpost (default) | page.
has_featured_imagebooleanoptional
featured_image_altstringoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "analyze_seo",
    "arguments": {
      "title": "...",
      "html": "..."
    }
  }
}
apply_fixcan modifydestructiveHave Seonix apply fixes on the live site through the WordPress plugin (write scope — tell the user exactly …

Have Seonix apply fixes on the live site through the WordPress plugin (write scope — tell the user exactly which issue codes and get a yes first). Works for get_fix_plan items with fix_tier auto or ai_assist (wp_plugin_fixable); the site must have a connected WordPress channel. Starts a run (preview → Seonix suggestions → apply) and returns its id; poll get_fix_run until status is completed, partial or failed. Undo with rollback_fix.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
issue_codesstringrequiredComma-separated issue codes from get_fix_plan whose fix_tier is auto or ai_assist (wp_plugin_fixable). Seonix fixes them on the live WordPress site through its plugin.
issue_idsstringoptionalOptional comma-separated scan issue ids (from list_issues evidence) to restrict the run to specific pages.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "apply_fix",
    "arguments": {
      "issue_codes": "..."
    }
  }
}
get_accountread-onlyThe Seonix account behind this API key: email, every project with its plan, whether the MCP is available for …

The Seonix account behind this API key: email, every project with its plan, whether the MCP is available for it (paid plans only), AI/publish permissions and this month's article quota. Call this first.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_account",
    "arguments": {}
  }
}
get_ai_visibilityread-onlyThe latest AI Visibility snapshot: how often the brand appears in ChatGPT answers for the project's prompts, …

The latest AI Visibility snapshot: how often the brand appears in ChatGPT answers for the project's prompts, which competitors are mentioned, top cited sources. Measurement covers ChatGPT only.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
include_answersbooleanoptionalInclude the answer excerpt and cited sources per prompt (default false).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_ai_visibility",
    "arguments": {}
  }
}
get_articleread-onlyOne article with SEO title, meta description, excerpt, key takeaways, the stored SEO analysis, publications …

One article with SEO title, meta description, excerpt, key takeaways, the stored SEO analysis, publications (where it is live) and optionally the full HTML.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
article_idstringrequiredArticle id from list_articles.
include_full_analysisbooleanoptionalReturn every stored check, not just the failing ones (default false).
include_htmlbooleanoptionalInclude the full HTML body (can be large).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_article",
    "arguments": {
      "article_id": "..."
    }
  }
}
get_blog_integration_guideread-onlyThe Seonix skill for connecting a custom-built site or blog as a publishing channel (endpoints, payload, read …

The Seonix skill for connecting a custom-built site or blog as a publishing channel (endpoints, payload, read routes, media, self-test, hand-over). Same text as https://seonix.ai/SKILL.md. Pass section to get one step.

ParameterTypeDescription
sectionstringoptionalOptional: a step heading substring to return only that part (e.g. 'Step 3' or 'self-test').

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_blog_integration_guide",
    "arguments": {}
  }
}
get_calendarread-onlyCalendar slots for a month: planned / writing / completed / failed, kind create or optimize, source manual or …

Calendar slots for a month: planned / writing / completed / failed, kind create or optimize, source manual or autopilot, linked article ids.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
monthstringoptionalYYYY-MM (default: current month).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_calendar",
    "arguments": {}
  }
}
get_clusterread-onlyOne cluster with its member keywords, the site pages already covering it, the live SERP snapshot status and …

One cluster with its member keywords, the site pages already covering it, the live SERP snapshot status and the competitor insights Seonix extracted (must-mention entities, recommended blocks, topical coverage, gaps).

ParameterTypeDescription
project_idstringoptionalProject id or slug.
cluster_idstringrequiredCluster id from list_clusters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_cluster",
    "arguments": {
      "cluster_id": "..."
    }
  }
}
get_fix_planread-onlyAn ordered, implementable plan for every open problem: what to change, where (page / site-wide / theme), on …

An ordered, implementable plan for every open problem: what to change, where (page / site-wide / theme), on which URLs, with the target example. Returned as structured items; pass include_markdown=true to also get a Markdown checklist in the `[HIGH] Title — Location / Issue / Fix` format. Pages with limit/offset. Items with wp_plugin_fixable / fix_tier auto or ai_assist can be applied by Seonix itself through apply_fix (WordPress). After applying fixes, call start_scan (with the user's yes) and get_site_health again to confirm what cleared.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
categorystringoptionalOnly one pillar: seo | ai | speed | technical.
codesstringoptionalComma-separated issue codes to include (default: every open problem).
max_itemsintegeroptionalProblems to include, highest priority first (default 10, max 50). Use codes/category or offset to see the rest.
limitintegeroptionalSame as max_items (accepted so every list tool pages with limit/offset).
offsetintegeroptionalSkip this many problems (for paging through a long plan).
max_pagesintegeroptionalURLs listed per problem (default 3, max 50); the rest are reachable via list_issues code=…
include_markdownbooleanoptionalAlso return the plan as a Markdown checklist (doubles the size; default false).
verbosebooleanoptionalAdd why-it-matters, step-by-step instructions and warnings to every item (default false).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_fix_plan",
    "arguments": {}
  }
}
get_fix_runread-onlyStatus and outcome of an apply_fix run: counts (applied / already correct / no-op / errors) and the per-item …

Status and outcome of an apply_fix run: counts (applied / already correct / no-op / errors) and the per-item results with the before and after values.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
run_idstringrequiredRun id returned by apply_fix.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_fix_run",
    "arguments": {
      "run_id": "..."
    }
  }
}
get_issueread-onlyOne issue with the evidence the scanner captured on the page (the offending tag, heading outline, redirect …

One issue with the evidence the scanner captured on the page (the offending tag, heading outline, redirect chain, JSON-LD block…) and the remediation profile: why it matters, bad vs good example, how-to-fix steps, whether Seonix can fix it through the WordPress plugin.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
issue_idstringrequiredIssue id from list_issues.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_issue",
    "arguments": {
      "issue_id": "..."
    }
  }
}
get_plan_statusread-onlyPlan and entitlements for one project: whether the MCP is available, AI generation and publishing …

Plan and entitlements for one project: whether the MCP is available, AI generation and publishing permissions, article quota used/limit, and the upgrade link when the project is on Free.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_plan_status",
    "arguments": {}
  }
}
get_playbookread-onlyRead one Seonix playbook by name (same text as the prompt of that name) — for clients that do not surface MCP …

Read one Seonix playbook by name (same text as the prompt of that name) — for clients that do not surface MCP prompts.

ParameterTypeDescription
namestringrequiredPlaybook name from list_playbooks.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_playbook",
    "arguments": {
      "name": "..."
    }
  }
}
get_projectread-onlyOne project: site URL, language, autopilot mode and cadence, Search Console connection, publishing channels, …

One project: site URL, language, autopilot mode and cadence, Search Console connection, publishing channels, plan and quota, SEO progress level, dashboard links. Paid plans only.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_project",
    "arguments": {}
  }
}
get_remediation_profileread-onlyThe Seonix remediation profile for an issue code (no project needed): why it matters, bad/good example, fix …

The Seonix remediation profile for an issue code (no project needed): why it matters, bad/good example, fix steps, fix tier, warnings. Use when you meet an unfamiliar code.

ParameterTypeDescription
codestringrequiredIssue code, e.g. meta_description_missing.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_remediation_profile",
    "arguments": {
      "code": "..."
    }
  }
}
get_resultsread-onlyProof-of-ranking ledger: for each published article, Search Console clicks / impressions / position now vs …

Proof-of-ranking ledger: for each published article, Search Console clicks / impressions / position now vs the previous period, with trend. Requires Search Console.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
limitintegeroptionalArticles per page (default 30, max 100).
offsetintegeroptionalSkip this many articles.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_results",
    "arguments": {}
  }
}
get_scan_statusread-onlyProgress of one scan: stage, pages found / scanned, counts, whether background probes are still pending. Poll …

Progress of one scan: stage, pages found / scanned, counts, whether background probes are still pending. Poll every 5–10 seconds while status is not completed.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
scan_idstringrequiredScan id from list_scans.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_scan_status",
    "arguments": {
      "scan_id": "..."
    }
  }
}
get_seo_progressread-onlyThe project's SEO Progress ladder: current level and stage, what the next level requires (published articles, …

The project's SEO Progress ladder: current level and stage, what the next level requires (published articles, quality, Search Console, cluster coverage) and the publishing cadence Seonix recommends for this level.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_seo_progress",
    "arguments": {}
  }
}
get_site_dnaread-onlyThe project's brand profile Seonix extracted and the owner refined: what the business does, audience, tone, …

The project's brand profile Seonix extracted and the owner refined: what the business does, audience, tone, language, writing instructions — plus the ready-to-use prompt block. Read it before writing or rewriting anything for the site.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_site_dna",
    "arguments": {}
  }
}
get_site_healthread-onlySite Health for a project: overall score, the four pillars (SEO, AI search, speed, technical), counts of …

Site Health for a project: overall score, the four pillars (SEO, AI search, speed, technical), counts of active / fixed / came-back problems, the top open problems by priority, the last scan and the next scheduled check. Start here for any "what's wrong with my site" question.

ParameterTypeDescription
project_idstringoptionalProject id or slug (optional for single-project accounts).
top_tasksintegeroptionalHow many open problems to include, ordered by priority (default 10, max 50).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_site_health",
    "arguments": {}
  }
}
gsc_coverageread-onlyIndexing coverage Seonix collected from Search Console: indexed / not indexed / unknown counts, sitemap …

Indexing coverage Seonix collected from Search Console: indexed / not indexed / unknown counts, sitemap status, and the pages that are not indexed with Google's verdict.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_coverage",
    "arguments": {}
  }
}
gsc_impactread-onlySeonix's own impact estimate: current vs potential traffic, keyword coverage, article impacts and top keyword …

Seonix's own impact estimate: current vs potential traffic, keyword coverage, article impacts and top keyword opportunities.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_impact",
    "arguments": {}
  }
}
gsc_opportunitiesread-onlyKeywords already ranking in a position band (default 4–20) with impressions, ordered by the traffic Seonix …

Keywords already ranking in a position band (default 4–20) with impressions, ordered by the traffic Seonix estimates they would bring at the target position. The classic striking-distance list: refresh those pages first.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
daysintegeroptionalWindow length (default 28, 7–90).
min_positionnumberoptionalLower bound of the position band (default 4).
max_positionnumberoptionalUpper bound of the position band (default 20).
limitintegeroptionalRows to return (default 30, max 200).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_opportunities",
    "arguments": {}
  }
}
gsc_page_queriesread-onlyThe queries one page ranks for (Search Console page+query report filtered to that URL). Use it before …

The queries one page ranks for (Search Console page+query report filtered to that URL). Use it before rewriting a page's title, meta description or headings.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
urlstringrequiredExact page URL as Search Console reports it.
daysintegeroptionalWindow length (default 28, 7–90).
limitintegeroptionalRows to return (default 25, max 200).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_page_queries",
    "arguments": {
      "url": "..."
    }
  }
}
gsc_statusread-onlyWhether Google Search Console is connected for the project, which property, and the last date with published …

Whether Google Search Console is connected for the project, which property, and the last date with published data. Call before other gsc_* tools.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_status",
    "arguments": {}
  }
}
gsc_timeseriesread-onlyDaily clicks, impressions, average position and potential traffic for the last N days (7–90), plus the …

Daily clicks, impressions, average position and potential traffic for the last N days (7–90), plus the previous-period average position for comparison.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
daysintegeroptionalWindow length ending on the last day Search Console has published (default 28, 7–90).
limitintegeroptionalRows to return (default 25, max 200).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_timeseries",
    "arguments": {}
  }
}
gsc_top_pagesread-onlyTop landing pages from Search Console for the window: clicks, impressions, CTR, average position.

Top landing pages from Search Console for the window: clicks, impressions, CTR, average position.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
daysintegeroptionalWindow length ending on the last day Search Console has published (default 28, 7–90).
limitintegeroptionalRows to return (default 25, max 200).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_top_pages",
    "arguments": {}
  }
}
gsc_top_queriesread-onlyTop search queries from Search Console for the window: clicks, impressions, CTR, average position.

Top search queries from Search Console for the window: clicks, impressions, CTR, average position.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
daysintegeroptionalWindow length ending on the last day Search Console has published (default 28, 7–90).
limitintegeroptionalRows to return (default 25, max 200).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "gsc_top_queries",
    "arguments": {}
  }
}
list_articlesread-onlyArticles in the project (Seonix-generated and imported): status, scores, keyphrase, cluster, publish dates. …

Articles in the project (Seonix-generated and imported): status, scores, keyphrase, cluster, publish dates. Paginated.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
pageintegeroptional1-based page (default 1).
per_pageintegeroptionalDefault 20, max 100.
limitintegeroptionalSame as per_page (accepted so every list tool pages with limit/offset).
offsetintegeroptionalSkip this many articles (converted to page/per_page).
statusstringoptionalFilter: draft | scheduled | published. With a filter the list is built from the light index (id, title, status, keyphrase) and paged after filtering.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_articles",
    "arguments": {}
  }
}
list_channelsread-onlyConnected publishing channels (WordPress, Ghost, Webflow, Shopify, Wix, Custom API) with status. A project …

Connected publishing channels (WordPress, Ghost, Webflow, Shopify, Wix, Custom API) with status. A project needs a connected channel before anything can be published.

ParameterTypeDescription
project_idstringoptionalProject id or slug. Optional when the account has one project or the connector URL names it.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_channels",
    "arguments": {}
  }
}
list_clustersread-onlyTopic clusters (one target page each) with primary keyword, intent, page type, priority, volume, Search …

Topic clusters (one target page each) with primary keyword, intent, page type, priority, volume, Search Console impressions and winnability. The content plan is built from these.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
statusstringoptionaldraft | approved | brief_ready | content_created.
limitintegeroptionalPage size (default 20, max 100).
offsetintegeroptionalSkip this many clusters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_clusters",
    "arguments": {}
  }
}
list_issuesread-onlyPersistent issue threads (one per problem per page) with status open / solved / regressed, filterable by …

Persistent issue threads (one per problem per page) with status open / solved / regressed, filterable by code, URL and status. Paginated. Each item carries the issue id for get_issue.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
statusstringoptionalopen | solved | regressed. Default: open and regressed (everything still broken).
codestringoptionalOnly this issue code, e.g. images_missing_alt.
urlstringoptionalOnly issues on this page URL.
limitintegeroptionalPage size (default 25, max 200).
offsetintegeroptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_issues",
    "arguments": {}
  }
}
list_keyword_candidatesread-onlyKeywords Seonix researched for the project (seed AI, planner, Search Console, autocomplete, user-added) with …

Keywords Seonix researched for the project (seed AI, planner, Search Console, autocomplete, user-added) with volume, competition, Search Console numbers and cluster membership. Paginated; filter by status and substring.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
statusstringoptionalComma-separated: pending, approved, rejected, filtered_out. Default: approved and pending.
querystringoptionalSubstring filter on the keyword.
limitintegeroptionalDefault 100, max 500.
offsetintegeroptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_keyword_candidates",
    "arguments": {}
  }
}
list_playbooksread-onlyThe Seonix playbooks (step-by-step procedures that tell you which tools to call): promote a site, work …

The Seonix playbooks (step-by-step procedures that tell you which tools to call): promote a site, work through a page, fix issues in code, keyword map, internal links, write an article, striking distance, monthly report, connect a blog. Use get_playbook to read one.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_playbooks",
    "arguments": {}
  }
}
list_projectsread-onlyProjects (websites) in the account with id, slug, name and site URL. Use the id or slug as project_id in …

Projects (websites) in the account with id, slug, name and site URL. Use the id or slug as project_id in other tools.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_projects",
    "arguments": {}
  }
}
list_scansread-onlyRecent site scans with status, pages scanned and severity counts.

Recent site scans with status, pages scanned and severity counts.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
limitintegeroptionalDefault 10, max 50.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_scans",
    "arguments": {}
  }
}
rollback_fixcan modifydestructiveReverse the changes an apply_fix run made on the live site, restoring the values the plugin snapshotted …

Reverse the changes an apply_fix run made on the live site, restoring the values the plugin snapshotted before applying (write scope — ask the user first).

ParameterTypeDescription
project_idstringoptionalProject id or slug.
run_idstringrequiredRun id returned by apply_fix.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "rollback_fix",
    "arguments": {
      "run_id": "..."
    }
  }
}
score_articleread-onlyRe-run the SEO + readability scoring on an article already in Seonix (no changes saved) and list its problems.

Re-run the SEO + readability scoring on an article already in Seonix (no changes saved) and list its problems.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
article_idstringrequiredArticle id from list_articles.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "score_article",
    "arguments": {
      "article_id": "..."
    }
  }
}
start_scancan modifyStart a fresh Site Health scan of the project's site (write scope — ask the user first). Returns the scan id; …

Start a fresh Site Health scan of the project's site (write scope — ask the user first). Returns the scan id; poll get_scan_status every 10 seconds until status is completed, then call get_site_health / get_fix_plan to see what cleared. One scan at a time per project; the plan's page budget applies.

ParameterTypeDescription
project_idstringoptionalProject id or slug.
scopestringoptionalwebsite (default: crawl the site) | sitemap (only sitemap URLs).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "start_scan",
    "arguments": {}
  }
}
unacknowledge_issuecan modifyRemove the intentional mark from an issue thread so it is scored and counted again (write scope).

Remove the intentional mark from an issue thread so it is scored and counted again (write scope).

ParameterTypeDescription
project_idstringoptionalProject id or slug.
issue_idstringrequiredIssue id from list_issues / get_issue.
reasonstringoptionalWhy it is intentional (shown in the dashboard).

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "unacknowledge_issue",
    "arguments": {
      "issue_id": "..."
    }
  }
}

Resources 5

Prompts 11

Badge

Maintain this server? Put its live status in your README:

MCP status badge

[![MCP status](https://mcp.aianytime.net/badge/seonix.svg)](https://mcp.aianytime.net/s/seonix/)

Edit this entry · Report a problem

More in Marketing, content & social

Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt

Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers