[
  {
    "name": "google_search_console_get_search_analytics",
    "title": "Get Search Analytics Data",
    "description": "Query Google Search Console search analytics data. Returns clicks, impressions, CTR, and position.\n\nArgs:\n  site_url (string, required): The Search Console property URL.\n  start_date (string, required): Start date in YYYY-MM-DD format.\n  end_date (string, required): End date in YYYY-MM-DD format (must be >= start_date).\n  dimensions (array, optional): Group by dimensions. Valid: query, page, device, country, date, searchAppearance.\n    Note: searchAppearance cannot be combined with query, page, device, or country — only with date.\n  search_type (string, optional): web (default), image, video, news, discover, googleNews.\n  dimension_filter_groups (array, optional): Filter by dimension values.\n    Note: Cannot combine aggregate_by=byPage with a page dimension filter.\n  aggregate_by (string, optional): auto (default), byPage, byProperty, byNewsShowcasePanel.\n  row_limit (int, optional): Number of rows to return. Range: [1, 25000]. Default: 25.\n  start_row (int, optional): 0-based row offset for pagination. Default: 0.\n\nReturns:\n  data: array of { keys, clicks, impressions, ctr, position }\n  rowCount, responseAggregationType, firstIncompleteDate (if data is incomplete)\n\nNote: Data freshness lag — recent dates (last 3+ days) may be incomplete. Check firstIncompleteDate in response.",
    "cli_command": "hopkin google ch-console-get-search-analytics",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--start-date",
        "description": "Start date in YYYY-MM-DD format.",
        "type": "string",
        "required": true
      },
      {
        "flag": "--end-date",
        "description": "End date in YYYY-MM-DD format. Must be >= start_date.",
        "type": "string",
        "required": true
      },
      {
        "flag": "--dimensions",
        "description": "Group results by these dimensions. searchAppearance can only be combined with date.",
        "type": "array",
        "required": false
      },
      {
        "flag": "--search-type",
        "description": "Filter by search type. Default: web.",
        "type": "string",
        "required": false
      },
      {
        "flag": "--dimension-filter-groups",
        "description": "Filter rows by dimension values.",
        "type": "array",
        "required": false
      },
      {
        "flag": "--aggregate-by",
        "description": "Aggregation level. byPage cannot be combined with page dimension filters.",
        "type": "string",
        "required": false
      },
      {
        "flag": "--row-limit",
        "description": "Number of rows to return. Range: 1-25000. Default: 25.",
        "type": "integer",
        "required": false
      },
      {
        "flag": "--start-row",
        "description": "Zero-based row offset for pagination. Default: 0.",
        "type": "integer",
        "required": false
      }
    ],
    "category": "ch-console-get-search-analytics",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "start_date": {
          "type": "string",
          "description": "Start date in YYYY-MM-DD format."
        },
        "end_date": {
          "type": "string",
          "description": "End date in YYYY-MM-DD format. Must be >= start_date."
        },
        "dimensions": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "query",
              "page",
              "device",
              "country",
              "date",
              "searchAppearance"
            ]
          },
          "description": "Group results by these dimensions. searchAppearance can only be combined with date."
        },
        "search_type": {
          "type": "string",
          "enum": [
            "web",
            "image",
            "video",
            "news",
            "discover",
            "googleNews"
          ],
          "default": "web",
          "description": "Filter by search type. Default: web."
        },
        "dimension_filter_groups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "filters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "dimension": {
                      "type": "string",
                      "enum": [
                        "query",
                        "page",
                        "device",
                        "country",
                        "searchAppearance"
                      ]
                    },
                    "operator": {
                      "type": "string",
                      "enum": [
                        "equals",
                        "notEquals",
                        "contains",
                        "notContains",
                        "includingRegex",
                        "excludingRegex"
                      ],
                      "default": "equals"
                    },
                    "expression": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "dimension",
                    "expression"
                  ],
                  "additionalProperties": false
                },
                "minItems": 1
              }
            },
            "required": [
              "filters"
            ],
            "additionalProperties": false
          },
          "description": "Filter rows by dimension values."
        },
        "aggregate_by": {
          "type": "string",
          "enum": [
            "auto",
            "byPage",
            "byProperty",
            "byNewsShowcasePanel"
          ],
          "description": "Aggregation level. byPage cannot be combined with page dimension filters."
        },
        "row_limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 25000,
          "default": 25,
          "description": "Number of rows to return. Range: 1-25000. Default: 25."
        },
        "start_row": {
          "type": "integer",
          "minimum": 0,
          "default": 0,
          "description": "Zero-based row offset for pagination. Default: 0."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "start_date",
        "end_date",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "start_date",
        "type": "string",
        "required": true,
        "description": "Start date in YYYY-MM-DD format."
      },
      {
        "name": "end_date",
        "type": "string",
        "required": true,
        "description": "End date in YYYY-MM-DD format. Must be >= start_date."
      },
      {
        "name": "dimensions",
        "type": "array",
        "required": false,
        "description": "Group results by these dimensions. searchAppearance can only be combined with date."
      },
      {
        "name": "search_type",
        "type": "string",
        "required": false,
        "description": "Filter by search type. Default: web.",
        "enum_values": [
          "web",
          "image",
          "video",
          "news",
          "discover",
          "googleNews"
        ],
        "default": "web"
      },
      {
        "name": "dimension_filter_groups",
        "type": "array",
        "required": false,
        "description": "Filter rows by dimension values."
      },
      {
        "name": "aggregate_by",
        "type": "string",
        "required": false,
        "description": "Aggregation level. byPage cannot be combined with page dimension filters.",
        "enum_values": [
          "auto",
          "byPage",
          "byProperty",
          "byNewsShowcasePanel"
        ]
      },
      {
        "name": "row_limit",
        "type": "integer",
        "required": false,
        "description": "Number of rows to return. Range: 1-25000. Default: 25.",
        "default": 25,
        "constraints": {
          "min": 1,
          "max": 25000
        }
      },
      {
        "name": "start_row",
        "type": "integer",
        "required": false,
        "description": "Zero-based row offset for pagination. Default: 0.",
        "default": 0,
        "constraints": {
          "min": 0
        }
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Basic query",
        "mcp_params": {
          "site_url": "https://example.com/",
          "start_date": "2024-01-01",
          "end_date": "2024-01-31",
          "reason": "Get overall search performance"
        },
        "cli_command": "hopkin google ch-console-get-search-analytics --site-url https://example.com/ --start-date 2024-01-01 --end-date 2024-01-31",
        "natural_language": "Basic query"
      },
      {
        "label": "By query",
        "mcp_params": {
          "site_url": "https://example.com/",
          "start_date": "2024-01-01",
          "end_date": "2024-01-31",
          "dimensions": [
            "query"
          ],
          "reason": "Get top queries"
        },
        "cli_command": "hopkin google ch-console-get-search-analytics --site-url https://example.com/ --start-date 2024-01-01 --end-date 2024-01-31 --dimensions query",
        "natural_language": "By query"
      },
      {
        "label": "By page",
        "mcp_params": {
          "site_url": "https://example.com/",
          "start_date": "2024-01-01",
          "end_date": "2024-01-31",
          "dimensions": [
            "page"
          ],
          "reason": "Get top pages"
        },
        "cli_command": "hopkin google ch-console-get-search-analytics --site-url https://example.com/ --start-date 2024-01-01 --end-date 2024-01-31 --dimensions page",
        "natural_language": "By page"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_get_top_queries",
    "title": "Get Top Search Queries",
    "description": "Get top queries with clicks, impressions, CTR, and position. Automatically identifies high-opportunity queries (position 4-20, impressions >100, CTR <5%).\n\nArgs:\n  site_url (string, required): The Search Console property URL.\n  days (int, optional): Number of days to look back. Range: [1, 90]. Default: 28.\n  start_date / end_date (string, optional): Explicit date range (overrides days).\n  page_filter (string, optional): Filter to queries for a specific URL (exact match).\n  device (string, optional): Filter by device type. Valid: desktop, mobile, tablet.\n  search_type (string, optional): web (default), image, video, news.\n  row_limit (int, optional): Max queries to return. Default: 25.\n  start_row (int, optional): Pagination offset. Default: 0.\n\nReturns:\n  data: top query rows\n  highOpportunityQueries: queries with ranking potential (position 4-20, impressions >100, CTR <5%)\n  site_url, dateRange",
    "cli_command": "hopkin google ch-console-get-top-queries",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--days",
        "description": "Number of days to look back. Default: 28. Range: 1-90.",
        "type": "integer",
        "required": false
      },
      {
        "flag": "--start-date",
        "description": "Override start date (YYYY-MM-DD). Takes precedence over days if both provided.",
        "type": "string",
        "required": false
      },
      {
        "flag": "--end-date",
        "description": "Override end date (YYYY-MM-DD). Takes precedence over days if both provided.",
        "type": "string",
        "required": false
      },
      {
        "flag": "--page-filter",
        "description": "Filter to queries driving traffic to this page (absolute URL or relative path, e.g. \"/blog\").",
        "type": "string",
        "required": false
      },
      {
        "flag": "--device",
        "description": "Filter by device type.",
        "type": "string",
        "required": false
      },
      {
        "flag": "--search-type",
        "description": "",
        "type": "string",
        "required": false
      },
      {
        "flag": "--row-limit",
        "description": "",
        "type": "integer",
        "required": false
      },
      {
        "flag": "--start-row",
        "description": "",
        "type": "integer",
        "required": false
      }
    ],
    "category": "ch-console-get-top-queries",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "days": {
          "type": "integer",
          "minimum": 1,
          "maximum": 90,
          "default": 28,
          "description": "Number of days to look back. Default: 28. Range: 1-90."
        },
        "start_date": {
          "type": "string",
          "description": "Override start date (YYYY-MM-DD). Takes precedence over days if both provided."
        },
        "end_date": {
          "type": "string",
          "description": "Override end date (YYYY-MM-DD). Takes precedence over days if both provided."
        },
        "page_filter": {
          "type": "string",
          "minLength": 1,
          "description": "Filter to queries driving traffic to this page (absolute URL or relative path, e.g. \"/blog\")."
        },
        "device": {
          "type": "string",
          "enum": [
            "desktop",
            "mobile",
            "tablet"
          ],
          "description": "Filter by device type."
        },
        "search_type": {
          "type": "string",
          "enum": [
            "web",
            "image",
            "video",
            "news",
            "discover",
            "googleNews"
          ],
          "default": "web"
        },
        "row_limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 25000,
          "default": 25
        },
        "start_row": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "days",
        "type": "integer",
        "required": false,
        "description": "Number of days to look back. Default: 28. Range: 1-90.",
        "default": 28,
        "constraints": {
          "min": 1,
          "max": 90
        }
      },
      {
        "name": "start_date",
        "type": "string",
        "required": false,
        "description": "Override start date (YYYY-MM-DD). Takes precedence over days if both provided."
      },
      {
        "name": "end_date",
        "type": "string",
        "required": false,
        "description": "Override end date (YYYY-MM-DD). Takes precedence over days if both provided."
      },
      {
        "name": "page_filter",
        "type": "string",
        "required": false,
        "description": "Filter to queries driving traffic to this page (absolute URL or relative path, e.g. \"/blog\").",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "device",
        "type": "string",
        "required": false,
        "description": "Filter by device type.",
        "enum_values": [
          "desktop",
          "mobile",
          "tablet"
        ]
      },
      {
        "name": "search_type",
        "type": "string",
        "required": false,
        "description": "",
        "enum_values": [
          "web",
          "image",
          "video",
          "news",
          "discover",
          "googleNews"
        ],
        "default": "web"
      },
      {
        "name": "row_limit",
        "type": "integer",
        "required": false,
        "description": "",
        "default": 25,
        "constraints": {
          "min": 1,
          "max": 25000
        }
      },
      {
        "name": "start_row",
        "type": "integer",
        "required": false,
        "description": "",
        "default": 0,
        "constraints": {
          "min": 0
        }
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Last 28 days",
        "mcp_params": {
          "site_url": "https://example.com/",
          "days": 28,
          "reason": "Get top queries for last 28 days"
        },
        "cli_command": "hopkin google ch-console-get-top-queries --site-url https://example.com/ --days 28",
        "natural_language": "Last 28 days"
      },
      {
        "label": "Filter by page",
        "mcp_params": {
          "site_url": "https://example.com/",
          "days": 28,
          "page_filter": "https://example.com/blog",
          "reason": "Queries for blog section"
        },
        "cli_command": "hopkin google ch-console-get-top-queries --site-url https://example.com/ --days 28 --page-filter https://example.com/blog",
        "natural_language": "Filter by page"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_compare_performance",
    "title": "Compare Search Performance (Period Over Period)",
    "description": "Compare current vs previous period performance in a single call. Makes 4 parallel API calls internally and returns deltas for clicks, impressions, CTR, and position.\n\nArgs:\n  site_url (string, required): The Search Console property URL.\n  days (int, optional): Length of each period in days. Range: [1, 90]. Default: 28.\n  current_end_date (string, optional): Override the end date of the current period (YYYY-MM-DD). Default: today minus 3 days.\n  search_type (string, optional): web (default), image, video, news.\n\nReturns:\n  currentPeriod, previousPeriod: { startDate, endDate, clicks, impressions, ctr, position }\n  delta: { clicks, clicksPct, impressions, impressionsPct, ctr, position }\n  trend: \"improving\" (clicks up >10%), \"declining\" (clicks down >10%), or \"stable\"\n  topQueries, previousTopQueries: top 50 queries for each period (may be null if sub-query failed)\n  errors: list of sub-query failures (if any) — overall metrics are always present\n\nPeriods are adjacent and non-overlapping: previousEnd + 1 day = currentStart.",
    "cli_command": "hopkin google ch-console-compare-performance",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--days",
        "description": "Window size in days for each period. Default: 28.",
        "type": "integer",
        "required": false
      },
      {
        "flag": "--current-end-date",
        "description": "End date of the current period (YYYY-MM-DD). Default: today - 3 days (data freshness lag).",
        "type": "string",
        "required": false
      },
      {
        "flag": "--search-type",
        "description": "",
        "type": "string",
        "required": false
      }
    ],
    "category": "ch-console-compare-performance",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "days": {
          "type": "integer",
          "minimum": 1,
          "maximum": 90,
          "default": 28,
          "description": "Window size in days for each period. Default: 28."
        },
        "current_end_date": {
          "type": "string",
          "description": "End date of the current period (YYYY-MM-DD). Default: today - 3 days (data freshness lag)."
        },
        "search_type": {
          "type": "string",
          "enum": [
            "web",
            "image",
            "video",
            "news",
            "discover",
            "googleNews"
          ],
          "default": "web"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "days",
        "type": "integer",
        "required": false,
        "description": "Window size in days for each period. Default: 28.",
        "default": 28,
        "constraints": {
          "min": 1,
          "max": 90
        }
      },
      {
        "name": "current_end_date",
        "type": "string",
        "required": false,
        "description": "End date of the current period (YYYY-MM-DD). Default: today - 3 days (data freshness lag)."
      },
      {
        "name": "search_type",
        "type": "string",
        "required": false,
        "description": "",
        "enum_values": [
          "web",
          "image",
          "video",
          "news",
          "discover",
          "googleNews"
        ],
        "default": "web"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Compare 28 days",
        "mcp_params": {
          "site_url": "https://example.com/",
          "days": 28,
          "reason": "Compare this period vs previous"
        },
        "cli_command": "hopkin google ch-console-compare-performance --site-url https://example.com/ --days 28",
        "natural_language": "Compare 28 days"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_get_performance_overview",
    "title": "Get Search Performance Overview",
    "description": "Get a complete overview of search performance in a single call: overall metrics, top queries, top pages, and daily trend. Makes 4 parallel API calls internally.\n\nArgs:\n  site_url (string, required): The Search Console property URL.\n  days (int, optional): Number of days to look back. Range: [1, 90]. Default: 28.\n  search_type (string, optional): web (default), image, video, news.\n\nReturns:\n  overall: aggregate metrics { startDate, endDate, clicks, impressions, ctr, position }\n  topQueries: top 10 queries by clicks\n  topPages: top 10 pages by clicks\n  byDate: daily breakdown\n  dateRange: { startDate, endDate }\n  errors: list of sub-query failures (if any) — partial results are returned when sub-queries fail",
    "cli_command": "hopkin google ch-console-get-performance-overview",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--days",
        "description": "Number of days to look back. Default: 28.",
        "type": "integer",
        "required": false
      },
      {
        "flag": "--search-type",
        "description": "",
        "type": "string",
        "required": false
      }
    ],
    "category": "ch-console-get-performance-overview",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "days": {
          "type": "integer",
          "minimum": 1,
          "maximum": 90,
          "default": 28,
          "description": "Number of days to look back. Default: 28."
        },
        "search_type": {
          "type": "string",
          "enum": [
            "web",
            "image",
            "video",
            "news",
            "discover",
            "googleNews"
          ],
          "default": "web"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "days",
        "type": "integer",
        "required": false,
        "description": "Number of days to look back. Default: 28.",
        "default": 28,
        "constraints": {
          "min": 1,
          "max": 90
        }
      },
      {
        "name": "search_type",
        "type": "string",
        "required": false,
        "description": "",
        "enum_values": [
          "web",
          "image",
          "video",
          "news",
          "discover",
          "googleNews"
        ],
        "default": "web"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Overview",
        "mcp_params": {
          "site_url": "https://example.com/",
          "days": 28,
          "reason": "Full performance overview"
        },
        "cli_command": "hopkin google ch-console-get-performance-overview --site-url https://example.com/ --days 28",
        "natural_language": "Overview"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_check_auth_status",
    "title": "Check Google Search Console Auth Status",
    "description": "Troubleshoot authentication issues. Only use this when another tool fails with a permission or auth error — do NOT call proactively.\n\nReturns: authenticated status, user_id, email, and a human-readable message.",
    "cli_command": "hopkin google ch-console-check-auth-status",
    "cli_flags": [],
    "category": "ch-console-check-auth-status",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Check auth",
        "mcp_params": {
          "reason": "Another tool returned an auth error, checking connection status"
        },
        "cli_command": "hopkin google ch-console-check-auth-status",
        "natural_language": "Check auth"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_list_connections",
    "title": "List Google Search Console Connections",
    "description": "List the Google Search Console connections available to you — both ones you own and ones shared with you via an organization. Only Google connections with Search Console (webmasters.readonly) scope are returned. Use this to discover connection IDs for set_default / share / rename / revoke.",
    "cli_command": "hopkin google ch-console-list-connections",
    "cli_flags": [],
    "category": "ch-console-list-connections",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "List connections",
        "mcp_params": {
          "reason": "User asked which Google Search Console accounts they have connected"
        },
        "cli_command": "hopkin google ch-console-list-connections",
        "natural_language": "List connections"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_set_default_connection",
    "title": "Set Default Google Search Console Connection",
    "description": "Set the Google Search Console connection that should be used by default for subsequent Google Search Console tool calls. The default is scoped to the calling actor (your user account, or the API key being used).",
    "cli_command": "hopkin google ch-console-set-default-connection",
    "cli_flags": [
      {
        "flag": "--connection-id",
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection.",
        "type": "string",
        "required": true
      }
    ],
    "category": "ch-console-set-default-connection",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "connection_id": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "connection_id",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "connection_id",
        "type": "string",
        "required": true,
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Set default",
        "mcp_params": {
          "connection_id": "00000000-0000-0000-0000-000000000001",
          "reason": "User picked their primary Google Search Console workspace"
        },
        "cli_command": "hopkin google ch-console-set-default-connection --connection-id 00000000-0000-0000-0000-000000000001",
        "natural_language": "Set default"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_share_connection",
    "title": "Share Google Search Console Connection With Organization",
    "description": "Share an owned Google Search Console connection with all members of your organization, so teammates can use it without having to reconnect Google themselves. You must be the owner of the connection.",
    "cli_command": "hopkin google ch-console-share-connection",
    "cli_flags": [
      {
        "flag": "--connection-id",
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection.",
        "type": "string",
        "required": true
      }
    ],
    "category": "ch-console-share-connection",
    "annotations": {
      "readOnly": false,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "connection_id": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "connection_id",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "connection_id",
        "type": "string",
        "required": true,
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Share with org",
        "mcp_params": {
          "connection_id": "00000000-0000-0000-0000-000000000001",
          "reason": "User asked to share this Google Search Console connection with their teammates"
        },
        "cli_command": "hopkin google ch-console-share-connection --connection-id 00000000-0000-0000-0000-000000000001",
        "natural_language": "Share with org"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_unshare_connection",
    "title": "Unshare Google Search Console Connection From Organization",
    "description": "Stop sharing an owned Google Search Console connection with your organization. Teammates lose access immediately. You must be the owner.",
    "cli_command": "hopkin google ch-console-unshare-connection",
    "cli_flags": [
      {
        "flag": "--connection-id",
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection.",
        "type": "string",
        "required": true
      }
    ],
    "category": "ch-console-unshare-connection",
    "annotations": {
      "readOnly": false,
      "destructive": true,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "connection_id": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "connection_id",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "connection_id",
        "type": "string",
        "required": true,
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Stop sharing",
        "mcp_params": {
          "connection_id": "00000000-0000-0000-0000-000000000001",
          "reason": "User no longer wants the team to access this Google Search Console connection"
        },
        "cli_command": "hopkin google ch-console-unshare-connection --connection-id 00000000-0000-0000-0000-000000000001",
        "natural_language": "Stop sharing"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_rename_connection",
    "title": "Rename Google Search Console Connection",
    "description": "Rename the display name of an owned Google Search Console connection. The OAuth grant and underlying account are unaffected — this only changes the human-readable label. You must be the owner.",
    "cli_command": "hopkin google ch-console-rename-connection",
    "cli_flags": [
      {
        "flag": "--connection-id",
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection.",
        "type": "string",
        "required": true
      }
    ],
    "category": "ch-console-rename-connection",
    "annotations": {
      "readOnly": false,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "connection_id": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "connection_id",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "connection_id",
        "type": "string",
        "required": true,
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Rename",
        "mcp_params": {
          "connection_id": "00000000-0000-0000-0000-000000000001",
          "display_name": "Acme — Production",
          "reason": "User wanted a clearer label for this Google Search Console connection"
        },
        "cli_command": "hopkin google ch-console-rename-connection --connection-id 00000000-0000-0000-0000-000000000001 --display-name Acme — Production",
        "natural_language": "Rename"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_revoke_connection",
    "title": "Revoke Google Search Console Connection",
    "description": "Revoke (soft-delete) an owned Google Search Console connection. Any defaults pointing to it are invalidated and shared org members lose access. The OAuth grant at Google is NOT revoked by this tool — the user must disconnect via the dashboard if they want to fully revoke at Google. You must be the owner.",
    "cli_command": "hopkin google ch-console-revoke-connection",
    "cli_flags": [
      {
        "flag": "--connection-id",
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection.",
        "type": "string",
        "required": true
      }
    ],
    "category": "ch-console-revoke-connection",
    "annotations": {
      "readOnly": false,
      "destructive": true,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "connection_id": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "connection_id",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "connection_id",
        "type": "string",
        "required": true,
        "description": "UUID of the connection to mark as the actor's default Google Search Console connection."
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Revoke",
        "mcp_params": {
          "connection_id": "00000000-0000-0000-0000-000000000001",
          "reason": "User asked to disconnect this Google Search Console account"
        },
        "cli_command": "hopkin google ch-console-revoke-connection --connection-id 00000000-0000-0000-0000-000000000001",
        "natural_language": "Revoke"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_developer_feedback",
    "title": "Submit Developer Feedback",
    "description": "Submit feedback about missing tools, improvements, bugs, or workflow gaps in the Search Console MCP toolset. Not for user-facing issues (auth errors, API errors).\n\nArgs:\n  feedback_type: new_tool, improvement, bug, workflow_gap\n  title: Short description (5-200 chars)\n  description: What is needed and why (20-2000 chars)\n  current_workaround (optional): How you're working around the gap\n  priority (optional): low, medium (default), high\n\nReturns: confirmation that feedback was recorded.",
    "cli_command": "hopkin google ch-console-developer-feedback",
    "cli_flags": [
      {
        "flag": "--feedback-type",
        "description": "Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow)",
        "type": "string",
        "required": true
      },
      {
        "flag": "--title",
        "description": "Concise title summarizing the feedback",
        "type": "string",
        "required": true
      },
      {
        "flag": "--description",
        "description": "What is needed and why",
        "type": "string",
        "required": true
      },
      {
        "flag": "--current-workaround",
        "description": "Current workaround, if any",
        "type": "string",
        "required": false
      },
      {
        "flag": "--priority",
        "description": "Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue)",
        "type": "string",
        "required": false
      },
      {
        "flag": "--interface",
        "description": "Interface the feedback originated from: MCP (default) or CLI",
        "type": "string",
        "required": false
      }
    ],
    "category": "ch-console-developer-feedback",
    "annotations": {
      "readOnly": false,
      "destructive": false,
      "idempotent": true,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "feedback_type": {
          "type": "string",
          "enum": [
            "new_tool",
            "improvement",
            "bug",
            "workflow_gap"
          ],
          "description": "Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow)"
        },
        "title": {
          "type": "string",
          "minLength": 5,
          "maxLength": 200,
          "description": "Concise title summarizing the feedback"
        },
        "description": {
          "type": "string",
          "minLength": 20,
          "maxLength": 2000,
          "description": "What is needed and why"
        },
        "current_workaround": {
          "type": "string",
          "maxLength": 1000,
          "description": "Current workaround, if any"
        },
        "priority": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "default": "medium",
          "description": "Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue)"
        },
        "interface": {
          "type": "string",
          "enum": [
            "MCP",
            "CLI"
          ],
          "default": "MCP",
          "description": "Interface the feedback originated from: MCP (default) or CLI"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "feedback_type",
        "title",
        "description",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "feedback_type",
        "type": "string",
        "required": true,
        "description": "Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow)",
        "enum_values": [
          "new_tool",
          "improvement",
          "bug",
          "workflow_gap"
        ]
      },
      {
        "name": "title",
        "type": "string",
        "required": true,
        "description": "Concise title summarizing the feedback",
        "constraints": {
          "min_length": 5,
          "max_length": 200
        }
      },
      {
        "name": "description",
        "type": "string",
        "required": true,
        "description": "What is needed and why",
        "constraints": {
          "min_length": 20,
          "max_length": 2000
        }
      },
      {
        "name": "current_workaround",
        "type": "string",
        "required": false,
        "description": "Current workaround, if any",
        "constraints": {
          "max_length": 1000
        }
      },
      {
        "name": "priority",
        "type": "string",
        "required": false,
        "description": "Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue)",
        "enum_values": [
          "low",
          "medium",
          "high"
        ],
        "default": "medium"
      },
      {
        "name": "interface",
        "type": "string",
        "required": false,
        "description": "Interface the feedback originated from: MCP (default) or CLI",
        "enum_values": [
          "MCP",
          "CLI"
        ],
        "default": "MCP"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Missing tool",
        "mcp_params": {
          "feedback_type": "new_tool",
          "title": "Submit sitemap",
          "description": "Need ability to submit/resubmit sitemaps",
          "priority": "medium",
          "reason": "User asked to submit a new sitemap"
        },
        "cli_command": "hopkin google ch-console-developer-feedback --feedback-type new_tool --title Submit sitemap --description Need ability to submit/resubmit sitemaps --priority medium",
        "natural_language": "Missing tool"
      },
      {
        "label": "Workflow gap",
        "mcp_params": {
          "feedback_type": "workflow_gap",
          "title": "Bulk URL inspection",
          "description": "Cannot inspect multiple URLs at once",
          "current_workaround": "Call inspect_url one URL at a time",
          "reason": "User had 10 URLs to check"
        },
        "cli_command": "hopkin google ch-console-developer-feedback --feedback-type workflow_gap --title Bulk URL inspection --description Cannot inspect multiple URLs at once --current-workaround Call inspect_url one URL at a time",
        "natural_language": "Workflow gap"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_ping",
    "title": "Ping Google Search Console MCP Server",
    "description": "Health check. Returns server status, version, and timestamp.",
    "cli_command": "hopkin google ch-console ping",
    "cli_flags": [
      {
        "flag": "--message",
        "description": "Optional message to echo back",
        "type": "string",
        "required": false
      }
    ],
    "category": "ch-console-ping",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": true,
      "openWorld": false
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "maxLength": 100,
          "description": "Optional message to echo back"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "message",
        "type": "string",
        "required": false,
        "description": "Optional message to echo back",
        "constraints": {
          "max_length": 100
        }
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Health check",
        "mcp_params": {
          "reason": "Verify server is running"
        },
        "cli_command": "hopkin google ch-console ping",
        "natural_language": "Health check"
      },
      {
        "label": "With message",
        "mcp_params": {
          "message": "hello",
          "reason": "Test connectivity"
        },
        "cli_command": "hopkin google ch-console ping --message hello",
        "natural_language": "With message"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_list_sites",
    "title": "List Search Console Properties",
    "description": "List all Google Search Console properties (sites) the user has access to.\n\nUse this tool first to discover which properties are available before calling other tools.\nResults are cached for 15 minutes; pass refresh=true only when you need the latest list.\n\nArgs:\n  refresh (bool, optional): Force a fresh fetch from the API, bypassing cache. Default: false.\n\nReturns:\n  List of site properties with siteUrl and permissionLevel (siteOwner, siteFullUser, siteRestrictedUser, siteUnverifiedUser).",
    "cli_command": "hopkin google ch-console-list-sites",
    "cli_flags": [
      {
        "flag": "--refresh",
        "description": "Force a fresh fetch from the API, bypassing cache",
        "type": "boolean",
        "required": false
      }
    ],
    "category": "ch-console-list-sites",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "refresh": {
          "type": "boolean",
          "description": "Force a fresh fetch from the API, bypassing cache"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "refresh",
        "type": "boolean",
        "required": false,
        "description": "Force a fresh fetch from the API, bypassing cache"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "List sites",
        "mcp_params": {
          "reason": "Get all Search Console properties"
        },
        "cli_command": "hopkin google ch-console-list-sites",
        "natural_language": "List sites"
      },
      {
        "label": "Force refresh",
        "mcp_params": {
          "refresh": true,
          "reason": "Need latest site list"
        },
        "cli_command": "hopkin google ch-console-list-sites --refresh true",
        "natural_language": "Force refresh"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_list_sitemaps",
    "title": "List Search Console Sitemaps",
    "description": "List sitemaps submitted to Google Search Console for a property.\n\nArgs:\n  site_url (string, required): The Search Console property URL (e.g. https://example.com/ or sc-domain:example.com).\n  refresh (bool, optional): Force a fresh fetch from the API, bypassing cache. Default: false.\n\nReturns:\n  List of submitted sitemaps with path, last submission date, pending/error status, and error/warning counts.",
    "cli_command": "hopkin google ch-console-list-sitemaps",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--refresh",
        "description": "Force a fresh fetch from the API, bypassing cache",
        "type": "boolean",
        "required": false
      }
    ],
    "category": "ch-console-list-sitemaps",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "refresh": {
          "type": "boolean",
          "description": "Force a fresh fetch from the API, bypassing cache"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "refresh",
        "type": "boolean",
        "required": false,
        "description": "Force a fresh fetch from the API, bypassing cache"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "List sitemaps",
        "mcp_params": {
          "site_url": "https://example.com/",
          "reason": "Check sitemap submission status"
        },
        "cli_command": "hopkin google ch-console-list-sitemaps --site-url https://example.com/",
        "natural_language": "List sitemaps"
      },
      {
        "label": "Domain property",
        "mcp_params": {
          "site_url": "sc-domain:example.com",
          "reason": "Check sitemaps for domain property"
        },
        "cli_command": "hopkin google ch-console-list-sitemaps --site-url sc-domain:example.com",
        "natural_language": "Domain property"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  },
  {
    "name": "google_search_console_inspect_url",
    "title": "Inspect URL (Google Search Console)",
    "description": "Get detailed indexing and crawl status for a specific URL using the Google Search Console URL Inspection API.\n\nArgs:\n  inspection_url (string, required): Fully-qualified URL to inspect. Must be under the site_url property.\n  site_url (string, required): The Search Console property that contains the URL (e.g. https://example.com/ or sc-domain:example.com).\n  language_code (string, optional): IETF BCP-47 language code for translated issue messages (e.g. en-US).\n\nReturns:\n  verdict (PASS/FAIL/NEUTRAL), coverage state, robots.txt state, indexing state, page fetch state,\n  last crawl time, crawled as (mobile/desktop), Google canonical URL, user canonical URL, sitemap references.\n\nNote: Use google_search_console_list_sites first to discover valid site_url values.",
    "cli_command": "hopkin google ch-console-inspect-url",
    "cli_flags": [
      {
        "flag": "--site-url",
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "type": "string",
        "required": true
      },
      {
        "flag": "--refresh",
        "description": "Force a fresh fetch from the API, bypassing cache",
        "type": "boolean",
        "required": false
      }
    ],
    "category": "ch-console-inspect-url",
    "annotations": {
      "readOnly": true,
      "destructive": false,
      "idempotent": false,
      "openWorld": true
    },
    "inputSchema": {
      "type": "object",
      "properties": {
        "site_url": {
          "type": "string",
          "minLength": 1,
          "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com)."
        },
        "refresh": {
          "type": "boolean",
          "description": "Force a fresh fetch from the API, bypassing cache"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Why this tool call is needed"
        }
      },
      "required": [
        "site_url",
        "reason"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "parameters": [
      {
        "name": "site_url",
        "type": "string",
        "required": true,
        "description": "The Search Console property URL (e.g. sc-domain:example.com or just example.com).",
        "constraints": {
          "min_length": 1
        }
      },
      {
        "name": "refresh",
        "type": "boolean",
        "required": false,
        "description": "Force a fresh fetch from the API, bypassing cache"
      },
      {
        "name": "reason",
        "type": "string",
        "required": true,
        "description": "Why this tool call is needed",
        "constraints": {
          "min_length": 1,
          "max_length": 500
        }
      }
    ],
    "examples": [
      {
        "label": "Inspect URL",
        "mcp_params": {
          "inspection_url": "https://example.com/page",
          "site_url": "https://example.com/",
          "reason": "Check if page is indexed"
        },
        "cli_command": "hopkin google ch-console-inspect-url --inspection-url https://example.com/page --site-url https://example.com/",
        "natural_language": "Inspect URL"
      },
      {
        "label": "With language",
        "mcp_params": {
          "inspection_url": "https://example.com/page",
          "site_url": "https://example.com/",
          "language_code": "en-US",
          "reason": "Check indexing with English messages"
        },
        "cli_command": "hopkin google ch-console-inspect-url --inspection-url https://example.com/page --site-url https://example.com/ --language-code en-US",
        "natural_language": "With language"
      }
    ],
    "response_format": "markdown",
    "related_tools": [],
    "tool_type": "standard"
  }
]