bots.st/misarseo-mcp-server
MisarSEO MCP Server
SEO keyword intent and site audits
532 ms
answered our call
- State
- Answered
- Protocol
- MCP 2025-06-18
- Tools listed
- 180
- Answered
- 4 of the last 4 calls
How to reach it
- MCP, HTTP
https://api.misar.io/seo/mcpNeeds header Authorization - npm
npx -y @misarseo/mcpReleased 20 Oct 2026, version 1.0.1
What it can do
| Tool | What it says it does |
|---|---|
add_competitor_monitor | Start monitoring one competitor page for changes: title/meta, a real line-level content diff (added/removed/unchanged line counts — never a fabricated similarity score), outbound links, and structured-data types. Checked once a day; the first snapshot is captured on the NEXT scheduled pass, not… |
add_disavow_entry | Disavow file management: mark one URL or domain for disavowal. FREE (no credits), but this is a MUTATION. entryType 'url' disavows exactly that page (value must be a full absolute URL); entryType 'domain' disavows the whole domain AND its subdomains (value is a bare host, no scheme) — per Google's… |
add_link_prospect | Link Building Tool: add one prospect domain/page to a project's list. FREE (no credits), but this is a MUTATION. White-hat scope: contact fields are plain manually-typed free text — NEVER auto-scraped or guessed. New prospects start at status 'prospected'; use update_link_prospect_status to move… |
add_link_prospect_note | Link Building Tool: add one manual activity-log entry to a prospect, e.g. "emailed on 9/5" or "follow-up sent". FREE (no credits), but this is a MUTATION. |
add_portfolio_projects | Adds projects to a portfolio. Returns `{ added }` — only ids that resolve to a project of the CALLER'S organization are added; any other id is silently dropped rather than erroring the whole call. FREE: database only, no SEO data provider is called and no credits are spent. |
add_rank_annotation | Adds a chart note to a rank tracker's own timeline. FREE: database only, no SEO data provider is called and no credits are spent. Config-level, not per-keyword or per-device. A config can hold at most 100 notes. |
add_rank_tracking_keywords | Adds keywords to an existing rank tracker config. Returns `{ added, addedIds }` — `added` counts only genuinely new keywords; anything already tracked for this config is silently skipped, so `added` can legitimately be lower than the number of keywords sent. FREE: database only, no SEO data… |
batch_draft_patches | Patches: AI-drafts title AND metaDescription for up to 10 pages in one call. This is a MUTATION and costs one AI-gateway operation per field per page (up to 20) — never a bulk discount. One page/field failing is reported in that entry's own error without sinking the rest of the batch. Requires an… |
capture_domain_authority_snapshot | Capture a domain-authority snapshot now: calls the same free resolver get_domain_overview already uses and records today's reading, so get_domain_authority_history has a trend to read back. FREE (no credits), but this is a MUTATION — idempotent per UTC day, so calling it twice in one day does not… |
classify_keyword_intent | Classify 1-200 keywords' search intent from their wording: informational, navigational, commercial, transactional, or unknown. Uses the SAME wording heuristic keyword research already applies as its free-tier fallback, made directly callable for a keyword list with no research/volume data yet… |
compare_ai_competitor_positioning | Runs ONE prompt through the explore_ai_prompt pipeline and checks a brand plus its named competitors against the SAME real per-model answers for mentions and citations. Bounded scope, stated plainly: this is what one prompt's observed answers show for the named entities — never a comprehensive… |
create_gbp_post | Publishes a new "What's New" post on the linked Google Business Profile location. It goes LIVE and PUBLIC immediately — there is no draft state and no undo here. Show the user the exact text and get their explicit approval before calling. Only standard posts are supported (no event, offer or alert… |
create_local_pack_rank_config | Creates a local pack rank check config: where businessName sits in Google's local pack for one keyword at one location. The location is composed into the query as "<keyword> in <locationLabel>" — not geocoded. Run checks with run_local_pack_rank_check and read them with get_local_pack_rank. FREE… |
create_local_rank_grid_config | Creates a geo-grid rank-tracking config: a 3x3 grid of points around a centre coordinate, checking ORGANIC rank for one keyword and domain from each point. centerLabel must name the place the grid is centred on — a heatmap with no stated centre is a claim about nowhere. Run it with… |
create_portfolio | Creates a portfolio. Returns `{ id }`. Starts with no member projects — use add_portfolio_projects next. FREE: database only, no SEO data provider is called and no credits are spent. |
create_rank_tracker | Creates a rank tracker config (domain + market + devices + schedule) for a project and returns its configId. Next, add keywords with add_rank_tracking_keywords. Positions are collected by the SCHEDULED check ('daily' or 'weekly'; 'manual' means never on a schedule) and read with get_rank_tracker —… |
create_report_definition | Creates a report definition with a chosen set of widgets, in print order. Returns `{ id }`. FREE: database only, no SEO data provider is called and no credits are spent. |
delete_brand_monitor | Deletes a brand monitor, stopping its scheduled scans. Requires the admin role in the calling organization. Get the monitorId from list_brand_monitors. |
delete_gbp_review_reply | Removes the owner's published reply from one Google review (reviewId from get_gbp_reviews). The removal is public and immediate. Confirm with the user before calling. |
delete_local_pack_rank_config | Deletes a local pack rank check config, INCLUDING its whole check history. Confirm with the user before calling. |
delete_local_rank_grid_config | Deletes a geo-grid rank-tracking config, INCLUDING its whole run and point history. Confirm with the user before calling. |
delete_portfolio | Deletes a portfolio. Member projects themselves are untouched — only the grouping is removed. FREE: database only, no SEO data provider is called and no credits are spent. |
delete_report_definition | Deletes a report definition. FREE: database only, no SEO data provider is called and no credits are spent. |
delete_report_schedule | Deletes a report definition's schedule. Requires the admin role in the calling organization, same as creating one. FREE: database only, no SEO data provider is called and no credits are spent. |
delete_tracked_prompt | Deletes a tracked prompt, stopping its scheduled checks. Requires the admin role in the calling organization. Get the trackedPromptId from list_tracked_prompts. |
disable_patch_auto_publish | Patches: stops auto-publishing freshly AI-drafted patches for this issue type — future drafts wait for a manual publish_patch call again. Already-published patches are unaffected. FREE (no credits), but this is a MUTATION. Requires an org admin. |
disconnect_ahrefs | Full disconnect: drops BOTH the Rank Tracker and Site Audit bindings and the stored grant. Breaks Ahrefs data for every member of the organization, not just the caller — requires at least the admin role. |
disconnect_baidu | Remove a project's Baidu Webmaster connection. Breaks Baidu push submission for every member of the organization, not just the caller — requires at least the admin role. |
disconnect_bing | Unlink a project's Bing Webmaster site. Breaks Bing Webmaster data for every member of the organization, not just the caller — requires at least the admin role. |
disconnect_ga4 | Unlink a project's Google Analytics property. Breaks Analytics data for every member of the organization, not just the caller — requires at least the admin role. |
disconnect_gbp | Removes the project's link to its Google Business Profile location. Only MisarSEO's own record of the link is removed — the location on Google is untouched — but every GBP tool stops working for the project until it is linked again. |
disconnect_yandex | Unlink a project's Yandex Webmaster host. Breaks Yandex Webmaster data for every member of the organization, not just the caller — requires at least the admin role. |
draft_patch | Patches: drafts a title/metaDescription/canonical/redirect fix for one page's finding. FREE for canonical/redirect (deterministic — canonical is always the page's own URL, redirect always needs an explicit value); title/metaDescription cost one AI-gateway operation UNLESS `value` is given, which… |
enable_patch_auto_publish | Patches: from now on, a freshly AI-drafted patch for this issue type publishes immediately instead of waiting for a manual publish_patch call — capped at 20 auto-publishes per project per day. A hand-typed replacement value (draft_patch's `value` argument) is NEVER auto-published regardless of… |
explore_ai_prompt | Runs one prompt through up to 4 model personas and returns each answer verbatim, with real citations when webSearch is on. The four persona labels (chat_gpt/claude/gemini/perplexity) are NOT vendor-verified — none is guaranteed to be that vendor's own model; 'claude' and 'perplexity' in particular… |
export_disavow_file | Disavow file management: export a project's disavow entries as the exact .txt content Google's disavow tool accepts (support.google.com/webmasters/answer/2648487) — one bare URL per line to disavow that exact page, or `domain:<host>` to disavow an entire domain and its subdomains. FREE (no… |
export_link_prospects_csv | Link Building Tool: export a project's prospect list as CSV text. FREE (no credits). Save `csvContent` to a .csv file as-is (UTF-8). |
find_serp_competitors | Compares domains competing in search results for a supplied keyword set. Useful for market and search-intelligence reports; not radius-based local SEO. The inverse of get_keyword_gap, which asks what one competitor ranks for that we do not. CHARGES CREDITS ON THE PAID DATA PROVIDER, which is also… |
get_audit_comparison | Compare a site audit against an earlier one: which issues are new, which were fixed, how many persist, and the health-score delta. Only pages BOTH crawls visited are compared, so a shorter crawl never reports the pages it missed as fixed — those are reported separately as notComparableCount… |
get_audit_core_web_vitals | Core Web Vitals report: LCP/INP/CLS per page/strategy this audit already ran Lighthouse against, classified against Google's own published thresholds. No new fetch — reads audit_lighthouse_results, the same table the results UI already renders as raw numbers. LAB DATA ONLY, never Search Console's… |
get_audit_https_report | HTTPS Report: percentage of pages secure, mixed-content and insecure-link counts, homepage HTTPS-path status, and HTTP URLs in an HTTPS site's sitemap — for a project's latest completed crawl (or a named earlier one). Derives entirely from already-computed crawl data — no new work at read time… |
get_audit_internal_links | Internal Link Report: outbound/inbound internal link counts per page, orphan pages, dead ends, and click-depth distribution for a project's latest completed crawl (or a named earlier one). No new computation — reads the same audit_pages/audit_issues columns already powering the in-app… |
get_audit_structured_data | Structured Data Report: pages grouped by schema.org @type, which pages have none, and which pages carry an unparseable JSON-LD block — for a project's latest completed crawl (or a named earlier one). Derives entirely from structured data already extracted at crawl time — no new crawl-time work… |
get_backlink_anchors | Anchor-text distribution for a domain or URL, one page at a time: which anchor texts link to it, with backlinks, referring domains, referring pages and dofollow links per anchor. This is what reveals an over-optimised profile (one exact-match commercial phrase dominating) or a hacked one… |
get_backlinks_overview | Returns a backlinks profile summary (total backlinks, referring domains, referring pages, rank) plus the top referring domains by backlink count. CHARGES CREDITS ON THE PAID DATA PROVIDER (~200-500 typical): two lookups per call, the summary and one page of referring domains. UNAVAILABLE ON THE… |
get_baidu_connection | The project's current Baidu Webmaster (百度搜索资源平台) connection, plus today's push-quota usage. `today.lastRemain` is Baidu's own authoritative remaining-quota count as of the last push (null until the first push of the day) — `today.assumedDailyQuota` is a courtesy default only, never a real ceiling… |
get_bing_backlinks | GetLinkCounts: own-site inbound-link page list for a project's matched Bing site — the focused, single-call form of the backlinks field already embedded in get_bing_site_overview. FREE (no credits). OWN-SITE ONLY: Bing exposes no competitor/any-domain backlink lookup, and some verified sites are… |
get_bing_detail_stats | GetQueryTrafficStats + GetPageStats + GetPageQueryStats + GetQueryPageStats + GetQueryPageDetailStats: per-query and per-page search-performance detail for a project's matched Bing site. FREE (no credits). pageStats (site-wide, weekly) is always attempted. queryTrafficStats/queryPageStats are null… |
get_bing_feed_details | GetFeedDetails: the same Feed shape as one entry from Bing's GetFeeds list, for one specific feed URL on a project's matched site. FREE (no credits), read-only. Bring-your-own-key: requires BING_WEBMASTER_API_KEY. Answers { ok: false, reason: 'not_configured' } when unset, or 'no_matching_site'… |
get_bing_keyword_research | GetKeyword + GetKeywordStats + GetRelatedKeywords: real Bing impression data for a query, its recent weekly history, and related queries — read straight from the Bing Webmaster API. FREE (no credits). Unlike derived/estimated keyword metrics, these numbers come from Bing's own search-impression… |
get_bing_site_overview | Bing's own view of a project's domain: daily search performance (clicks/impressions), per-query stats, own-site inbound links, remaining URL Submission quota, crawl diagnostics (crawl stats, crawl issues, crawl settings), submitted feeds and query-parameter settings — read straight from the Bing… |
get_bing_url_info | GetUrlInfo + optionally GetChildrenUrlInfo: index/crawl metadata (anchor count, discovery/last-crawled dates, HTTP status, whether Bing considers it a page) for one URL on a project's matched Bing site, and, when includeChildren is set, the same metadata for every URL Bing discovered under it… |
get_bing_url_links | GetUrlLinks: the inbound links (anchor text + source URL) pointing at one specific page on a project's matched Bing site, read straight from the Bing Webmaster API. FREE (no credits). Own-site only — Bing exposes no competitor/any-domain backlink lookup, and some verified sites are known to return… |
get_brand_radar_scan_status | Status of a Brand Radar scan started by run_brand_radar_scan, by its `jobId`. `status` is queued/running/complete/errored; a complete scan carries the shaped `result` (share of voice, top cited pages, top prompts), an errored one carries `error.message`. FREE to poll: a completed scan re-reads the… |
get_brand_scan_trend | The recorded AI-visibility history for one brand or domain: mentions, cited sources and competitors seen at each past Brand Radar scan, oldest first. Answers whether visibility in AI answers is moving, which a single run_brand_radar_scan cannot. Returns only scans that actually ran — empty for a… |
get_brave_search_rank_check | Checks where a project's domain (or an explicit targetDomain) ranks in REAL Brave Search results for one keyword. Brave has run its own independent crawler and index since 2023 — a genuinely separate, separately-licensed data source, distinct from this server's free SearXNG/openserp-backed rank… |
get_cannibalisation_report | Finds the queries where the project's connected Search Console property competes with itself: two or more of its own pages drawing impressions for the same query, splitting that query's clicks, click signals and ranking history across URLs. Read-only and FREE (no credits) — Search Console is… |
get_competitor_monitor_changes | Timeline of DETECTED changes for one monitored competitor URL, newest first — a check that found nothing does not appear here. Each entry's summary is a real diff: line-level content added/removed/unchanged counts with a short sample (never a fabricated similarity score), plus… |
get_content_decay_report | Finds pages whose clicks declined by a meaningful amount between two adjacent windows, read entirely from MisarSEO's own archived Search Console history (the top-200-per-day per-page archive the nightly sync fills in). Read-only and FREE (no credits), and makes NO live Search Console call — unlike… |
get_content_optimizer_report | On-page recommendations and an AI content grade for one page, benchmarked against the pages currently ranking for its target keyword, built together — one AI-gateway call produces both the grade and the recommendations). CHARGES ONE AI-gateway operation against the organization's shared monthly… |
And 120 more tools.
In its maker's words
Research keywords, track rankings, audit sites, monitor backlinks and AI-search visibility — from…
- Website
- www.misarseo.com
- Source
- github.com/Misar-AI/misarseo-mcp
- Publisher
- Misar-AI (6 listings in the registry)
- Listed from
- the official MCP Registry as
io.github.Misar-AI/misarseo-mcp - Version
- 1.0.0, updated 17 Oct 2026
- Kinds of work
- Search and research, AI models and agent tools, Writing and translation
The domain it lives on
- misar.io
- registered 25 Aug 2025 (1 year ago), at NAMECHEAP INC, its home page is a working site
- misarseo.com
- registered 8 Jul 2026 (4 months ago), at NameCheap, Inc., its home page is a working site
From our own crawl of domain names: registry records and the home page as our crawler last saw it.
Every call we made
| When | What happened | Time |
|---|---|---|
| Answered | 532 ms | |
| Answered | 549 ms | |
| Answered | 561 ms | |
| Answered | 561 ms |
Next door
Is this your bot? Claim its address to add a verified badge and keep the listing current.