Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Seonix

REMOTE · API.SEONIX.AI

Automated SEO: Site Health, fix plan, Search Console, keywords and draft scoring for AI agents.

Available components

−40 this week 39 Trust /100

Last scanned (21 hours ago)

Scores higher than 35% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 −43
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Stability: 0.23 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Transport: pass → unverified ▼ security
    • Authorization: fail → pass ▲ security
    • First check of Authorization: pass security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 0
    • Tool “get_site_dna” rewrote its description, which is the text the model reads security
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1
    • Stability: unverified → 0.03 ▲ functional
  • 26 Oct 26 +42
    • Transport: unverified → pass ▲ security
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Authorization: Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. security
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 93 functional
    • First check of Destructive annotations: 100 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
  • 20 Oct 26 36

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://api.seonix.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=seonix.ai CN=YE2,O=Let's Encrypt,C=US 28 Sept 2026 27 Dec 2026 ECDSA 256 ECDSA-SHA384 6efff9cd9d53a08ad0a0e7c37f90d6f5a52
SANs: *.seonix.ai, seonix.ai
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.seonix.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
seonix.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://api.seonix.ai/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://api.seonix.ai/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'; base-uri 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), interest-cohort=()
www-authenticate Bearer resource_metadata="https://api.seonix.ai/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://api.seonix.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.seonix.ai/mcp
Authorisation server https://api.seonix.ai

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.seonix.ai/mcp Auth required 401
http (plaintext) http://api.seonix.ai/mcp HTTPS enforced 301 https://api.seonix.ai/mcp
MCP tools · 41 exposed · ~3,900 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
acknowledge_issue ~109

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.

NameTypeReqDescription
issue_idstringyesIssue id from list_issues / get_issue.
project_idstring–Project id or slug.
reasonstring–Why it is intentional (shown in the dashboard).

No output schema declared.

No examples provided.

analyze_seo ~189

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.

NameTypeReqDescription
content_typestring–post (default) | page.
featured_image_altstring––
focus_keyphrasestring––
has_featured_imageboolean––
htmlstringyesBody HTML of the draft.
languagestring–Expected language code (default: project language).
meta_descriptionstring––
project_idstring–Project id or slug (used for language/domain context).
slugstring––
titlestringyesThe page/article title (H1).

No output schema declared.

No examples provided.

apply_fix ~194

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.

NameTypeReqDescription
issue_codesstringyesComma-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_idsstring–Optional comma-separated scan issue ids (from list_issues evidence) to restrict the run to specific pages.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_account ~52

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_ai_visibility ~76

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.

NameTypeReqDescription
include_answersboolean–Include the answer excerpt and cited sources per prompt (default false).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_article ~105

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

NameTypeReqDescription
article_idstringyesArticle id from list_articles.
include_full_analysisboolean–Return every stored check, not just the failing ones (default false).
include_htmlboolean–Include the full HTML body (can be large).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_blog_integration_guide ~98

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.

NameTypeReqDescription
sectionstring–Optional: a step heading substring to return only that part (e.g. 'Step 3' or 'self-test').

No output schema declared.

No examples provided.

get_calendar ~63

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

NameTypeReqDescription
monthstring–YYYY-MM (default: current month).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_cluster ~75

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).

NameTypeReqDescription
cluster_idstringyesCluster id from list_clusters.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_fix_plan ~337

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.

NameTypeReqDescription
categorystring–Only one pillar: seo | ai | speed | technical.
codesstring–Comma-separated issue codes to include (default: every open problem).
include_markdownboolean–Also return the plan as a Markdown checklist (doubles the size; default false).
limitinteger–Same as max_items (accepted so every list tool pages with limit/offset).
max_itemsinteger–Problems to include, highest priority first (default 10, max 50). Use codes/category or offset to see the rest.
max_pagesinteger–URLs listed per problem (default 3, max 50); the rest are reachable via list_issues code=…
offsetinteger–Skip this many problems (for paging through a long plan).
project_idstring–Project id or slug.
verboseboolean–Add why-it-matters, step-by-step instructions and warnings to every item (default false).

No output schema declared.

No examples provided.

get_fix_run ~69

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.

NameTypeReqDescription
project_idstring–Project id or slug.
run_idstringyesRun id returned by apply_fix.

No output schema declared.

No examples provided.

get_issue ~94

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.

NameTypeReqDescription
issue_idstringyesIssue id from list_issues.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_plan_status ~72

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.

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

get_playbook ~52

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

NameTypeReqDescription
namestringyesPlaybook name from list_playbooks.

No output schema declared.

No examples provided.

get_project ~70

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.

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

get_remediation_profile ~66

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.

NameTypeReqDescription
codestringyesIssue code, e.g. meta_description_missing.

No output schema declared.

No examples provided.

get_results ~79

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

NameTypeReqDescription
limitinteger–Articles per page (default 30, max 100).
offsetinteger–Skip this many articles.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

get_scan_status ~69

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.

NameTypeReqDescription
project_idstring–Project id or slug.
scan_idstringyesScan id from list_scans.

No output schema declared.

No examples provided.

get_seo_progress ~76

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.

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

