@getmcpads/google-search-console-mcp-server 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2191 @@
1
+ {
2
+ "serverInfo": {
3
+ "name": "@getmcpads/google-search-console-mcp-server",
4
+ "title": "Google Search Console MCP server: 20 read tools.",
5
+ "version": "2.0.0",
6
+ "websiteUrl": "https://www.getmcpads.com/tools/search-console",
7
+ "icons": [
8
+ {
9
+ "src": "https://mcp.getmcpads.com/icon.svg",
10
+ "mimeType": "image/svg+xml"
11
+ }
12
+ ]
13
+ },
14
+ "tools": [
15
+ {
16
+ "name": "gsc_list_sites",
17
+ "title": "gsc list sites",
18
+ "description": "List all Google Search Console properties accessible with the current credentials.",
19
+ "inputSchema": {
20
+ "type": "object",
21
+ "properties": {},
22
+ "$schema": "http://json-schema.org/draft-07/schema#"
23
+ },
24
+ "outputSchema": {
25
+ "type": "object",
26
+ "properties": {
27
+ "result": {
28
+ "anyOf": [
29
+ {
30
+ "type": "object",
31
+ "properties": {},
32
+ "additionalProperties": true
33
+ },
34
+ {
35
+ "type": "array",
36
+ "items": {}
37
+ },
38
+ {
39
+ "type": "string"
40
+ },
41
+ {
42
+ "type": "number"
43
+ },
44
+ {
45
+ "type": "boolean"
46
+ },
47
+ {
48
+ "type": "null"
49
+ }
50
+ ],
51
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
52
+ }
53
+ },
54
+ "required": [
55
+ "result"
56
+ ],
57
+ "additionalProperties": false,
58
+ "$schema": "http://json-schema.org/draft-07/schema#"
59
+ },
60
+ "annotations": {
61
+ "readOnlyHint": true,
62
+ "destructiveHint": false,
63
+ "idempotentHint": true,
64
+ "openWorldHint": true
65
+ },
66
+ "execution": {
67
+ "taskSupport": "forbidden"
68
+ }
69
+ },
70
+ {
71
+ "name": "gsc_get_site",
72
+ "title": "gsc get site",
73
+ "description": "Get one Search Console property and its exact permission level (read-only sites.get).",
74
+ "inputSchema": {
75
+ "type": "object",
76
+ "properties": {
77
+ "siteUrl": {
78
+ "type": "string",
79
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
80
+ }
81
+ },
82
+ "additionalProperties": false,
83
+ "$schema": "http://json-schema.org/draft-07/schema#"
84
+ },
85
+ "outputSchema": {
86
+ "type": "object",
87
+ "properties": {
88
+ "result": {
89
+ "anyOf": [
90
+ {
91
+ "type": "object",
92
+ "properties": {},
93
+ "additionalProperties": true
94
+ },
95
+ {
96
+ "type": "array",
97
+ "items": {}
98
+ },
99
+ {
100
+ "type": "string"
101
+ },
102
+ {
103
+ "type": "number"
104
+ },
105
+ {
106
+ "type": "boolean"
107
+ },
108
+ {
109
+ "type": "null"
110
+ }
111
+ ],
112
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
113
+ }
114
+ },
115
+ "required": [
116
+ "result"
117
+ ],
118
+ "additionalProperties": false,
119
+ "$schema": "http://json-schema.org/draft-07/schema#"
120
+ },
121
+ "annotations": {
122
+ "readOnlyHint": true,
123
+ "destructiveHint": false,
124
+ "idempotentHint": true,
125
+ "openWorldHint": true
126
+ },
127
+ "execution": {
128
+ "taskSupport": "forbidden"
129
+ }
130
+ },
131
+ {
132
+ "name": "gsc_health_check",
133
+ "title": "gsc health check",
134
+ "description": "Verify Google Search Console read-only authentication, visible properties, configured default site, and permission levels without exposing tokens.",
135
+ "inputSchema": {
136
+ "type": "object",
137
+ "properties": {
138
+ "siteUrl": {
139
+ "type": "string",
140
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
141
+ }
142
+ },
143
+ "additionalProperties": false,
144
+ "$schema": "http://json-schema.org/draft-07/schema#"
145
+ },
146
+ "outputSchema": {
147
+ "type": "object",
148
+ "properties": {
149
+ "result": {
150
+ "anyOf": [
151
+ {
152
+ "type": "object",
153
+ "properties": {},
154
+ "additionalProperties": true
155
+ },
156
+ {
157
+ "type": "array",
158
+ "items": {}
159
+ },
160
+ {
161
+ "type": "string"
162
+ },
163
+ {
164
+ "type": "number"
165
+ },
166
+ {
167
+ "type": "boolean"
168
+ },
169
+ {
170
+ "type": "null"
171
+ }
172
+ ],
173
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
174
+ }
175
+ },
176
+ "required": [
177
+ "result"
178
+ ],
179
+ "additionalProperties": false,
180
+ "$schema": "http://json-schema.org/draft-07/schema#"
181
+ },
182
+ "annotations": {
183
+ "readOnlyHint": true,
184
+ "destructiveHint": false,
185
+ "idempotentHint": true,
186
+ "openWorldHint": true
187
+ },
188
+ "execution": {
189
+ "taskSupport": "forbidden"
190
+ }
191
+ },
192
+ {
193
+ "name": "gsc_query_search_analytics",
194
+ "title": "gsc query search analytics",
195
+ "description": "Query Google Search Console Search Analytics. Returns clicks, impressions, CTR, and average position for queries, pages, countries, devices, dates, and search appearances.\nUse gsc://metrics, gsc://dimensions, gsc://filters, and gsc://compatibility for available fields and rules.",
196
+ "inputSchema": {
197
+ "type": "object",
198
+ "properties": {
199
+ "siteUrl": {
200
+ "type": "string",
201
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
202
+ },
203
+ "metrics": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "string"
207
+ },
208
+ "description": "Native: clicks, impressions, ctr, position. Calculated: ctrOpportunity, clicksPerImpression, impressionShare, clickShare."
209
+ },
210
+ "dimensions": {
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string"
214
+ },
215
+ "maxItems": 5,
216
+ "description": "Up to 5 dimensions selected from query, page, country, device, date, hour, searchAppearance."
217
+ },
218
+ "filters": {
219
+ "type": "array",
220
+ "items": {
221
+ "type": "object",
222
+ "properties": {
223
+ "field": {
224
+ "type": "string"
225
+ },
226
+ "operator": {
227
+ "type": "string",
228
+ "enum": [
229
+ "contains",
230
+ "equals",
231
+ "notContains",
232
+ "notEquals",
233
+ "includingRegex",
234
+ "excludingRegex"
235
+ ]
236
+ },
237
+ "value": {
238
+ "type": [
239
+ "string",
240
+ "number",
241
+ "boolean"
242
+ ]
243
+ }
244
+ },
245
+ "required": [
246
+ "field",
247
+ "operator",
248
+ "value"
249
+ ],
250
+ "additionalProperties": false
251
+ },
252
+ "description": "Filters combined according to this tool's query schema. Use provider field names and the declared operators."
253
+ },
254
+ "searchType": {
255
+ "type": "string",
256
+ "enum": [
257
+ "web",
258
+ "image",
259
+ "video",
260
+ "news",
261
+ "discover",
262
+ "googleNews"
263
+ ],
264
+ "default": "web",
265
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
266
+ },
267
+ "dataState": {
268
+ "type": "string",
269
+ "enum": [
270
+ "final",
271
+ "all",
272
+ "hourly_all"
273
+ ],
274
+ "default": "all",
275
+ "description": "final=stable data, all=fresh daily data, hourly_all=fresh hourly data (use hour dimension)."
276
+ },
277
+ "aggregationType": {
278
+ "type": "string",
279
+ "enum": [
280
+ "auto",
281
+ "byPage",
282
+ "byProperty",
283
+ "byNewsShowcasePanel"
284
+ ],
285
+ "default": "auto",
286
+ "description": "Official GSC aggregation. byProperty is incompatible with page grouping/filtering and Discover/Google News. byNewsShowcasePanel requires discover/googleNews plus searchAppearance equals NEWS_SHOWCASE, and forbids page grouping/filtering or another searchAppearance filter."
287
+ },
288
+ "datePreset": {
289
+ "type": "string",
290
+ "enum": [
291
+ "today",
292
+ "yesterday",
293
+ "last7days",
294
+ "last28days",
295
+ "last3months",
296
+ "last6months",
297
+ "last12months",
298
+ "last16months"
299
+ ],
300
+ "default": "last28days",
301
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
302
+ },
303
+ "dateRange": {
304
+ "type": "object",
305
+ "properties": {
306
+ "startDate": {
307
+ "type": "string",
308
+ "description": "Start date YYYY-MM-DD"
309
+ },
310
+ "endDate": {
311
+ "type": "string",
312
+ "description": "End date YYYY-MM-DD"
313
+ }
314
+ },
315
+ "required": [
316
+ "startDate",
317
+ "endDate"
318
+ ],
319
+ "additionalProperties": false,
320
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
321
+ },
322
+ "orderBy": {
323
+ "type": "string",
324
+ "enum": [
325
+ "clicks",
326
+ "impressions",
327
+ "ctr",
328
+ "position",
329
+ "ctrOpportunity",
330
+ "clicksPerImpression",
331
+ "impressionShare",
332
+ "clickShare"
333
+ ],
334
+ "default": "clicks",
335
+ "description": "Field used to order report rows."
336
+ },
337
+ "orderDirection": {
338
+ "type": "string",
339
+ "enum": [
340
+ "ASC",
341
+ "DESC"
342
+ ],
343
+ "default": "DESC",
344
+ "description": "Sort direction for the selected ordering field."
345
+ },
346
+ "limit": {
347
+ "type": "integer",
348
+ "minimum": 1,
349
+ "maximum": 25000,
350
+ "default": 1000,
351
+ "description": "Maximum number of returned items or rows. The declared bounds and default apply; use pagination for additional results."
352
+ },
353
+ "startRow": {
354
+ "type": "integer",
355
+ "minimum": 0,
356
+ "description": "Optional 0-based row offset for explicit pagination."
357
+ },
358
+ "autoPaginate": {
359
+ "type": "boolean",
360
+ "default": false,
361
+ "description": "When true, omit rowLimit so the GSC client auto-paginates until exhaustion."
362
+ }
363
+ },
364
+ "additionalProperties": false,
365
+ "$schema": "http://json-schema.org/draft-07/schema#"
366
+ },
367
+ "outputSchema": {
368
+ "type": "object",
369
+ "properties": {
370
+ "result": {
371
+ "anyOf": [
372
+ {
373
+ "type": "object",
374
+ "properties": {},
375
+ "additionalProperties": true
376
+ },
377
+ {
378
+ "type": "array",
379
+ "items": {}
380
+ },
381
+ {
382
+ "type": "string"
383
+ },
384
+ {
385
+ "type": "number"
386
+ },
387
+ {
388
+ "type": "boolean"
389
+ },
390
+ {
391
+ "type": "null"
392
+ }
393
+ ],
394
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
395
+ }
396
+ },
397
+ "required": [
398
+ "result"
399
+ ],
400
+ "additionalProperties": false,
401
+ "$schema": "http://json-schema.org/draft-07/schema#"
402
+ },
403
+ "annotations": {
404
+ "readOnlyHint": true,
405
+ "destructiveHint": false,
406
+ "idempotentHint": true,
407
+ "openWorldHint": true
408
+ },
409
+ "execution": {
410
+ "taskSupport": "forbidden"
411
+ }
412
+ },
413
+ {
414
+ "name": "gsc_inspect_url",
415
+ "title": "gsc inspect url",
416
+ "description": "Inspect a URL for Google indexing status, crawl info, mobile usability, AMP, and rich results. Quota: 2000 requests/day/property.",
417
+ "inputSchema": {
418
+ "type": "object",
419
+ "properties": {
420
+ "siteUrl": {
421
+ "type": "string",
422
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
423
+ },
424
+ "url": {
425
+ "type": "string",
426
+ "format": "uri",
427
+ "description": "Full URL to inspect."
428
+ },
429
+ "languageCode": {
430
+ "type": "string",
431
+ "description": "Optional IETF language tag, e.g. en-US or fr-FR."
432
+ }
433
+ },
434
+ "required": [
435
+ "url"
436
+ ],
437
+ "additionalProperties": false,
438
+ "$schema": "http://json-schema.org/draft-07/schema#"
439
+ },
440
+ "outputSchema": {
441
+ "type": "object",
442
+ "properties": {
443
+ "result": {
444
+ "anyOf": [
445
+ {
446
+ "type": "object",
447
+ "properties": {},
448
+ "additionalProperties": true
449
+ },
450
+ {
451
+ "type": "array",
452
+ "items": {}
453
+ },
454
+ {
455
+ "type": "string"
456
+ },
457
+ {
458
+ "type": "number"
459
+ },
460
+ {
461
+ "type": "boolean"
462
+ },
463
+ {
464
+ "type": "null"
465
+ }
466
+ ],
467
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
468
+ }
469
+ },
470
+ "required": [
471
+ "result"
472
+ ],
473
+ "additionalProperties": false,
474
+ "$schema": "http://json-schema.org/draft-07/schema#"
475
+ },
476
+ "annotations": {
477
+ "readOnlyHint": true,
478
+ "destructiveHint": false,
479
+ "idempotentHint": true,
480
+ "openWorldHint": true
481
+ },
482
+ "execution": {
483
+ "taskSupport": "forbidden"
484
+ }
485
+ },
486
+ {
487
+ "name": "gsc_bulk_inspect_urls",
488
+ "title": "gsc bulk inspect urls",
489
+ "description": "Inspect multiple URLs with a conservative sequential limit and normalized URL Inspection results. Quota: 2000 requests/day/property.",
490
+ "inputSchema": {
491
+ "type": "object",
492
+ "properties": {
493
+ "siteUrl": {
494
+ "type": "string",
495
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
496
+ },
497
+ "urls": {
498
+ "type": "array",
499
+ "items": {
500
+ "type": "string",
501
+ "format": "uri"
502
+ },
503
+ "minItems": 1,
504
+ "maxItems": 10,
505
+ "description": "Full URLs to inspect. Maximum 10 per call to protect URL Inspection quota."
506
+ },
507
+ "languageCode": {
508
+ "type": "string",
509
+ "description": "Optional IETF language tag, e.g. en-US or fr-FR."
510
+ },
511
+ "continueOnError": {
512
+ "type": "boolean",
513
+ "default": true,
514
+ "description": "When true, returns per-URL errors instead of failing the entire batch."
515
+ }
516
+ },
517
+ "required": [
518
+ "urls"
519
+ ],
520
+ "additionalProperties": false,
521
+ "$schema": "http://json-schema.org/draft-07/schema#"
522
+ },
523
+ "outputSchema": {
524
+ "type": "object",
525
+ "properties": {
526
+ "result": {
527
+ "anyOf": [
528
+ {
529
+ "type": "object",
530
+ "properties": {},
531
+ "additionalProperties": true
532
+ },
533
+ {
534
+ "type": "array",
535
+ "items": {}
536
+ },
537
+ {
538
+ "type": "string"
539
+ },
540
+ {
541
+ "type": "number"
542
+ },
543
+ {
544
+ "type": "boolean"
545
+ },
546
+ {
547
+ "type": "null"
548
+ }
549
+ ],
550
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
551
+ }
552
+ },
553
+ "required": [
554
+ "result"
555
+ ],
556
+ "additionalProperties": false,
557
+ "$schema": "http://json-schema.org/draft-07/schema#"
558
+ },
559
+ "annotations": {
560
+ "readOnlyHint": true,
561
+ "destructiveHint": false,
562
+ "idempotentHint": true,
563
+ "openWorldHint": true
564
+ },
565
+ "execution": {
566
+ "taskSupport": "forbidden"
567
+ }
568
+ },
569
+ {
570
+ "name": "gsc_list_sitemaps",
571
+ "title": "gsc list sitemaps",
572
+ "description": "List sitemaps submitted for a Search Console property, including processing status and submitted/indexed counts.",
573
+ "inputSchema": {
574
+ "type": "object",
575
+ "properties": {
576
+ "siteUrl": {
577
+ "type": "string",
578
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
579
+ },
580
+ "sitemapIndex": {
581
+ "type": "string",
582
+ "format": "uri",
583
+ "description": "Optional sitemap index URL used to return only its child sitemaps."
584
+ }
585
+ },
586
+ "additionalProperties": false,
587
+ "$schema": "http://json-schema.org/draft-07/schema#"
588
+ },
589
+ "outputSchema": {
590
+ "type": "object",
591
+ "properties": {
592
+ "result": {
593
+ "anyOf": [
594
+ {
595
+ "type": "object",
596
+ "properties": {},
597
+ "additionalProperties": true
598
+ },
599
+ {
600
+ "type": "array",
601
+ "items": {}
602
+ },
603
+ {
604
+ "type": "string"
605
+ },
606
+ {
607
+ "type": "number"
608
+ },
609
+ {
610
+ "type": "boolean"
611
+ },
612
+ {
613
+ "type": "null"
614
+ }
615
+ ],
616
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
617
+ }
618
+ },
619
+ "required": [
620
+ "result"
621
+ ],
622
+ "additionalProperties": false,
623
+ "$schema": "http://json-schema.org/draft-07/schema#"
624
+ },
625
+ "annotations": {
626
+ "readOnlyHint": true,
627
+ "destructiveHint": false,
628
+ "idempotentHint": true,
629
+ "openWorldHint": true
630
+ },
631
+ "execution": {
632
+ "taskSupport": "forbidden"
633
+ }
634
+ },
635
+ {
636
+ "name": "gsc_get_sitemap",
637
+ "title": "gsc get sitemap",
638
+ "description": "Get one submitted sitemap by full feed path, including type, fetch state, warnings/errors, and submitted/indexed content totals.",
639
+ "inputSchema": {
640
+ "type": "object",
641
+ "properties": {
642
+ "siteUrl": {
643
+ "type": "string",
644
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
645
+ },
646
+ "feedpath": {
647
+ "type": "string",
648
+ "format": "uri",
649
+ "description": "Full sitemap URL exactly as submitted to Search Console."
650
+ }
651
+ },
652
+ "required": [
653
+ "feedpath"
654
+ ],
655
+ "additionalProperties": false,
656
+ "$schema": "http://json-schema.org/draft-07/schema#"
657
+ },
658
+ "outputSchema": {
659
+ "type": "object",
660
+ "properties": {
661
+ "result": {
662
+ "anyOf": [
663
+ {
664
+ "type": "object",
665
+ "properties": {},
666
+ "additionalProperties": true
667
+ },
668
+ {
669
+ "type": "array",
670
+ "items": {}
671
+ },
672
+ {
673
+ "type": "string"
674
+ },
675
+ {
676
+ "type": "number"
677
+ },
678
+ {
679
+ "type": "boolean"
680
+ },
681
+ {
682
+ "type": "null"
683
+ }
684
+ ],
685
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
686
+ }
687
+ },
688
+ "required": [
689
+ "result"
690
+ ],
691
+ "additionalProperties": false,
692
+ "$schema": "http://json-schema.org/draft-07/schema#"
693
+ },
694
+ "annotations": {
695
+ "readOnlyHint": true,
696
+ "destructiveHint": false,
697
+ "idempotentHint": true,
698
+ "openWorldHint": true
699
+ },
700
+ "execution": {
701
+ "taskSupport": "forbidden"
702
+ }
703
+ },
704
+ {
705
+ "name": "gsc_get_sitemap_health",
706
+ "title": "gsc get sitemap health",
707
+ "description": "Return an enriched read-only sitemap health summary with status totals, submitted/indexed content counts, warnings, and errors.",
708
+ "inputSchema": {
709
+ "type": "object",
710
+ "properties": {
711
+ "siteUrl": {
712
+ "type": "string",
713
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
714
+ }
715
+ },
716
+ "additionalProperties": false,
717
+ "$schema": "http://json-schema.org/draft-07/schema#"
718
+ },
719
+ "outputSchema": {
720
+ "type": "object",
721
+ "properties": {
722
+ "result": {
723
+ "anyOf": [
724
+ {
725
+ "type": "object",
726
+ "properties": {},
727
+ "additionalProperties": true
728
+ },
729
+ {
730
+ "type": "array",
731
+ "items": {}
732
+ },
733
+ {
734
+ "type": "string"
735
+ },
736
+ {
737
+ "type": "number"
738
+ },
739
+ {
740
+ "type": "boolean"
741
+ },
742
+ {
743
+ "type": "null"
744
+ }
745
+ ],
746
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
747
+ }
748
+ },
749
+ "required": [
750
+ "result"
751
+ ],
752
+ "additionalProperties": false,
753
+ "$schema": "http://json-schema.org/draft-07/schema#"
754
+ },
755
+ "annotations": {
756
+ "readOnlyHint": true,
757
+ "destructiveHint": false,
758
+ "idempotentHint": true,
759
+ "openWorldHint": true
760
+ },
761
+ "execution": {
762
+ "taskSupport": "forbidden"
763
+ }
764
+ },
765
+ {
766
+ "name": "gsc_compare_search_types",
767
+ "title": "gsc compare search types",
768
+ "description": "Compare performance across Search Console search types: web, image, video, news, discover, and Google News.",
769
+ "inputSchema": {
770
+ "type": "object",
771
+ "properties": {
772
+ "siteUrl": {
773
+ "type": "string",
774
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
775
+ },
776
+ "searchTypes": {
777
+ "type": "array",
778
+ "items": {
779
+ "type": "string",
780
+ "enum": [
781
+ "web",
782
+ "image",
783
+ "video",
784
+ "news",
785
+ "discover",
786
+ "googleNews"
787
+ ]
788
+ },
789
+ "minItems": 1,
790
+ "maxItems": 6,
791
+ "default": [
792
+ "web",
793
+ "image",
794
+ "video",
795
+ "discover"
796
+ ],
797
+ "description": "Search surfaces to compare. Each surface is queried separately; do not sum overlapping surfaces."
798
+ },
799
+ "datePreset": {
800
+ "type": "string",
801
+ "enum": [
802
+ "today",
803
+ "yesterday",
804
+ "last7days",
805
+ "last28days",
806
+ "last3months",
807
+ "last6months",
808
+ "last12months",
809
+ "last16months"
810
+ ],
811
+ "default": "last28days",
812
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
813
+ },
814
+ "dateRange": {
815
+ "type": "object",
816
+ "properties": {
817
+ "startDate": {
818
+ "type": "string"
819
+ },
820
+ "endDate": {
821
+ "type": "string"
822
+ }
823
+ },
824
+ "required": [
825
+ "startDate",
826
+ "endDate"
827
+ ],
828
+ "additionalProperties": false,
829
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
830
+ }
831
+ },
832
+ "additionalProperties": false,
833
+ "$schema": "http://json-schema.org/draft-07/schema#"
834
+ },
835
+ "outputSchema": {
836
+ "type": "object",
837
+ "properties": {
838
+ "result": {
839
+ "anyOf": [
840
+ {
841
+ "type": "object",
842
+ "properties": {},
843
+ "additionalProperties": true
844
+ },
845
+ {
846
+ "type": "array",
847
+ "items": {}
848
+ },
849
+ {
850
+ "type": "string"
851
+ },
852
+ {
853
+ "type": "number"
854
+ },
855
+ {
856
+ "type": "boolean"
857
+ },
858
+ {
859
+ "type": "null"
860
+ }
861
+ ],
862
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
863
+ }
864
+ },
865
+ "required": [
866
+ "result"
867
+ ],
868
+ "additionalProperties": false,
869
+ "$schema": "http://json-schema.org/draft-07/schema#"
870
+ },
871
+ "annotations": {
872
+ "readOnlyHint": true,
873
+ "destructiveHint": false,
874
+ "idempotentHint": true,
875
+ "openWorldHint": true
876
+ },
877
+ "execution": {
878
+ "taskSupport": "forbidden"
879
+ }
880
+ },
881
+ {
882
+ "name": "gsc_get_data_freshness",
883
+ "title": "gsc get data freshness",
884
+ "description": "Detect the most recent date with Search Analytics data by querying recent daily rows.",
885
+ "inputSchema": {
886
+ "type": "object",
887
+ "properties": {
888
+ "siteUrl": {
889
+ "type": "string",
890
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
891
+ },
892
+ "searchType": {
893
+ "type": "string",
894
+ "enum": [
895
+ "web",
896
+ "image",
897
+ "video",
898
+ "news",
899
+ "discover",
900
+ "googleNews"
901
+ ],
902
+ "default": "web",
903
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
904
+ },
905
+ "lookbackDays": {
906
+ "type": "integer",
907
+ "minimum": 3,
908
+ "maximum": 30,
909
+ "default": 14,
910
+ "description": "Recent days to scan for daily data. Max 30."
911
+ }
912
+ },
913
+ "additionalProperties": false,
914
+ "$schema": "http://json-schema.org/draft-07/schema#"
915
+ },
916
+ "outputSchema": {
917
+ "type": "object",
918
+ "properties": {
919
+ "result": {
920
+ "anyOf": [
921
+ {
922
+ "type": "object",
923
+ "properties": {},
924
+ "additionalProperties": true
925
+ },
926
+ {
927
+ "type": "array",
928
+ "items": {}
929
+ },
930
+ {
931
+ "type": "string"
932
+ },
933
+ {
934
+ "type": "number"
935
+ },
936
+ {
937
+ "type": "boolean"
938
+ },
939
+ {
940
+ "type": "null"
941
+ }
942
+ ],
943
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
944
+ }
945
+ },
946
+ "required": [
947
+ "result"
948
+ ],
949
+ "additionalProperties": false,
950
+ "$schema": "http://json-schema.org/draft-07/schema#"
951
+ },
952
+ "annotations": {
953
+ "readOnlyHint": true,
954
+ "destructiveHint": false,
955
+ "idempotentHint": true,
956
+ "openWorldHint": true
957
+ },
958
+ "execution": {
959
+ "taskSupport": "forbidden"
960
+ }
961
+ },
962
+ {
963
+ "name": "gsc_monitor_indexation_freshness",
964
+ "title": "gsc monitor indexation freshness",
965
+ "description": "Read-only monitoring snapshot for Search Analytics freshness, sitemap indexation totals, and an optional small URL Inspection sample.",
966
+ "inputSchema": {
967
+ "type": "object",
968
+ "properties": {
969
+ "siteUrl": {
970
+ "type": "string",
971
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
972
+ },
973
+ "searchTypes": {
974
+ "type": "array",
975
+ "items": {
976
+ "type": "string",
977
+ "enum": [
978
+ "web",
979
+ "image",
980
+ "video",
981
+ "news",
982
+ "discover",
983
+ "googleNews"
984
+ ]
985
+ },
986
+ "minItems": 1,
987
+ "maxItems": 6,
988
+ "default": [
989
+ "web"
990
+ ],
991
+ "description": "Search surfaces to compare. Each surface is queried separately; do not sum overlapping surfaces."
992
+ },
993
+ "lookbackDays": {
994
+ "type": "integer",
995
+ "minimum": 3,
996
+ "maximum": 30,
997
+ "default": 14,
998
+ "description": "Recent days to scan for Search Analytics freshness."
999
+ },
1000
+ "freshnessLagWarningDays": {
1001
+ "type": "integer",
1002
+ "minimum": 1,
1003
+ "maximum": 14,
1004
+ "default": 3,
1005
+ "description": "Maximum acceptable lag in days before freshness is marked delayed/stale."
1006
+ },
1007
+ "inspectUrls": {
1008
+ "type": "array",
1009
+ "items": {
1010
+ "type": "string",
1011
+ "format": "uri"
1012
+ },
1013
+ "maxItems": 10,
1014
+ "default": [],
1015
+ "description": "Optional URLs to inspect. Maximum 10 to protect URL Inspection quota."
1016
+ },
1017
+ "languageCode": {
1018
+ "type": "string",
1019
+ "description": "Optional IETF language tag for URL Inspection, e.g. en-US or fr-FR."
1020
+ }
1021
+ },
1022
+ "additionalProperties": false,
1023
+ "$schema": "http://json-schema.org/draft-07/schema#"
1024
+ },
1025
+ "outputSchema": {
1026
+ "type": "object",
1027
+ "properties": {
1028
+ "result": {
1029
+ "anyOf": [
1030
+ {
1031
+ "type": "object",
1032
+ "properties": {},
1033
+ "additionalProperties": true
1034
+ },
1035
+ {
1036
+ "type": "array",
1037
+ "items": {}
1038
+ },
1039
+ {
1040
+ "type": "string"
1041
+ },
1042
+ {
1043
+ "type": "number"
1044
+ },
1045
+ {
1046
+ "type": "boolean"
1047
+ },
1048
+ {
1049
+ "type": "null"
1050
+ }
1051
+ ],
1052
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1053
+ }
1054
+ },
1055
+ "required": [
1056
+ "result"
1057
+ ],
1058
+ "additionalProperties": false,
1059
+ "$schema": "http://json-schema.org/draft-07/schema#"
1060
+ },
1061
+ "annotations": {
1062
+ "readOnlyHint": true,
1063
+ "destructiveHint": false,
1064
+ "idempotentHint": true,
1065
+ "openWorldHint": true
1066
+ },
1067
+ "execution": {
1068
+ "taskSupport": "forbidden"
1069
+ }
1070
+ },
1071
+ {
1072
+ "name": "gsc_track_sitemap_deltas",
1073
+ "title": "gsc track sitemap deltas",
1074
+ "description": "Read-only sitemap delta tracker. Fetches the current sitemap snapshot and compares it to an agent-provided baseline; no state is written.",
1075
+ "inputSchema": {
1076
+ "type": "object",
1077
+ "properties": {
1078
+ "siteUrl": {
1079
+ "type": "string",
1080
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1081
+ },
1082
+ "baseline": {
1083
+ "type": "array",
1084
+ "items": {
1085
+ "type": "object",
1086
+ "properties": {
1087
+ "path": {
1088
+ "type": "string",
1089
+ "description": "Sitemap URL/path returned by GSC."
1090
+ },
1091
+ "submitted": {
1092
+ "type": "integer",
1093
+ "minimum": 0,
1094
+ "default": 0
1095
+ },
1096
+ "indexed": {
1097
+ "type": "integer",
1098
+ "minimum": 0,
1099
+ "default": 0
1100
+ },
1101
+ "warnings": {
1102
+ "type": "integer",
1103
+ "minimum": 0,
1104
+ "default": 0
1105
+ },
1106
+ "errors": {
1107
+ "type": "integer",
1108
+ "minimum": 0,
1109
+ "default": 0
1110
+ },
1111
+ "lastSubmitted": {
1112
+ "type": "string"
1113
+ },
1114
+ "lastDownloaded": {
1115
+ "type": "string"
1116
+ }
1117
+ },
1118
+ "required": [
1119
+ "path"
1120
+ ],
1121
+ "additionalProperties": false
1122
+ },
1123
+ "default": [],
1124
+ "description": "Previous snapshot entries from this tool's snapshot output."
1125
+ },
1126
+ "includeUnchanged": {
1127
+ "type": "boolean",
1128
+ "default": false,
1129
+ "description": "Include entries with no observed change in the comparison."
1130
+ },
1131
+ "minAbsIndexedDelta": {
1132
+ "type": "integer",
1133
+ "minimum": 0,
1134
+ "default": 1,
1135
+ "description": "Minimum absolute indexed URL delta to include otherwise unchanged sitemaps."
1136
+ }
1137
+ },
1138
+ "additionalProperties": false,
1139
+ "$schema": "http://json-schema.org/draft-07/schema#"
1140
+ },
1141
+ "outputSchema": {
1142
+ "type": "object",
1143
+ "properties": {
1144
+ "result": {
1145
+ "anyOf": [
1146
+ {
1147
+ "type": "object",
1148
+ "properties": {},
1149
+ "additionalProperties": true
1150
+ },
1151
+ {
1152
+ "type": "array",
1153
+ "items": {}
1154
+ },
1155
+ {
1156
+ "type": "string"
1157
+ },
1158
+ {
1159
+ "type": "number"
1160
+ },
1161
+ {
1162
+ "type": "boolean"
1163
+ },
1164
+ {
1165
+ "type": "null"
1166
+ }
1167
+ ],
1168
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1169
+ }
1170
+ },
1171
+ "required": [
1172
+ "result"
1173
+ ],
1174
+ "additionalProperties": false,
1175
+ "$schema": "http://json-schema.org/draft-07/schema#"
1176
+ },
1177
+ "annotations": {
1178
+ "readOnlyHint": true,
1179
+ "destructiveHint": false,
1180
+ "idempotentHint": true,
1181
+ "openWorldHint": true
1182
+ },
1183
+ "execution": {
1184
+ "taskSupport": "forbidden"
1185
+ }
1186
+ },
1187
+ {
1188
+ "name": "gsc_analyze_search_appearance_trends",
1189
+ "title": "gsc analyze search appearance trends",
1190
+ "description": "Analyze structured data and rich-result trend signals via the Search Analytics searchAppearance dimension when GSC exposes it.",
1191
+ "inputSchema": {
1192
+ "type": "object",
1193
+ "properties": {
1194
+ "siteUrl": {
1195
+ "type": "string",
1196
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1197
+ },
1198
+ "searchType": {
1199
+ "type": "string",
1200
+ "enum": [
1201
+ "web",
1202
+ "image",
1203
+ "video",
1204
+ "news",
1205
+ "discover",
1206
+ "googleNews"
1207
+ ],
1208
+ "default": "web",
1209
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
1210
+ },
1211
+ "datePreset": {
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "today",
1215
+ "yesterday",
1216
+ "last7days",
1217
+ "last28days",
1218
+ "last3months",
1219
+ "last6months",
1220
+ "last12months",
1221
+ "last16months"
1222
+ ],
1223
+ "default": "last28days",
1224
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
1225
+ },
1226
+ "currentDateRange": {
1227
+ "type": "object",
1228
+ "properties": {
1229
+ "startDate": {
1230
+ "type": "string",
1231
+ "description": "Start date YYYY-MM-DD"
1232
+ },
1233
+ "endDate": {
1234
+ "type": "string",
1235
+ "description": "End date YYYY-MM-DD"
1236
+ }
1237
+ },
1238
+ "required": [
1239
+ "startDate",
1240
+ "endDate"
1241
+ ],
1242
+ "additionalProperties": false,
1243
+ "description": "Current period. Defaults to datePreset."
1244
+ },
1245
+ "previousDateRange": {
1246
+ "$ref": "#/properties/currentDateRange",
1247
+ "description": "Previous period. Defaults to the immediately preceding period with the same length."
1248
+ },
1249
+ "includePages": {
1250
+ "type": "boolean",
1251
+ "default": false,
1252
+ "description": "When true, groups by searchAppearance + page for page-level rich result trends."
1253
+ },
1254
+ "limit": {
1255
+ "type": "integer",
1256
+ "minimum": 1,
1257
+ "maximum": 25000,
1258
+ "default": 5000,
1259
+ "description": "Maximum number of returned items or rows. The declared bounds and default apply; use pagination for additional results."
1260
+ },
1261
+ "topN": {
1262
+ "type": "integer",
1263
+ "minimum": 1,
1264
+ "maximum": 100,
1265
+ "default": 50,
1266
+ "description": "Maximum number of highest-ranked results to return."
1267
+ },
1268
+ "minImpressions": {
1269
+ "type": "integer",
1270
+ "minimum": 0,
1271
+ "default": 0,
1272
+ "description": "Minimum reported impressions required for a row to enter the analysis."
1273
+ },
1274
+ "sortBy": {
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "currentClicks",
1278
+ "currentImpressions",
1279
+ "clicksDelta",
1280
+ "impressionsDelta",
1281
+ "positionDelta"
1282
+ ],
1283
+ "default": "impressionsDelta",
1284
+ "description": "Metric or dimension used to rank the returned results."
1285
+ }
1286
+ },
1287
+ "additionalProperties": false,
1288
+ "$schema": "http://json-schema.org/draft-07/schema#"
1289
+ },
1290
+ "outputSchema": {
1291
+ "type": "object",
1292
+ "properties": {
1293
+ "result": {
1294
+ "anyOf": [
1295
+ {
1296
+ "type": "object",
1297
+ "properties": {},
1298
+ "additionalProperties": true
1299
+ },
1300
+ {
1301
+ "type": "array",
1302
+ "items": {}
1303
+ },
1304
+ {
1305
+ "type": "string"
1306
+ },
1307
+ {
1308
+ "type": "number"
1309
+ },
1310
+ {
1311
+ "type": "boolean"
1312
+ },
1313
+ {
1314
+ "type": "null"
1315
+ }
1316
+ ],
1317
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1318
+ }
1319
+ },
1320
+ "required": [
1321
+ "result"
1322
+ ],
1323
+ "additionalProperties": false,
1324
+ "$schema": "http://json-schema.org/draft-07/schema#"
1325
+ },
1326
+ "annotations": {
1327
+ "readOnlyHint": true,
1328
+ "destructiveHint": false,
1329
+ "idempotentHint": true,
1330
+ "openWorldHint": true
1331
+ },
1332
+ "execution": {
1333
+ "taskSupport": "forbidden"
1334
+ }
1335
+ },
1336
+ {
1337
+ "name": "gsc_plan_large_site_sampling",
1338
+ "title": "gsc plan large site sampling",
1339
+ "description": "Build a read-only URL Inspection sampling plan for large sites from sitemap risk signals and Search Analytics page performance.",
1340
+ "inputSchema": {
1341
+ "type": "object",
1342
+ "properties": {
1343
+ "siteUrl": {
1344
+ "type": "string",
1345
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1346
+ },
1347
+ "searchType": {
1348
+ "type": "string",
1349
+ "enum": [
1350
+ "web",
1351
+ "image",
1352
+ "video",
1353
+ "news",
1354
+ "discover",
1355
+ "googleNews"
1356
+ ],
1357
+ "default": "web",
1358
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
1359
+ },
1360
+ "datePreset": {
1361
+ "type": "string",
1362
+ "enum": [
1363
+ "today",
1364
+ "yesterday",
1365
+ "last7days",
1366
+ "last28days",
1367
+ "last3months",
1368
+ "last6months",
1369
+ "last12months",
1370
+ "last16months"
1371
+ ],
1372
+ "default": "last28days",
1373
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
1374
+ },
1375
+ "dateRange": {
1376
+ "type": "object",
1377
+ "properties": {
1378
+ "startDate": {
1379
+ "type": "string",
1380
+ "description": "Start date YYYY-MM-DD"
1381
+ },
1382
+ "endDate": {
1383
+ "type": "string",
1384
+ "description": "End date YYYY-MM-DD"
1385
+ }
1386
+ },
1387
+ "required": [
1388
+ "startDate",
1389
+ "endDate"
1390
+ ],
1391
+ "additionalProperties": false,
1392
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
1393
+ },
1394
+ "objectives": {
1395
+ "type": "array",
1396
+ "items": {
1397
+ "type": "string",
1398
+ "enum": [
1399
+ "topTraffic",
1400
+ "lowCtr",
1401
+ "declining",
1402
+ "sitemapRisk",
1403
+ "staleSitemaps"
1404
+ ]
1405
+ },
1406
+ "minItems": 1,
1407
+ "maxItems": 5,
1408
+ "default": [
1409
+ "topTraffic",
1410
+ "lowCtr",
1411
+ "declining",
1412
+ "sitemapRisk",
1413
+ "staleSitemaps"
1414
+ ],
1415
+ "description": "Analysis goals that determine the recommended large-site sampling strategy."
1416
+ },
1417
+ "pageLimit": {
1418
+ "type": "integer",
1419
+ "minimum": 1,
1420
+ "maximum": 25000,
1421
+ "default": 5000,
1422
+ "description": "Maximum number of pages considered for the sampling plan."
1423
+ },
1424
+ "maxInspectionUrls": {
1425
+ "type": "integer",
1426
+ "minimum": 1,
1427
+ "maximum": 10,
1428
+ "default": 10,
1429
+ "description": "Maximum URL Inspection candidates included in the plan; inspection calls consume provider quota."
1430
+ },
1431
+ "minImpressionsForLowCtr": {
1432
+ "type": "integer",
1433
+ "minimum": 1,
1434
+ "default": 100,
1435
+ "description": "Minimum impressions before a page is considered for low-CTR analysis."
1436
+ },
1437
+ "staleSitemapDays": {
1438
+ "type": "integer",
1439
+ "minimum": 1,
1440
+ "maximum": 180,
1441
+ "default": 14,
1442
+ "description": "Number of days after which a sitemap's last download is considered stale."
1443
+ }
1444
+ },
1445
+ "additionalProperties": false,
1446
+ "$schema": "http://json-schema.org/draft-07/schema#"
1447
+ },
1448
+ "outputSchema": {
1449
+ "type": "object",
1450
+ "properties": {
1451
+ "result": {
1452
+ "anyOf": [
1453
+ {
1454
+ "type": "object",
1455
+ "properties": {},
1456
+ "additionalProperties": true
1457
+ },
1458
+ {
1459
+ "type": "array",
1460
+ "items": {}
1461
+ },
1462
+ {
1463
+ "type": "string"
1464
+ },
1465
+ {
1466
+ "type": "number"
1467
+ },
1468
+ {
1469
+ "type": "boolean"
1470
+ },
1471
+ {
1472
+ "type": "null"
1473
+ }
1474
+ ],
1475
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1476
+ }
1477
+ },
1478
+ "required": [
1479
+ "result"
1480
+ ],
1481
+ "additionalProperties": false,
1482
+ "$schema": "http://json-schema.org/draft-07/schema#"
1483
+ },
1484
+ "annotations": {
1485
+ "readOnlyHint": true,
1486
+ "destructiveHint": false,
1487
+ "idempotentHint": true,
1488
+ "openWorldHint": true
1489
+ },
1490
+ "execution": {
1491
+ "taskSupport": "forbidden"
1492
+ }
1493
+ },
1494
+ {
1495
+ "name": "gsc_indexation_watchlist",
1496
+ "title": "gsc indexation watchlist",
1497
+ "description": "Read-only URL Inspection watchlist for critical URLs. Inspects up to 10 URLs and returns alert/review/ok assessments without storing state.",
1498
+ "inputSchema": {
1499
+ "type": "object",
1500
+ "properties": {
1501
+ "siteUrl": {
1502
+ "type": "string",
1503
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1504
+ },
1505
+ "urls": {
1506
+ "type": "array",
1507
+ "items": {
1508
+ "type": "object",
1509
+ "properties": {
1510
+ "url": {
1511
+ "type": "string",
1512
+ "format": "uri"
1513
+ },
1514
+ "label": {
1515
+ "type": "string"
1516
+ },
1517
+ "priority": {
1518
+ "type": "string",
1519
+ "enum": [
1520
+ "low",
1521
+ "medium",
1522
+ "high",
1523
+ "critical"
1524
+ ],
1525
+ "default": "medium"
1526
+ },
1527
+ "tags": {
1528
+ "type": "array",
1529
+ "items": {
1530
+ "type": "string"
1531
+ },
1532
+ "default": []
1533
+ },
1534
+ "expectedVerdict": {
1535
+ "type": "string",
1536
+ "enum": [
1537
+ "PASS",
1538
+ "PARTIAL",
1539
+ "FAIL",
1540
+ "NEUTRAL",
1541
+ "VERDICT_UNSPECIFIED"
1542
+ ],
1543
+ "default": "PASS"
1544
+ },
1545
+ "expectedCanonical": {
1546
+ "type": "string",
1547
+ "format": "uri"
1548
+ },
1549
+ "expectedCoverageState": {
1550
+ "type": "string"
1551
+ }
1552
+ },
1553
+ "required": [
1554
+ "url"
1555
+ ],
1556
+ "additionalProperties": false
1557
+ },
1558
+ "minItems": 1,
1559
+ "maxItems": 10,
1560
+ "description": "Watchlist entries. Maximum 10 per call to protect URL Inspection quota."
1561
+ },
1562
+ "languageCode": {
1563
+ "type": "string",
1564
+ "description": "Optional IETF language tag, e.g. en-US or fr-FR."
1565
+ },
1566
+ "continueOnError": {
1567
+ "type": "boolean",
1568
+ "default": true,
1569
+ "description": "Continue with other URLs when one inspection fails, returning individual failures."
1570
+ }
1571
+ },
1572
+ "required": [
1573
+ "urls"
1574
+ ],
1575
+ "additionalProperties": false,
1576
+ "$schema": "http://json-schema.org/draft-07/schema#"
1577
+ },
1578
+ "outputSchema": {
1579
+ "type": "object",
1580
+ "properties": {
1581
+ "result": {
1582
+ "anyOf": [
1583
+ {
1584
+ "type": "object",
1585
+ "properties": {},
1586
+ "additionalProperties": true
1587
+ },
1588
+ {
1589
+ "type": "array",
1590
+ "items": {}
1591
+ },
1592
+ {
1593
+ "type": "string"
1594
+ },
1595
+ {
1596
+ "type": "number"
1597
+ },
1598
+ {
1599
+ "type": "boolean"
1600
+ },
1601
+ {
1602
+ "type": "null"
1603
+ }
1604
+ ],
1605
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1606
+ }
1607
+ },
1608
+ "required": [
1609
+ "result"
1610
+ ],
1611
+ "additionalProperties": false,
1612
+ "$schema": "http://json-schema.org/draft-07/schema#"
1613
+ },
1614
+ "annotations": {
1615
+ "readOnlyHint": true,
1616
+ "destructiveHint": false,
1617
+ "idempotentHint": true,
1618
+ "openWorldHint": true
1619
+ },
1620
+ "execution": {
1621
+ "taskSupport": "forbidden"
1622
+ }
1623
+ },
1624
+ {
1625
+ "name": "gsc_find_losses_gains",
1626
+ "title": "gsc find losses gains",
1627
+ "description": "Compare two periods for query or page performance and return click/impression/CTR/position deltas.",
1628
+ "inputSchema": {
1629
+ "type": "object",
1630
+ "properties": {
1631
+ "siteUrl": {
1632
+ "type": "string",
1633
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1634
+ },
1635
+ "dimension": {
1636
+ "type": "string",
1637
+ "enum": [
1638
+ "query",
1639
+ "page"
1640
+ ],
1641
+ "default": "query",
1642
+ "description": "Reporting dimension used to group and compare results."
1643
+ },
1644
+ "searchType": {
1645
+ "type": "string",
1646
+ "enum": [
1647
+ "web",
1648
+ "image",
1649
+ "video",
1650
+ "news",
1651
+ "discover",
1652
+ "googleNews"
1653
+ ],
1654
+ "default": "web",
1655
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
1656
+ },
1657
+ "datePreset": {
1658
+ "type": "string",
1659
+ "enum": [
1660
+ "today",
1661
+ "yesterday",
1662
+ "last7days",
1663
+ "last28days",
1664
+ "last3months",
1665
+ "last6months",
1666
+ "last12months",
1667
+ "last16months"
1668
+ ],
1669
+ "default": "last28days",
1670
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
1671
+ },
1672
+ "currentDateRange": {
1673
+ "type": "object",
1674
+ "properties": {
1675
+ "startDate": {
1676
+ "type": "string",
1677
+ "description": "Start date YYYY-MM-DD"
1678
+ },
1679
+ "endDate": {
1680
+ "type": "string",
1681
+ "description": "End date YYYY-MM-DD"
1682
+ }
1683
+ },
1684
+ "required": [
1685
+ "startDate",
1686
+ "endDate"
1687
+ ],
1688
+ "additionalProperties": false,
1689
+ "description": "Current period. Defaults to datePreset."
1690
+ },
1691
+ "previousDateRange": {
1692
+ "$ref": "#/properties/currentDateRange",
1693
+ "description": "Previous period. Defaults to the immediately preceding period with the same length."
1694
+ },
1695
+ "limit": {
1696
+ "type": "integer",
1697
+ "minimum": 1,
1698
+ "maximum": 25000,
1699
+ "default": 5000,
1700
+ "description": "Rows to fetch for each period."
1701
+ },
1702
+ "topN": {
1703
+ "type": "integer",
1704
+ "minimum": 1,
1705
+ "maximum": 100,
1706
+ "default": 25,
1707
+ "description": "Maximum number of highest-ranked results to return."
1708
+ },
1709
+ "minAbsClickDelta": {
1710
+ "type": "number",
1711
+ "minimum": 0,
1712
+ "default": 0,
1713
+ "description": "Filter out rows with smaller absolute click delta."
1714
+ },
1715
+ "sortBy": {
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "clicksDelta",
1719
+ "impressionsDelta",
1720
+ "ctrDelta",
1721
+ "positionDelta"
1722
+ ],
1723
+ "default": "clicksDelta",
1724
+ "description": "Metric or dimension used to rank the returned results."
1725
+ }
1726
+ },
1727
+ "additionalProperties": false,
1728
+ "$schema": "http://json-schema.org/draft-07/schema#"
1729
+ },
1730
+ "outputSchema": {
1731
+ "type": "object",
1732
+ "properties": {
1733
+ "result": {
1734
+ "anyOf": [
1735
+ {
1736
+ "type": "object",
1737
+ "properties": {},
1738
+ "additionalProperties": true
1739
+ },
1740
+ {
1741
+ "type": "array",
1742
+ "items": {}
1743
+ },
1744
+ {
1745
+ "type": "string"
1746
+ },
1747
+ {
1748
+ "type": "number"
1749
+ },
1750
+ {
1751
+ "type": "boolean"
1752
+ },
1753
+ {
1754
+ "type": "null"
1755
+ }
1756
+ ],
1757
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1758
+ }
1759
+ },
1760
+ "required": [
1761
+ "result"
1762
+ ],
1763
+ "additionalProperties": false,
1764
+ "$schema": "http://json-schema.org/draft-07/schema#"
1765
+ },
1766
+ "annotations": {
1767
+ "readOnlyHint": true,
1768
+ "destructiveHint": false,
1769
+ "idempotentHint": true,
1770
+ "openWorldHint": true
1771
+ },
1772
+ "execution": {
1773
+ "taskSupport": "forbidden"
1774
+ }
1775
+ },
1776
+ {
1777
+ "name": "gsc_cluster_queries",
1778
+ "title": "gsc cluster queries",
1779
+ "description": "Cluster Search Console queries by simple tokens and intent signals: brand/non-brand, question, category, and topic tokens.",
1780
+ "inputSchema": {
1781
+ "type": "object",
1782
+ "properties": {
1783
+ "siteUrl": {
1784
+ "type": "string",
1785
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1786
+ },
1787
+ "searchType": {
1788
+ "type": "string",
1789
+ "enum": [
1790
+ "web",
1791
+ "image",
1792
+ "video",
1793
+ "news",
1794
+ "discover",
1795
+ "googleNews"
1796
+ ],
1797
+ "default": "web",
1798
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
1799
+ },
1800
+ "datePreset": {
1801
+ "type": "string",
1802
+ "enum": [
1803
+ "today",
1804
+ "yesterday",
1805
+ "last7days",
1806
+ "last28days",
1807
+ "last3months",
1808
+ "last6months",
1809
+ "last12months",
1810
+ "last16months"
1811
+ ],
1812
+ "default": "last28days",
1813
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
1814
+ },
1815
+ "dateRange": {
1816
+ "type": "object",
1817
+ "properties": {
1818
+ "startDate": {
1819
+ "type": "string",
1820
+ "description": "Start date YYYY-MM-DD"
1821
+ },
1822
+ "endDate": {
1823
+ "type": "string",
1824
+ "description": "End date YYYY-MM-DD"
1825
+ }
1826
+ },
1827
+ "required": [
1828
+ "startDate",
1829
+ "endDate"
1830
+ ],
1831
+ "additionalProperties": false,
1832
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
1833
+ },
1834
+ "brandTerms": {
1835
+ "type": "array",
1836
+ "items": {
1837
+ "type": "string"
1838
+ },
1839
+ "default": [],
1840
+ "description": "Optional brand terms. Defaults to terms derived from the property domain."
1841
+ },
1842
+ "categoryRules": {
1843
+ "type": "object",
1844
+ "additionalProperties": {
1845
+ "type": "array",
1846
+ "items": {
1847
+ "type": "string"
1848
+ }
1849
+ },
1850
+ "description": "Optional map of category name to matching tokens/phrases."
1851
+ },
1852
+ "limit": {
1853
+ "type": "integer",
1854
+ "minimum": 1,
1855
+ "maximum": 25000,
1856
+ "default": 5000,
1857
+ "description": "Maximum number of returned items or rows. The declared bounds and default apply; use pagination for additional results."
1858
+ },
1859
+ "maxClusters": {
1860
+ "type": "integer",
1861
+ "minimum": 1,
1862
+ "maximum": 100,
1863
+ "default": 25,
1864
+ "description": "Maximum query clusters to return."
1865
+ },
1866
+ "topQueriesPerCluster": {
1867
+ "type": "integer",
1868
+ "minimum": 1,
1869
+ "maximum": 25,
1870
+ "default": 10,
1871
+ "description": "Maximum example queries returned for each cluster."
1872
+ }
1873
+ },
1874
+ "additionalProperties": false,
1875
+ "$schema": "http://json-schema.org/draft-07/schema#"
1876
+ },
1877
+ "outputSchema": {
1878
+ "type": "object",
1879
+ "properties": {
1880
+ "result": {
1881
+ "anyOf": [
1882
+ {
1883
+ "type": "object",
1884
+ "properties": {},
1885
+ "additionalProperties": true
1886
+ },
1887
+ {
1888
+ "type": "array",
1889
+ "items": {}
1890
+ },
1891
+ {
1892
+ "type": "string"
1893
+ },
1894
+ {
1895
+ "type": "number"
1896
+ },
1897
+ {
1898
+ "type": "boolean"
1899
+ },
1900
+ {
1901
+ "type": "null"
1902
+ }
1903
+ ],
1904
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
1905
+ }
1906
+ },
1907
+ "required": [
1908
+ "result"
1909
+ ],
1910
+ "additionalProperties": false,
1911
+ "$schema": "http://json-schema.org/draft-07/schema#"
1912
+ },
1913
+ "annotations": {
1914
+ "readOnlyHint": true,
1915
+ "destructiveHint": false,
1916
+ "idempotentHint": true,
1917
+ "openWorldHint": true
1918
+ },
1919
+ "execution": {
1920
+ "taskSupport": "forbidden"
1921
+ }
1922
+ },
1923
+ {
1924
+ "name": "gsc_detect_cannibalization",
1925
+ "title": "gsc detect cannibalization",
1926
+ "description": "Detect queries where multiple pages compete for clicks/impressions in Search Analytics query-page rows.",
1927
+ "inputSchema": {
1928
+ "type": "object",
1929
+ "properties": {
1930
+ "siteUrl": {
1931
+ "type": "string",
1932
+ "description": "Search Console property URL, e.g. https://example.com/ or sc-domain:example.com. Uses GSC_SITE_URL when omitted."
1933
+ },
1934
+ "searchType": {
1935
+ "type": "string",
1936
+ "enum": [
1937
+ "web",
1938
+ "image",
1939
+ "video",
1940
+ "news",
1941
+ "discover",
1942
+ "googleNews"
1943
+ ],
1944
+ "default": "web",
1945
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
1946
+ },
1947
+ "datePreset": {
1948
+ "type": "string",
1949
+ "enum": [
1950
+ "today",
1951
+ "yesterday",
1952
+ "last7days",
1953
+ "last28days",
1954
+ "last3months",
1955
+ "last6months",
1956
+ "last12months",
1957
+ "last16months"
1958
+ ],
1959
+ "default": "last28days",
1960
+ "description": "Named reporting period. Use the custom date range when you need exact start and end dates."
1961
+ },
1962
+ "dateRange": {
1963
+ "type": "object",
1964
+ "properties": {
1965
+ "startDate": {
1966
+ "type": "string",
1967
+ "description": "Start date YYYY-MM-DD"
1968
+ },
1969
+ "endDate": {
1970
+ "type": "string",
1971
+ "description": "End date YYYY-MM-DD"
1972
+ }
1973
+ },
1974
+ "required": [
1975
+ "startDate",
1976
+ "endDate"
1977
+ ],
1978
+ "additionalProperties": false,
1979
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
1980
+ },
1981
+ "limit": {
1982
+ "type": "integer",
1983
+ "minimum": 1,
1984
+ "maximum": 25000,
1985
+ "default": 5000,
1986
+ "description": "Maximum number of returned items or rows. The declared bounds and default apply; use pagination for additional results."
1987
+ },
1988
+ "minPages": {
1989
+ "type": "integer",
1990
+ "minimum": 2,
1991
+ "maximum": 10,
1992
+ "default": 2,
1993
+ "description": "Minimum distinct pages ranking for a query before it is considered a cannibalization candidate."
1994
+ },
1995
+ "minImpressions": {
1996
+ "type": "integer",
1997
+ "minimum": 0,
1998
+ "default": 100,
1999
+ "description": "Minimum reported impressions required for a row to enter the analysis."
2000
+ },
2001
+ "maxTopPageClickShare": {
2002
+ "type": "number",
2003
+ "minimum": 0.1,
2004
+ "maximum": 0.99,
2005
+ "default": 0.8,
2006
+ "description": "Only flag queries where the top page owns less than or equal to this click share."
2007
+ },
2008
+ "topN": {
2009
+ "type": "integer",
2010
+ "minimum": 1,
2011
+ "maximum": 100,
2012
+ "default": 25,
2013
+ "description": "Maximum number of highest-ranked results to return."
2014
+ }
2015
+ },
2016
+ "additionalProperties": false,
2017
+ "$schema": "http://json-schema.org/draft-07/schema#"
2018
+ },
2019
+ "outputSchema": {
2020
+ "type": "object",
2021
+ "properties": {
2022
+ "result": {
2023
+ "anyOf": [
2024
+ {
2025
+ "type": "object",
2026
+ "properties": {},
2027
+ "additionalProperties": true
2028
+ },
2029
+ {
2030
+ "type": "array",
2031
+ "items": {}
2032
+ },
2033
+ {
2034
+ "type": "string"
2035
+ },
2036
+ {
2037
+ "type": "number"
2038
+ },
2039
+ {
2040
+ "type": "boolean"
2041
+ },
2042
+ {
2043
+ "type": "null"
2044
+ }
2045
+ ],
2046
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
2047
+ }
2048
+ },
2049
+ "required": [
2050
+ "result"
2051
+ ],
2052
+ "additionalProperties": false,
2053
+ "$schema": "http://json-schema.org/draft-07/schema#"
2054
+ },
2055
+ "annotations": {
2056
+ "readOnlyHint": true,
2057
+ "destructiveHint": false,
2058
+ "idempotentHint": true,
2059
+ "openWorldHint": true
2060
+ },
2061
+ "execution": {
2062
+ "taskSupport": "forbidden"
2063
+ }
2064
+ },
2065
+ {
2066
+ "name": "gsc_validate_query",
2067
+ "title": "gsc validate query",
2068
+ "description": "Validate a Search Console metric/dimension/search type combination before executing it.",
2069
+ "inputSchema": {
2070
+ "type": "object",
2071
+ "properties": {
2072
+ "dimensions": {
2073
+ "type": "array",
2074
+ "items": {
2075
+ "type": "string"
2076
+ },
2077
+ "description": "Dimensions to validate."
2078
+ },
2079
+ "searchType": {
2080
+ "type": "string",
2081
+ "enum": [
2082
+ "web",
2083
+ "image",
2084
+ "video",
2085
+ "news",
2086
+ "discover",
2087
+ "googleNews"
2088
+ ],
2089
+ "default": "web",
2090
+ "description": "Search surface to report, such as web, image, video, news or Discover. Availability depends on the property."
2091
+ },
2092
+ "dateRange": {
2093
+ "type": "object",
2094
+ "properties": {
2095
+ "startDate": {
2096
+ "type": "string"
2097
+ },
2098
+ "endDate": {
2099
+ "type": "string"
2100
+ }
2101
+ },
2102
+ "required": [
2103
+ "startDate",
2104
+ "endDate"
2105
+ ],
2106
+ "additionalProperties": false,
2107
+ "description": "Explicit reporting start and end dates in YYYY-MM-DD format."
2108
+ }
2109
+ },
2110
+ "additionalProperties": false,
2111
+ "$schema": "http://json-schema.org/draft-07/schema#"
2112
+ },
2113
+ "outputSchema": {
2114
+ "type": "object",
2115
+ "properties": {
2116
+ "result": {
2117
+ "anyOf": [
2118
+ {
2119
+ "type": "object",
2120
+ "properties": {},
2121
+ "additionalProperties": true
2122
+ },
2123
+ {
2124
+ "type": "array",
2125
+ "items": {}
2126
+ },
2127
+ {
2128
+ "type": "string"
2129
+ },
2130
+ {
2131
+ "type": "number"
2132
+ },
2133
+ {
2134
+ "type": "boolean"
2135
+ },
2136
+ {
2137
+ "type": "null"
2138
+ }
2139
+ ],
2140
+ "description": "Original tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query."
2141
+ }
2142
+ },
2143
+ "required": [
2144
+ "result"
2145
+ ],
2146
+ "additionalProperties": false,
2147
+ "$schema": "http://json-schema.org/draft-07/schema#"
2148
+ },
2149
+ "annotations": {
2150
+ "readOnlyHint": true,
2151
+ "destructiveHint": false,
2152
+ "idempotentHint": true,
2153
+ "openWorldHint": true
2154
+ },
2155
+ "execution": {
2156
+ "taskSupport": "forbidden"
2157
+ }
2158
+ }
2159
+ ],
2160
+ "resources": [
2161
+ {
2162
+ "name": "gsc-manifest",
2163
+ "uri": "gsc://manifest"
2164
+ },
2165
+ {
2166
+ "name": "gsc-recipes",
2167
+ "uri": "gsc://recipes"
2168
+ },
2169
+ {
2170
+ "name": "gsc-metrics",
2171
+ "uri": "gsc://metrics"
2172
+ },
2173
+ {
2174
+ "name": "gsc-dimensions",
2175
+ "uri": "gsc://dimensions"
2176
+ },
2177
+ {
2178
+ "name": "gsc-filters",
2179
+ "uri": "gsc://filters"
2180
+ },
2181
+ {
2182
+ "name": "gsc-compatibility",
2183
+ "uri": "gsc://compatibility"
2184
+ },
2185
+ {
2186
+ "name": "gsc-p2-readonly-playbooks",
2187
+ "uri": "gsc://p2-readonly-playbooks"
2188
+ }
2189
+ ],
2190
+ "prompts": []
2191
+ }