Skip to main content
Glama

Server Details

Ask your AI assistant about your own website's SEO and get answers from your real data, not generic advice.

One connector, all your channels: Google Search Console (rankings, clicks, indexing), Google Analytics (traffic and sources), Google Ads (campaigns and search terms), Google Business Profile (local visibility and reviews), Google Trends, keyword research, backlinks and link prospects, competitor rankings, site crawls, and AI visibility (does ChatGPT mention your site?).

Ask things like: which keywords am I one push away from page 1 for? Why did traffic drop last month? Which competitor is outranking me, and where? Are my ads and SEO fighting over the same keywords?

Then let it act. On a paid plan, your assistant can prepare SEO fixes, content campaigns, and article drafts. Nothing touches your site until you approve it in SEOmatic, and every change shows before-and-after results.

Connect via OAuth: log in, pick your site, done. No API key needed.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
78.1% over 62 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
Minh42/seomatic-mcp
GitHub Stars
1
Server Listing
SEOmatic MCP Server

TDQS

A3.7/5.0

Scored across 53 tools

Disambiguation3/5

The set spans many distinct SEO subdomains, but several clusters overlap heavily: AI visibility (ai_citations, run_ai_visibility_scan, visibility_manage, get_ai_funnel, get_ai_crawler_activity), trust facts (add/confirm/get/show), and task/campaign management. Detailed descriptions help, but an agent must carefully read boundaries to avoid misselection.

Naming Consistency3/5

Names are mostly snake_case and descriptive, but conventions are mixed: some are verb_noun (get_article, set_target_terms), some noun-only (articles, billing), and some noun_manage (task_manage, campaign_manage). Still readable, but no single predictable pattern.

Tool Count2/5

53 tools is excessive for any single MCP server, even a broad SEO platform. Many are multi-action monoliths (task_manage, page_projects, dataset_manage), and the sheer count forces agents to scan a huge surface.

Completeness3/5

