Better Google Search Console
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BSC_DATA_DIR | No | The directory where SQLite databases are stored. | ~/seo-audits/better-search-console |
| GOOGLE_APPLICATION_CREDENTIALS | Yes | Path to the Google Cloud service account JSON key file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| setupA | First time? Start here. Connects to Google Search Console, syncs all your properties (fetches up to 3 months of data), and shows a visual overview of every site. Takes a few minutes depending on how many properties you have. After setup, use get_overview to see all sites at a glance, or get_dashboard to drill into one. |
| get_overviewA | See all your sites at a glance. Shows an interactive grid of every synced GSC property with clicks, impressions, CTR, position, percentage changes, and sparkline trends. Click any property card to open its full dashboard. If no data appears, run setup first to sync your properties. |
| get_dashboardA | Drill into a single property. Shows an interactive dashboard with hero metrics, trend chart, top queries, top pages, country breakdown, ranking distribution, new/lost queries, and branded split. Use the siteUrl from get_overview results. Requires synced data — run setup first if needed. |
| get_insightsA | Run pre-built analytical queries against synced GSC data. Choose from 16 insight types: summary, top_queries, top_pages, growing_queries, declining_queries, growing_pages, declining_pages, opportunities (queries ranking 5-20 with high impressions — your quick wins), device_breakdown, country_breakdown, page_queries, query_pages, daily_trend, new_queries, lost_queries, branded_split. Requires synced data — run setup first if needed. |
| compare_periodsA | Compare two arbitrary date ranges side-by-side across any dimension (query, page, device, country). Shows absolute and percentage changes. Useful for before/after analysis, seasonal comparisons, or measuring the impact of changes. Requires synced data — run setup first if needed. |
| query_gsc_dataA | Run a read-only SQL query against a synced GSC property database. Supports any SELECT query. INSERT/UPDATE/DELETE/DROP/ALTER/CREATE are blocked. The table is "search_analytics" with columns: date, query, page, device, country, clicks, impressions, ctr, position. Requires synced data — run setup first if needed. |
| list_propertiesA | List all Google Search Console properties accessible via the service account, with permission level and local sync status. Usually not needed — setup handles this automatically. |
| sync_gsc_dataA | Fetch Google Search Console search analytics data into a local SQLite database. Supports full pagination to capture ALL rows (no 1,000-row limit). Default date range is 3 months. Pass explicit startDate for longer ranges (up to 16 months). Returns immediately with a job ID — use check_sync_status to monitor progress. |
| sync_all_propertiesA | Sync search analytics data for ALL accessible GSC properties in one call. Syncs up to 2 properties in parallel for faster completion. Returns immediately with a job ID — use check_sync_status to monitor progress. |
| check_sync_statusA | Check the status of a background sync job. If no jobId provided, returns all active and recent jobs. Use after sync_gsc_data or sync_all_properties to monitor progress. |
| cancel_syncA | Cancel a running sync job. The job will stop gracefully after completing the current API call. |
| prune_databaseA | Apply data retention policy to a synced property database. Removes low-value rows (zero clicks, low impressions) from older data while preserving all recent data and actionable historical data. Runs VACUUM afterwards to reclaim disk space. This runs automatically after each sync, but you can also trigger it manually. Use preview_prune first to see what would be deleted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Dashboard View | |
| Overview Grid | |
| Sync Progress |
TDQS
Scored across 12 tools
Most tools have distinct purposes, such as setup for initial configuration, sync_gsc_data for data fetching, and get_insights for analysis. However, there is some overlap between sync_gsc_data and sync_all_properties, as both handle data syncing but differ in scope (single vs. all properties), which could cause minor confusion for agents. Overall, descriptions help clarify differences, but the redundancy in syncing tools slightly reduces clarity.
Tool names consistently follow a verb_noun pattern, such as cancel_sync, check_sync_status, compare_periods, and get_dashboard. All tools use snake_case without deviations, making the naming predictable and easy to parse. This uniformity enhances agent usability and reduces cognitive load when selecting tools.
With 12 tools, the server is well-scoped for managing Google Search Console data, covering setup, syncing, monitoring, analysis, and maintenance. Each tool serves a specific function, such as data retrieval (sync_gsc_data), insights (get_insights), and cleanup (prune_database), ensuring comprehensive coverage without bloat. The count aligns well with the domain's complexity.
The tool set provides complete coverage for the Google Search Console domain, including initial setup (setup), data syncing (sync_gsc_data, sync_all_properties), monitoring (check_sync_status, cancel_sync), analysis (get_insights, compare_periods, query_gsc_data), visualization (get_overview, get_dashboard), and maintenance (prune_database, list_properties). There are no obvious gaps, supporting full CRUD-like workflows from data ingestion to insights.