Seonix
REMOTE · API.SEONIX.AI
Automated SEO: Site Health, fix plan, Search Console, keywords and draft scoring for AI agents.
Available components
Last scanned (21 hours ago)
Scores higher than 35% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Marketing and SEO
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism. View diagnostics → Pass
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
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.
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.
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 |
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 →
acknowledge_issue Mark an issue as intentional ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | yes | Issue id from list_issues / get_issue. |
| project_id | string | – | Project id or slug. |
| reason | string | – | Why it is intentional (shown in the dashboard). |
No output schema declared.
No examples provided.
analyze_seo Score a draft ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | – | post (default) | page. |
| featured_image_alt | string | – | – |
| focus_keyphrase | string | – | – |
| has_featured_image | boolean | – | – |
| html | string | yes | Body HTML of the draft. |
| language | string | – | Expected language code (default: project language). |
| meta_description | string | – | – |
| project_id | string | – | Project id or slug (used for language/domain context). |
| slug | string | – | – |
| title | string | yes | The page/article title (H1). |
No output schema declared.
No examples provided.
apply_fix Apply Seonix fixes ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_codes | string | yes | Comma-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_ids | string | – | Optional comma-separated scan issue ids (from list_issues evidence) to restrict the run to specific pages. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_account Account overview ~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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_answers | boolean | – | Include the answer excerpt and cited sources per prompt (default false). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_article Article detail ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| article_id | string | yes | Article id from list_articles. |
| include_full_analysis | boolean | – | Return every stored check, not just the failing ones (default false). |
| include_html | boolean | – | Include the full HTML body (can be large). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_blog_integration_guide 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.
| Name | Type | Req | Description |
|---|---|---|---|
| section | string | – | 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 Content calendar ~63
Calendar slots for a month: planned / writing / completed / failed, kind create or optimize, source manual or autopilot, linked article ids.
| Name | Type | Req | Description |
|---|---|---|---|
| month | string | – | YYYY-MM (default: current month). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_cluster Cluster detail ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | string | yes | Cluster id from list_clusters. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_fix_plan 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Only one pillar: seo | ai | speed | technical. |
| codes | string | – | Comma-separated issue codes to include (default: every open problem). |
| include_markdown | boolean | – | Also return the plan as a Markdown checklist (doubles the size; default false). |
| limit | integer | – | Same as max_items (accepted so every list tool pages with limit/offset). |
| max_items | integer | – | Problems to include, highest priority first (default 10, max 50). Use codes/category or offset to see the rest. |
| max_pages | integer | – | URLs listed per problem (default 3, max 50); the rest are reachable via list_issues code=… |
| offset | integer | – | Skip this many problems (for paging through a long plan). |
| project_id | string | – | Project id or slug. |
| verbose | boolean | – | 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 Fix run status ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Project id or slug. |
| run_id | string | yes | Run id returned by apply_fix. |
No output schema declared.
No examples provided.
get_issue Issue detail ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | yes | Issue id from list_issues. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_plan_status 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Playbook name from list_playbooks. |
No output schema declared.
No examples provided.
get_project Project overview ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Issue code, e.g. meta_description_missing. |
No output schema declared.
No examples provided.
get_results Results ledger ~79
Proof-of-ranking ledger: for each published article, Search Console clicks / impressions / position now vs the previous period, with trend. Requires Search Console.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Articles per page (default 30, max 100). |
| offset | integer | – | Skip this many articles. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
get_scan_status 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Project id or slug. |
| scan_id | string | yes | Scan id from list_scans. |
No output schema declared.
No examples provided.
get_seo_progress 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Project id or slug (optional for single-project accounts). |
| top_tasks | integer | – | How many open problems to include, ordered by priority (default 10, max 50). |
No output schema declared.
No examples provided.
gsc_coverage Indexing 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 Seonix impact ~59
Seonix's own impact estimate: current vs potential traffic, keyword coverage, article impacts and top keyword opportunities.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 Striking-distance 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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Window length (default 28, 7–90). |
| limit | integer | – | Rows to return (default 30, max 200). |
| max_position | number | – | Upper bound of the position band (default 20). |
| min_position | number | – | Lower bound of the position band (default 4). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
gsc_page_queries Queries for a page ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Window length (default 28, 7–90). |
| limit | integer | – | Rows to return (default 25, max 200). |
| project_id | string | – | Project id or slug. |
| url | string | yes | Exact page URL as Search Console reports it. |
No output schema declared.
No examples provided.
gsc_status Search Console 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 Search metrics over time ~96
Daily clicks, impressions, average position and potential traffic for the last N days (7–90), plus the previous-period average position for comparison.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Window length ending on the last day Search Console has published (default 28, 7–90). |
| limit | integer | – | Rows to return (default 25, max 200). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
gsc_top_pages Top pages ~86
Top landing pages from Search Console for the window: clicks, impressions, CTR, average position.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Window length ending on the last day Search Console has published (default 28, 7–90). |
| limit | integer | – | Rows to return (default 25, max 200). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
gsc_top_queries Top queries ~86
Top search queries from Search Console for the window: clicks, impressions, CTR, average position.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Window length ending on the last day Search Console has published (default 28, 7–90). |
| limit | integer | – | Rows to return (default 25, max 200). |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
list_articles List articles ~157
Articles in the project (Seonix-generated and imported): status, scores, keyphrase, cluster, publish dates. Paginated.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Same as per_page (accepted so every list tool pages with limit/offset). |
| offset | integer | – | Skip this many articles (converted to page/per_page). |
| page | integer | – | 1-based page (default 1). |
| per_page | integer | – | Default 20, max 100. |
| project_id | string | – | Project id or slug. |
| status | string | – | 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 Publishing 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | 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 Keyword 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size (default 20, max 100). |
| offset | integer | – | Skip this many clusters. |
| project_id | string | – | Project id or slug. |
| status | string | – | draft | approved | brief_ready | content_created. |
No output schema declared.
No examples provided.
list_issues 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | Only this issue code, e.g. images_missing_alt. |
| limit | integer | – | Page size (default 25, max 200). |
| offset | integer | – | – |
| project_id | string | – | Project id or slug. |
| status | string | – | open | solved | regressed. Default: open and regressed (everything still broken). |
| url | string | – | Only issues on this page URL. |
No output schema declared.
No examples provided.
list_keyword_candidates 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 100, max 500. |
| offset | integer | – | – |
| project_id | string | – | Project id or slug. |
| query | string | – | Substring filter on the keyword. |
| status | string | – | Comma-separated: pending, approved, rejected, filtered_out. Default: approved and pending. |
No output schema declared.
No examples provided.
list_playbooks 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 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 List scans ~47
Recent site scans with status, pages scanned and severity counts.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 10, max 50. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
rollback_fix Roll back a fix run ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Project id or slug. |
| run_id | string | yes | Run id returned by apply_fix. |
No output schema declared.
No examples provided.
score_article Score an existing article ~58
Re-run the SEO + readability scoring on an article already in Seonix (no changes saved) and list its problems.
| Name | Type | Req | Description |
|---|---|---|---|
| article_id | string | yes | Article id from list_articles. |
| project_id | string | – | Project id or slug. |
No output schema declared.
No examples provided.
start_scan Start a site 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Project id or slug. |
| scope | string | – | website (default: crawl the site) | sitemap (only sitemap URLs). |
No output schema declared.
No examples provided.
unacknowledge_issue Un-mark an intentional issue ~75
Remove the intentional mark from an issue thread so it is scored and counted again (write scope).
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | yes | Issue id from list_issues / get_issue. |
| project_id | string | – | Project id or slug. |
| reason | string | – | Why it is intentional (shown in the dashboard). |
No output schema declared.
No examples provided.
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
claude mcp add --transport http pahaa97-seonix 'https://api.seonix.ai/mcp'
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.