get_site_dna ~86

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

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

get_site_health ~115

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.

NameTypeReqDescription
project_idstring–Project id or slug (optional for single-project accounts).
top_tasksinteger–How many open problems to include, ordered by priority (default 10, max 50).

No output schema declared.

No examples provided.

gsc_coverage ~69

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.

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

gsc_impact ~59

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

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

gsc_opportunities ~138

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.

NameTypeReqDescription
daysinteger–Window length (default 28, 7–90).
limitinteger–Rows to return (default 30, max 200).
max_positionnumber–Upper bound of the position band (default 20).
min_positionnumber–Lower bound of the position band (default 4).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

gsc_page_queries ~105

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.

NameTypeReqDescription
daysinteger–Window length (default 28, 7–90).
limitinteger–Rows to return (default 25, max 200).
project_idstring–Project id or slug.
urlstringyesExact page URL as Search Console reports it.

No output schema declared.

No examples provided.

gsc_status ~64

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

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

gsc_timeseries ~96

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

NameTypeReqDescription
daysinteger–Window length ending on the last day Search Console has published (default 28, 7–90).
limitinteger–Rows to return (default 25, max 200).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

gsc_top_pages ~86

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

NameTypeReqDescription
daysinteger–Window length ending on the last day Search Console has published (default 28, 7–90).
limitinteger–Rows to return (default 25, max 200).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

gsc_top_queries ~86

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

NameTypeReqDescription
daysinteger–Window length ending on the last day Search Console has published (default 28, 7–90).
limitinteger–Rows to return (default 25, max 200).
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

list_articles ~157

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

NameTypeReqDescription
limitinteger–Same as per_page (accepted so every list tool pages with limit/offset).
offsetinteger–Skip this many articles (converted to page/per_page).
pageinteger–1-based page (default 1).
per_pageinteger–Default 20, max 100.
project_idstring–Project id or slug.
statusstring–Filter: draft | scheduled | published. With a filter the list is built from the light index (id, title, status, keyphrase) and paged after filtering.

No output schema declared.

No examples provided.

list_channels ~68

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

NameTypeReqDescription
project_idstring–Project id or slug. Optional when the account has one project or the connector URL names it.

No output schema declared.

No examples provided.

list_clusters ~101

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.

NameTypeReqDescription
limitinteger–Page size (default 20, max 100).
offsetinteger–Skip this many clusters.
project_idstring–Project id or slug.
statusstring–draft | approved | brief_ready | content_created.

No output schema declared.

No examples provided.

list_issues ~141

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.

NameTypeReqDescription
codestring–Only this issue code, e.g. images_missing_alt.
limitinteger–Page size (default 25, max 200).
offsetinteger––
project_idstring–Project id or slug.
statusstring–open | solved | regressed. Default: open and regressed (everything still broken).
urlstring–Only issues on this page URL.

No output schema declared.

No examples provided.

list_keyword_candidates ~123

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.

NameTypeReqDescription
limitinteger–Default 100, max 500.
offsetinteger––
project_idstring–Project id or slug.
querystring–Substring filter on the keyword.
statusstring–Comma-separated: pending, approved, rejected, filtered_out. Default: approved and pending.

No output schema declared.

No examples provided.

list_playbooks ~70

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_projects ~38

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_scans ~47

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

NameTypeReqDescription
limitinteger–Default 10, max 50.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

rollback_fix ~66

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).

NameTypeReqDescription
project_idstring–Project id or slug.
run_idstringyesRun id returned by apply_fix.

No output schema declared.

No examples provided.

score_article ~58

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

NameTypeReqDescription
article_idstringyesArticle id from list_articles.
project_idstring–Project id or slug.

No output schema declared.

No examples provided.

start_scan ~107

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.

NameTypeReqDescription
project_idstring–Project id or slug.
scopestring–website (default: crawl the site) | sitemap (only sitemap URLs).

No output schema declared.

No examples provided.

unacknowledge_issue ~75

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

NameTypeReqDescription
issue_idstringyesIssue id from list_issues / get_issue.
project_idstring–Project id or slug.
reasonstring–Why it is intentional (shown in the dashboard).

No output schema declared.

No examples provided.

Install

How do I install the Seonix MCP server?

Seonix is a hosted endpoint at https://api.seonix.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.seonix.ai

# add to Claude Code
claude mcp add --transport http pahaa97-seonix 'https://api.seonix.ai/mcp'
Common questions

What is the Seonix MCP server?

Seonix is an MCP server listed in the public MCP registry as io.github.pahaa97/seonix. Automated SEO: Site Health, fix plan, Search Console, keywords and draft scoring for AI agents. This page covers its hosted endpoint (https://api.seonix.ai/mcp).

Is the Seonix MCP server safe to use?

Seonix scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Seonix MCP server expose?

Seonix exposes 41 tools: acknowledge_issue, analyze_seo, apply_fix, get_account, get_ai_visibility, and 36 more. Their descriptions and schemas cost roughly 3,900 tokens of context every time the server is loaded.

Does the Seonix MCP server require authentication?

Yes. Seonix asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Seonix MCP server still maintained?

Seonix is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.