Coverage is broad, but key referenced tools are absent: gsc_performance (live Search Console performance) is cited repeatedly yet not provided, and get_ai_visibility is referenced without a standalone tool. These gaps create dead ends for core search-performance queries.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updates
    • Addedadd_trust_fact
    • Addedagent_settings
    • Addedarticles
    • Addedbilling
    • Addedbilling_manage
    • Removedbilling_status
    • Addedbrand_profile
    • Changedcampaign_manage7 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); propose_page_scale (a set of pages on the site own page or own template); propose_location_pages (location pages on the site own layout (drafts), or existing ones improved); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."New value: +"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); expand (release a bulk sweep's held later waves: estimate only without confirm: true); undo (undo every live change the campaign applied (confirm: true after the user's explicit ask)); propose_page_scale (a set of pages on the site own page or own template); propose_location_pages (location pages on the site own layout (drafts), or existing ones improved); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "manage",
        -  "propose_page_scale",
        -  "propose_location_pages",
        -  "propose_content_sweep",
        -  "propose_bulk_edit",
        -  "write_articles"
        -]New value: +[
        +  "list",
        +  "manage",
        +  "expand",
        +  "undo",
        +  "propose_page_scale",
        +  "propose_location_pages",
        +  "propose_content_sweep",
        +  "propose_bulk_edit",
        +  "write_articles"
        +]
      • changedInput schema / properties / campaignId / description
        Previous value: -"manage only: the campaign to act on."New value: +"manage/expand/undo: the campaign to act on."
      • changedInput schema / properties / confirm / description
        Previous value: -"manage only, approve + abandon: must be true - attests the user explicitly asked for this (approve releases work + spend; abandon is irreversible)."New value: +"manage (approve, abandon), expand, undo, and save_article with publish: true: must be true, attesting the user explicitly asked for this (approve releases work and spend; abandon is irreversible; publish sends the article to the CMS). Without it expand returns the estimate only."
      • addedInput schema / properties / confirmDestructive
        Added value: +{
        +  "description": "save_article with publish: the same attestation as confirm, the spelling the confirm widget sends.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / force
        Added value: +{
        +  "description": "undo only: also restore pages a person edited since. Set ONLY after the user saw the skipped list and chose to overwrite those edits.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / publishAsDraft / description
        Previous value: -"propose_page_scale only: publish pages as drafts."New value: +"save_article with publish: default true (a draft in the CMS); false = live. In approval mode the article is always a draft. Also propose_page_scale: publish pages as drafts."
    • Addedconnections
    • Changeddataset_library2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. find_page_set_patterns (keyword research for a page set: the repeated query templates with a varying slot, entities ranked by demand (a seed term adds the keyword provider and costs credits)); list_datasets (available datasets); list_page_projects (the site own page projects (own {{Column}} templates)); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."New value: +"Which operation to run. find_page_set_patterns (keyword research for a page set: the repeated query templates with a varying slot, entities ranked by demand (a seed term adds the keyword provider and costs credits)); list_datasets (available datasets); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "find_page_set_patterns",
        -  "list_datasets",
        -  "list_page_projects",
        -  "dataset_rows",
        -  "list_templates",
        -  "get_template"
        -]New value: +[
        +  "find_page_set_patterns",
        +  "list_datasets",
        +  "dataset_rows",
        +  "list_templates",
        +  "get_template"
        +]
    • Addeddataset_manage
    • Addedpage_projects
    • Changedrank_tracking10 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. history (weekly position per query (target terms by default), up to 52 weeks); movers (biggest position gains and losses between two weeks); serp_history (who held the top 10 each week for one of the site's own queries, and competitor title changes)."New value: +"Which operation to run. history (weekly position per query (target terms by default), up to 52 weeks); movers (biggest position gains and losses between two weeks); serp_history (who held the top 10 each week for one of the site's own queries, and competitor title changes); add_keywords (add up to 100 keywords to a blog project (plan-capped per call; a refusal states the cap)); remove_keywords (remove keywords from a blog project by id, or all of them (confirm: true after the user's yes))."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "history",
        -  "movers",
        -  "serp_history"
        -]New value: +[
        +  "history",
        +  "movers",
        +  "serp_history",
        +  "add_keywords",
        +  "remove_keywords"
        +]
      • addedInput schema / properties / all
        Added value: +{
        +  "description": "remove_keywords: true removes every keyword of the project.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "remove_keywords (required true): the user explicitly asked to remove exactly these keywords. Never set it on your own judgment.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / confirmDestructive
        Added value: +{
        +  "description": "remove_keywords: the same attestation, as the confirm widget and the elicitation retry send it.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / keywordIds
        Added value: +{
        +  "description": "remove_keywords: the keyword ids to remove (1 to 100). Pass this or all: true.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / keywords
        Added value: +{
        +  "description": "add_keywords only (required): 1 to 100 keywords; a duplicate refuses the call.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / languageCode
        Added value: +{
        +  "description": "add_keywords: two-letter language code (default: the workspace market).",
        +  "type": "string"
        +}
      • addedInput schema / properties / locationCode
        Added value: +{
        +  "description": "add_keywords: locale location code (default: the workspace market).",
        +  "type": "integer"
        +}
      • addedInput schema / properties / projectId
        Added value: +{
        +  "description": "add_keywords/remove_keywords (required): the blog project id (dataset_library list_page_projects lists projects with their type; posts = blog).",
        +  "type": "string"
        +}
    • Addedslack_settings
    • Changedstrategy_insights5 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. snapshot (compact brief of cached signals); strategy (themes + ranked big plays); signal (one cached signal in full); content_scores (AI-search scores for generated articles)."New value: +"Which operation to run. snapshot (compact brief of cached signals); strategy (themes + ranked big plays); signal (one cached signal in full); content_scores (AI-search scores for generated articles); client_report (the monthly client report: summary, search detail or work history); proof_links (the proof certificate links (search or AI); admin or owner)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "snapshot",
        -  "strategy",
        -  "signal",
        -  "content_scores"
        -]New value: +[
        +  "snapshot",
        +  "strategy",
        +  "signal",
        +  "content_scores",
        +  "client_report",
        +  "proof_links"
        +]
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "proof_links only: which certificate (default search).",
        +  "enum": [
        +    "search",
        +    "ai"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / month
        Added value: +{
        +  "description": "client_report only: YYYY-MM (default the latest month).",
        +  "type": "string"
        +}
      • addedInput schema / properties / view
        Added value: +{
        +  "description": "client_report only: summary (default), search detail, or work history.",
        +  "enum": [
        +    "summary",
        +    "search",
        +    "work"
        +  ],
        +  "type": "string"
        +}
    • Changedtask_manage14 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds; refresh_pull_request updates an open GitHub pull request, or opens a new one if someone else changed its branch); rollback (undo an executed task's live change (drift-guarded)); paste_done (the user pasted a handed-over change; SEOmatic looks for it on the live page before measuring)."New value: +"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds; refresh_pull_request updates an open GitHub pull request, or opens a new one if someone else changed its branch); rollback (undo an executed task's live change (drift-guarded)); paste_done (the user pasted a handed-over change; SEOmatic looks for it on the live page before measuring); decide_batch (approve or dismiss up to 50 staged tasks in one call, same rails as decide; skipped ids come back with a reason); undo_all (undo EVERYTHING the agent has live, a few per call (confirm: true after the user's explicit ask; admin only)); done (the user made the change themselves; the task moves into measurement); to_campaign (hand a proposed content sweep to the Agent campaigns (the direct task is dismissed)); dismiss_reason (record why the user dismissed a task (closed set)); apply_site_change (apply a staged redirect, robots.txt or prune change the user saw (get's siteChange.shownHash, confirm: true; admin only)); resolve_site_change (resolve an earlier site change whose undo was never confirmed: undo it, or record the admin's 'I resolved it'); protected_pages (the money pages the agent never writes unattended); protect_pages (add, remove or replace the protected pages (admin or owner; removing a URL needs confirm: true))."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "get",
        -  "create",
        -  "decide",
        -  "execute",
        -  "rollback",
        -  "paste_done"
        -]New value: +[
        +  "list",
        +  "get",
        +  "create",
        +  "decide",
        +  "execute",
        +  "rollback",
        +  "paste_done",
        +  "decide_batch",
        +  "undo_all",
        +  "done",
        +  "to_campaign",
        +  "dismiss_reason",
        +  "apply_site_change",
        +  "resolve_site_change",
        +  "protected_pages",
        +  "protect_pages"
        +]
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "undo_all and apply_site_change: must be true, attesting the user explicitly asked for this exact action in this conversation. Never set it on your own judgment.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / confirmDestructive / description
        Previous value: -"decide/execute: required true for indexation-destructive types (noindex, redirect). Attestation that the human explicitly signed off on this specific task after seeing its URL and consequence - never set it on your own judgment."New value: +"decide/decide_batch/execute: required true for indexation-destructive types (noindex, redirect); on decide_batch one attestation covers the call and the refusal names the ids. Attestation that the human explicitly signed off on those specific tasks after seeing their URLs and consequences - never set it on your own judgment."
      • changedInput schema / properties / decision / description
        Previous value: -"decide only: approve releases the task to the gated pipeline; dismiss archives it. Approving an indexation-destructive type (noindex, redirect) also requires confirmDestructive: true."New value: +"decide/decide_batch: approve releases the task(s) to the gated pipeline; dismiss archives. Approving an indexation-destructive type (noindex, redirect) also requires confirmDestructive: true."
      • changedInput schema / properties / force / description
        Previous value: -"rollback only: undo even though the live page drifted from what the agent wrote. Set ONLY after the user explicitly confirmed overwriting their newer edit."New value: +"rollback/undo_all: undo even though the live page drifted from what the agent wrote (undo_all lists the skipped pages first). Set ONLY after the user explicitly confirmed overwriting their newer edit."
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "resolve_site_change only (required): undo removes the change if still ours; confirm_resolved records the admin's own resolution.",
        +  "enum": [
        +    "undo",
        +    "confirm_resolved"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / pages
        Added value: +{
        +  "description": "protect_pages only: full URLs on the site or /path/* prefixes, each with an optional reason (max 200).",
        +  "items": {
        +    "properties": {
        +      "reason": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / pagesMode
        Added value: +{
        +  "description": "protect_pages only: add (default), remove, or replace the whole list.",
        +  "enum": [
        +    "add",
        +    "remove",
        +    "replace"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / reason
        Added value: +{
        +  "description": "dismiss_reason only (required): why the user dismissed it.",
        +  "enum": [
        +    "wrong_page",
        +    "not_priority",
        +    "avoid_topic",
        +    "felt_risky"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / shownHash
        Added value: +{
        +  "description": "apply_site_change only (required): siteChange.shownHash from get, the hash of the change the user saw; a mismatch is refused.",
        +  "type": "string"
        +}
      • addedInput schema / properties / suggestion
        Added value: +{
        +  "description": "done only: what the user applied (e.g. the new title), kept for the verification report.",
        +  "type": "string"
        +}
      • changedInput schema / properties / taskId / description
        Previous value: -"get/decide/execute/rollback/paste_done: the task to act on."New value: +"Every single-task action: the task to act on."
      • addedInput schema / properties / taskIds
        Added value: +{
        +  "description": "decide_batch only (required): up to 50 task ids; more come back skipped over_limit.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Addedteam
    • Addedteam_manage
    • Addedworkspaces
  2. 11 tool updates
    • Changedbacklink_profile6 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. summary (totals, referring domains, rank/spam); anchors (anchor-text distribution); velocity (monthly new vs lost referring domains); referring_domains (top linking domains); link_prospects (link intersect: linking to competitors but not to us)."New value: +"Which operation to run. summary (totals, referring domains, rank/spam); anchors (anchor-text distribution); velocity (monthly new vs lost referring domains); referring_domains (top linking domains); new_lost_links (the individual links gained or lost since a date); link_prospects (link intersect: linking to competitors but not to us)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "summary",
        -  "anchors",
        -  "velocity",
        -  "referring_domains",
        -  "link_prospects"
        -]New value: +[
        +  "summary",
        +  "anchors",
        +  "velocity",
        +  "referring_domains",
        +  "new_lost_links",
        +  "link_prospects"
        +]
      • changedInput schema / properties / limit / description
        Previous value: -"anchors (default 25) and referring_domains (default 50)."New value: +"anchors (default 25), referring_domains (default 50), new_lost_links (1-500, default 100)."
      • addedInput schema / properties / perDomain
        Added value: +{
        +  "description": "new_lost_links only: true = one link per referring domain.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / since
        Added value: +{
        +  "description": "new_lost_links only: YYYY-MM-DD, default 30 days ago.",
        +  "type": "string"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "new_lost_links only: new (default) or lost links.",
        +  "enum": [
        +    "new",
        +    "lost"
        +  ],
        +  "type": "string"
        +}
    • Addedestimate_cost
    • Addedevents
    • Addedget_store_policies
    • Changedimport_attachment_as_dataset2 fields changed
      • addedInput schema / properties / datasetType
        Added value: +{
        +  "description": "'search_console_ai_pages' for the Pages export of Search Console's generative AI performance report",
        +  "enum": [
        +    "search_console_ai_pages"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / dateRange
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Required with search_console_ai_pages: the date range the user exported, as shown in Search Console. Never guess it.",
        +  "properties": {
        +    "end": {
        +      "description": "YYYY-MM-DD",
        +      "type": "string"
        +    },
        +    "start": {
        +      "description": "YYYY-MM-DD",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "start",
        +    "end"
        +  ],
        +  "type": "object"
        +}
    • Addedrank_tracking
    • Changedserp_competitors4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. features (which SERP features appear for a keyword); domain_rankings (top keywords a domain ranks for); domain_overview (organic visibility distribution); domain_competitors (domains ranking for similar keywords)."New value: +"Which operation to run. features (which SERP features appear for a keyword); domain_rankings (top keywords a domain ranks for); domain_overview (organic visibility distribution); domain_competitors (domains ranking for similar keywords); top_pages (a domain's top pages by estimated organic traffic)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "features",
        -  "domain_rankings",
        -  "domain_overview",
        -  "domain_competitors"
        -]New value: +[
        +  "features",
        +  "domain_rankings",
        +  "domain_overview",
        +  "domain_competitors",
        +  "top_pages"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"domain_rankings/domain_overview/domain_competitors: the domain. Omit for the connected workspace's own site (the server fills it in); pass only for a competitor."New value: +"domain_rankings/domain_overview/domain_competitors/top_pages: the domain. Omit for the connected workspace's own site (the server fills it in); pass only for a competitor."
      • changedInput schema / properties / limit / description
        Previous value: -"max results where applicable."New value: +"max results where applicable (top_pages 1-500, default 50)."
    • Addedset_store_policies
    • Addedsite_audit_deep
    • Changedsite_pages5 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. score_draft (score a pasted DRAFT pre-publish (deterministic, free)); analyze (SEO score + critical issues); crawl (title/meta/headings/links); inventory (the user's real synced pages)."New value: +"Which operation to run. score_draft (score a pasted DRAFT pre-publish (deterministic, free)); analyze (SEO score + critical issues); crawl (title/meta/headings/links); inventory (the user's real synced pages); pagespeed (Google PageSpeed now: lab metrics (score, LCP, CLS, TBT) and real-user field data (LCP, INP, CLS)); validate_schema (structured data vs Google rich-result rules: parse errors, missing required/recommended, wrong types (URL or pasted JSON-LD))."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "score_draft",
        -  "analyze",
        -  "crawl",
        -  "inventory"
        -]New value: +[
        +  "score_draft",
        +  "analyze",
        +  "crawl",
        +  "inventory",
        +  "pagespeed",
        +  "validate_schema"
        +]
      • addedInput schema / properties / jsonld
        Added value: +{
        +  "description": "validate_schema only: raw JSON-LD (a JSON document or <script type=\"application/ld+json\"> blocks) to validate instead of a URL.",
        +  "type": "string"
        +}
      • addedInput schema / properties / strategy
        Added value: +{
        +  "description": "pagespeed only: mobile (default) or desktop.",
        +  "enum": [
        +    "mobile",
        +    "desktop"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / url / description
        Previous value: -"analyze/crawl: the URL to inspect."New value: +"analyze/crawl/pagespeed: the URL to inspect. validate_schema: the page to fetch (or pass jsonld instead)."
    • Changedtraffic_analytics1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"max rows where applicable."New value: +"max rows where applicable (ga4_report up to 10,000)."
  3. 3 tool updates
    • Removedgsc_indexing
    • Removedgsc_insights
    • Removedgsc_performance
  4. 38 tool updates
    • Changedai_citations1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedbacklink_profile1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedbilling_status1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedcampaign_manage1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedconfirm_trust_fact1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedcontact_support1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changeddataset_library1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedgenerate_article1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "One sentence on the user's goal for this article (optional).",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_ai_crawler_activity1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_ai_funnel1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_article1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_credit_usage1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_referral_link1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_started1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_target_terms1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_task_rollback1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_trust_entities1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedget_trust_facts1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedgsc_indexing1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedgsc_insights1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedgsc_performance2 fields changed
      • changedInput schema / properties / maxRows / description
        Previous value: -"query_page_matrix only: max query-page pairs (default 2000)."New value: +"query_page_matrix only: max query-page pairs (100-1000, default 200)."
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedimport_attachment_as_dataset1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedkeyword_clusters1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedkeyword_research1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedlocal_presence1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedresume_page_publishing1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedrun_ai_visibility_scan1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedserp_competitors1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedset_target_terms1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedshow_approval_cards1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedshow_trust_facts_card1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedsite_audit1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedsite_pages1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedstrategy_insights1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedtask_manage1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedtraffic_analytics1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedupload_csv1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
    • Changedvisibility_manage1 field changed
      • removedInput schema / properties / user_intent
        Removed value: -{
        -  "description": "Optional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.",
        -  "maxLength": 300,
        -  "type": "string"
        -}
  5. 1 tool update
    • Changeddataset_library4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list_datasets (available datasets); list_page_projects (the site own page projects (own {{Column}} templates)); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."New value: +"Which operation to run. find_page_set_patterns (keyword research for a page set: the repeated query templates with a varying slot, entities ranked by demand (a seed term adds the keyword provider and costs credits)); list_datasets (available datasets); list_page_projects (the site own page projects (own {{Column}} templates)); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list_datasets",
        -  "list_page_projects",
        -  "dataset_rows",
        -  "list_templates",
        -  "get_template"
        -]New value: +[
        +  "find_page_set_patterns",
        +  "list_datasets",
        +  "list_page_projects",
        +  "dataset_rows",
        +  "list_templates",
        +  "get_template"
        +]
      • addedInput schema / properties / minEntities
        Added value: +{
        +  "description": "find_page_set_patterns: smallest set worth showing (default 5).",
        +  "type": "integer"
        +}
      • addedInput schema / properties / seed
        Added value: +{
        +  "description": "find_page_set_patterns: a head term to research with the keyword provider ('signage'); omit for Search Console only.",
        +  "type": "string"
        +}
  6. 1 tool update
    • Changedcampaign_manage1 field changed
      • changedInput schema / properties / autoPublish / description
        Previous value: -"write_articles only: default false (stage as drafts)."New value: +"write_articles only: default true (articles that pass our checks publish on their own, with undo); false keeps them as drafts."
  7. 2 tool updates
    • Changedcampaign_manage7 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); propose_page_scale (programmatic landing pages at scale); propose_location_pages (location pages on the site own layout (drafts), or existing ones improved); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."New value: +"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); propose_page_scale (a set of pages on the site own page or own template); propose_location_pages (location pages on the site own layout (drafts), or existing ones improved); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."
      • changedInput schema / properties / exemplarUrl / description
        Previous value: -"propose_location_pages, create: the customer's page the new pages copy (layout, embeds, page type)."New value: +"propose_location_pages (create) and propose_page_scale: the customer's own page the new pages copy (layout, embeds, page type). propose_page_scale needs exemplarUrl or projectId."
      • removedInput schema / properties / pageTemplate
        Removed value: -{
        -  "description": "propose_page_scale only: built-in template id.",
        -  "type": "string"
        -}
      • addedInput schema / properties / projectId
        Added value: +{
        +  "description": "propose_page_scale: the customer's own project whose fields hold their {{Column}} template. Needs projectId or exemplarUrl.",
        +  "type": "string"
        +}
      • removedInput schema / properties / rowPrompt
        Removed value: -{
        -  "description": "propose_page_scale, rowSourceKind=ai: dataset to generate.",
        -  "type": "string"
        -}
      • changedInput schema / properties / rowSourceKind / description
        Previous value: -"propose_page_scale only (required): where page rows come from."New value: +"propose_page_scale only: where page rows come from (required with exemplarUrl; with projectId defaults to the project dataset). No AI source: an invented row list is refused."
      • changedInput schema / properties / rowSourceKind / enum
        Previous value: -[
        -  "ai",
        -  "user",
        -  "library",
        -  "gbp_locations"
        -]New value: +[
        +  "user",
        +  "library",
        +  "gbp_locations"
        +]
    • Changeddataset_library2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list_datasets (available datasets); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."New value: +"Which operation to run. list_datasets (available datasets); list_page_projects (the site own page projects (own {{Column}} templates)); dataset_rows (sample rows from one dataset); list_templates (built-in page templates); get_template (one template in full)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list_datasets",
        -  "dataset_rows",
        -  "list_templates",
        -  "get_template"
        -]New value: +[
        +  "list_datasets",
        +  "list_page_projects",
        +  "dataset_rows",
        +  "list_templates",
        +  "get_template"
        +]
  8. 3 tool updates
    • Changedcampaign_manage7 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); propose_page_scale (programmatic landing pages at scale); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."New value: +"Which operation to run. list (campaigns with status + task counts); manage (approve/pause/resume/abandon/update a campaign); propose_page_scale (programmatic landing pages at scale); propose_location_pages (location pages on the site own layout (drafts), or existing ones improved); propose_content_sweep (N distinct blog articles as a campaign); propose_bulk_edit (one instruction across many pages); write_articles (direct N-article staging)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "manage",
        -  "propose_page_scale",
        -  "propose_content_sweep",
        -  "propose_bulk_edit",
        -  "write_articles"
        -]New value: +[
        +  "list",
        +  "manage",
        +  "propose_page_scale",
        +  "propose_location_pages",
        +  "propose_content_sweep",
        +  "propose_bulk_edit",
        +  "write_articles"
        +]
      • addedInput schema / properties / exemplarPlace
        Added value: +{
        +  "description": "propose_location_pages, create: the place the model page is about, when its title does not say.",
        +  "type": "string"
        +}
      • addedInput schema / properties / exemplarUrl
        Added value: +{
        +  "description": "propose_location_pages, create: the customer's page the new pages copy (layout, embeds, page type).",
        +  "type": "string"
        +}
      • addedInput schema / properties / locationMode
        Added value: +{
        +  "description": "propose_location_pages only (required): create = new draft pages modelled on exemplarUrl; enrich = rewrite existing location pages (rows carry pageUrl).",
        +  "enum": [
        +    "create",
        +    "enrich"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / rows / description
        Previous value: -"propose_page_scale, rowSourceKind=user: one object per page."New value: +"propose_page_scale, rowSourceKind=user: one object per page. propose_location_pages (required): one object per location (name + the facts the user gave; enrich: pageUrl)."
      • changedInput schema / properties / title / description
        Previous value: -"propose_page_scale (required), propose_content_sweep (required), propose_bulk_edit (optional)."New value: +"propose_page_scale (required), propose_content_sweep (required), propose_bulk_edit and propose_location_pages (optional)."
    • Addedget_target_terms
    • Addedset_target_terms
  9. 1 tool update
    • Changedtask_manage3 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds; refresh_pull_request updates an open GitHub pull request, or opens a new one if someone else changed its branch); rollback (undo an executed task's live change (drift-guarded))."New value: +"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds; refresh_pull_request updates an open GitHub pull request, or opens a new one if someone else changed its branch); rollback (undo an executed task's live change (drift-guarded)); paste_done (the user pasted a handed-over change; SEOmatic looks for it on the live page before measuring)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "get",
        -  "create",
        -  "decide",
        -  "execute",
        -  "rollback"
        -]New value: +[
        +  "list",
        +  "get",
        +  "create",
        +  "decide",
        +  "execute",
        +  "rollback",
        +  "paste_done"
        +]
      • changedInput schema / properties / taskId / description
        Previous value: -"get/decide/execute/rollback: the task to act on."New value: +"get/decide/execute/rollback/paste_done: the task to act on."
  10. 1 tool update
    • Changedgsc_performance4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. top_queries (top search queries); top_pages (top pages); dimension_breakdown (by device/country/date); query_page_matrix (cannibalization / query-to-page map); query_pages (which pages rank for given queries, with each page's own numbers); compare_periods (decay/growth vs the prior period); trend (daily clicks/impressions over time); discover_news (Discover / News / Image / Video surfaces); folder_rollup (performance by URL folder / site section); fresh (provisional today/yesterday numbers (hours-old data))."New value: +"Which operation to run. top_queries (top search queries); top_pages (top pages); dimension_breakdown (by device/country/date, or one page's queries (query + filterPage) / one query's pages (page + filterQuery)); query_page_matrix (cannibalization / query-to-page map); query_pages (which pages rank for given queries, with each page's own numbers); compare_periods (decay/growth vs the prior period); trend (daily clicks/impressions over time); discover_news (Discover / News / Image / Video surfaces); folder_rollup (performance by URL folder / site section); fresh (provisional today/yesterday numbers (hours-old data))."
      • changedInput schema / properties / dimension / description
        Previous value: -"REQUIRED for dimension_breakdown (device|country|date). For compare_periods: query|page (default page). Ignored otherwise."New value: +"REQUIRED for dimension_breakdown: device|country|date|query|page (query + filterPage = the queries one page ranks for, with that page's own numbers; page + filterQuery = the pages ranking for one query). For compare_periods: query|page (default page). Ignored otherwise."
      • changedInput schema / properties / filterPage / description
        Previous value: -"dimension_breakdown only: restrict to one exact page URL."New value: +"dimension_breakdown only: restrict to one exact page URL, as Search Console records it (pair with dimension=query to see the queries that page ranks for)."
      • changedInput schema / properties / filterQuery / description
        Previous value: -"dimension_breakdown only: restrict to one exact query."New value: +"dimension_breakdown only: restrict to one exact query (pair with dimension=page to see which pages rank for it)."
  11. 5 tool updates
    • Addedbilling_status
    • Addedcontact_support
    • Changedget_started2 fields changed
      • addedInput schema / properties / confirmed_own
        Added value: +{
        +  "description": "Set true only after the user confirmed that `site` is their own website; the workspace then remembers it.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / topic
        Added value: +{
        +  "description": "What the business sells or does, in the words a customer would search (e.g. \"wedding photographer lyon\"). Use when no site is on record and the user has not given one: the answer sizes that market instead.",
        +  "maxLength": 80,
        +  "type": "string"
        +}
    • Changedgsc_performance4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. top_queries (top search queries); top_pages (top pages); dimension_breakdown (by device/country/date); query_page_matrix (cannibalization / query-to-page map); compare_periods (decay/growth vs the prior period); trend (daily clicks/impressions over time); discover_news (Discover / News / Image / Video surfaces); folder_rollup (performance by URL folder / site section); fresh (provisional today/yesterday numbers (hours-old data))."New value: +"Which operation to run. top_queries (top search queries); top_pages (top pages); dimension_breakdown (by device/country/date); query_page_matrix (cannibalization / query-to-page map); query_pages (which pages rank for given queries, with each page's own numbers); compare_periods (decay/growth vs the prior period); trend (daily clicks/impressions over time); discover_news (Discover / News / Image / Video surfaces); folder_rollup (performance by URL folder / site section); fresh (provisional today/yesterday numbers (hours-old data))."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "top_queries",
        -  "top_pages",
        -  "dimension_breakdown",
        -  "query_page_matrix",
        -  "compare_periods",
        -  "trend",
        -  "discover_news",
        -  "folder_rollup",
        -  "fresh"
        -]New value: +[
        +  "top_queries",
        +  "top_pages",
        +  "dimension_breakdown",
        +  "query_page_matrix",
        +  "query_pages",
        +  "compare_periods",
        +  "trend",
        +  "discover_news",
        +  "folder_rollup",
        +  "fresh"
        +]
      • addedInput schema / properties / page
        Added value: +{
        +  "description": "query_pages only: a full page URL to check - returns its own row for each query, or null when it does not rank.",
        +  "type": "string"
        +}
      • addedInput schema / properties / queries
        Added value: +{
        +  "description": "REQUIRED for query_pages: 1-5 exact search queries. Page rows are that page's own numbers; queryTotal is site-wide and never a page's number.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Changedtask_manage2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds); rollback (undo an executed task's live change (drift-guarded))."New value: +"Which operation to run. list (the plan board (filterable)); get (one task in full detail); create (stage up to 5 task proposals); decide (approve or dismiss a staged proposal (the approval loop)); execute (run an approved task now; a reviewToken releases staged holds; refresh_pull_request updates an open GitHub pull request, or opens a new one if someone else changed its branch); rollback (undo an executed task's live change (drift-guarded))."
      • addedInput schema / properties / refresh_pull_request
        Added value: +{
        +  "description": "execute only, GitHub: rewrite the task's OPEN pull request against the site's latest version (the dashboard's Refresh): updates the pull request, or opens a new one if someone else changed its branch. Runs the task again, so it uses AI credits like the first run - set it ONLY when the user asked for the refresh.",
        +  "type": "boolean"
        +}
  12. 3 tool updates
    • Addedget_started
    • Removedpay_for_articles
    • Changedrun_ai_visibility_scan1 field changed
      • addedInput schema / properties / is_my_site
        Added value: +{
        +  "description": "Only when the workspace has no site on record yet: true if the domain is the user's own site, false if it is a competitor. Ask the user; never guess.",
        +  "type": "boolean"
        +}
  13. 1 tool update
    • Changedvisibility_manage4 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Which operation to run. list (tracked prompts + plan allowance + cadence); add (track a new buyer question (plan-capped)); update (rename / pin / (de)activate a prompt); remove (delete a prompt permanently (confirm with the user)); set_cadence (weekly / daily / manual - daily is ~7x spend, explicit user ask only)."New value: +"Which operation to run. list (tracked prompts + plan allowance + cadence); add (track a new buyer question (plan-capped)); update (rename / pin / (de)activate a prompt); remove (delete a prompt permanently (confirm with the user)); set_cadence (weekly / daily / manual - daily is ~7x spend, explicit user ask only); set_engines (choose tracked AI engines (full list) or reset to defaults - each engine adds scan cost, quote it first)."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "add",
        -  "update",
        -  "remove",
        -  "set_cadence"
        -]New value: +[
        +  "list",
        +  "add",
        +  "update",
        +  "remove",
        +  "set_cadence",
        +  "set_engines"
        +]
      • addedInput schema / properties / engines
        Added value: +{
        +  "description": "set_engines: the FULL list of engine ids to track (see list for ids and per-engine cost).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / reset
        Added value: +{
        +  "description": "set_engines: true tracks the default engines.",
        +  "type": "boolean"
        +}
  14. 1 tool update
    • Addedget_referral_link
  15. 5 tool updates
    • Addedconfirm_trust_fact
    • Addedget_trust_facts
    • Addedpay_for_articles
    • Changedrun_ai_visibility_scan1 field changed
      • addedInput schema / properties / domain
        Added value: +{
        +  "description": "Competitor domain to scan instead of your own site, e.g. \"competitor.com\". Omit for your own site.",
        +  "maxLength": 253,
        +  "type": "string"
        +}
    • Addedshow_trust_facts_card
  16. 1 tool update
    • Addedupload_csv

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Connects Google Search Console to AI assistants so users can query and analyse SEO performance data in natural language. Provides search analytics, SEO insights, URL inspection, indexing, sitemaps, hourly reporting, and CSV export.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables an AI assistant to query live data from Google Search Console, GA4, AdSense, Keyword Planner, and two Reddit signals (rising posts and demand) in a single conversation, all read-only with your own credentials.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to answer SEO questions by pulling verified data from Google Search Console, GA4, keyword research, backlinks, live SERPs, and AI visibility, with each fact including its source, timestamp, and confidence.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Connects Claude to Google Search Console, GA4, Bing Webmaster Tools, IndexNow, PageSpeed Insights, AdSense and Google Ads Keyword Planner, plus live technical SEO audits of pages and sitemaps. Users ask plain-language questions about traffic drops, index status, canonicals, AI referral traffic and keyword volumes, and answers are pulled live from the APIs in real time.
    28
    48 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.