Google Search Console MCP Server
Provides tools to query Google Search Console data, including listing verified sites, analyzing search analytics (clicks, impressions, CTR, position), comparing time periods, and generating visual reports like bar charts and line graphs for SEO insights.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Search Console MCP ServerWhat were my top queries by impressions last week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Search Console MCP Server
๐ Introduction: Setting Up MCP Server
In this tutorial, weโll walk you through the process of setting up your own MCP Model Context Protocol server, adding it to Claude Desktop, and integrating it with Google Search Console (GSC) data. This will allow you to compare time periods to identify SEO improvements, generate visual reports like bar charts and line graphs, and uncover optimization opportunities by analyzing click-through rates, impressions, and ranking shifts.
Letโs get started! ๐
Related MCP server: GSC Analyst Connector
๐น What We'll Cover:
Generate Google Cloud Credentials โ Create and download a service account JSON key to authenticate API access.
Install Required Tools โ Ensure Python, pip, uv, and Git (optional) are installed on your system.
Set Up the MCP Server โ Clone the repository, configure your environment, and install the MCP server.
Enable Search Console Insights โ Verify that the MCP server is running correctly in Claude Desktop and start using advanced search analytics tools.
By the end of this guide, Claude will automatically connect to the MCP server and you'll be able to run queries, visualize data, and optimize your websiteโs search performance with ease. Let's get started! ๐
๐น What You Need to Know
This tutorial is designed to be beginner-friendly, and you donโt need any advanced technical skills. However, you should be comfortable running commands in the command line (also known as the terminal or command prompt).
Throughout this guide, you'll enter commands like:
python --version
git clone <repository-url>If youโve never used the command line before, donโt worry! Just follow the instructions step by step, and you'll be good to go.
Thatโs all you needโ letโs get started! ๐
๐ฏ Part 1 - Generate a JSON Credentials File
Follow these steps to create and download a service account JSON key from Google Cloud Console. If you already have a JSON credentials file, you can skip this part.
๐ 1. Go to Google Cloud Console
๐ Visit Google Cloud Console
๐ 2. Select Your Project
Click on the project selector at the top.
Select an existing project or create a new one.
If you're creating a new project:
Enable Search Console API
Make sure your new project is selected
Click on APIs and Services:
Find Google Search Console API (you may need to search at the top)
Click "Enable"
Return to the dashboard (click the "Google Cloud" icon)
๐ 3. Open the IAM & Admin Section
In the left menu, go to "IAM & Admin" > "Service Accounts".
๐ 4. Create a New Service Account
Click "Create Service Account".
Enter a name (e.g.,
my-app-service-account).Click "Create and Continue".
๐ 5. Assign Permissions
Choose a role (e.g., Editor, Owner).
Click "Continue".
๐ 6. Skip Granting Users Access (Optional)
Click "Done" (no need to add users).
๐ 7. Generate the JSON Key
Find your service account in the list.
Click the 3 dots (โฎ) on the right and select "Manage Keys".
Click "Add Key" > "Create New Key".
Choose "JSON" format and click "Create".
โ The JSON file will download automatically.
Copy the path of JSON file (right click + 'Copy as path')
๐ 8. Add the Service Account to Google Search Console
Open Google Search Console.
Select the website property.
Click Settings (bottom left).
Under Users and Permissions, click Add User.
Enter the service account email (from step 4).
Assign permissions:
Restricted (view data only).
Full (view & manage property).
Click Add.
๐ฏ Part 2 - Install Required Tools
Before you begin working with the project, ensure that you have the necessary tools installed. Follow these steps to check if everything is ready.
๐ 1. Check if Python is Installed
Check if Python is installed on your system by running the following command:
On Windows:
python --versionOn Linux/macOS:
python3 --versionIf Python is installed, you will see the version number. If not, download and install it from ๐ Download Python
๐ 2. Check if pip is Installed
pip is the package manager for Python. To check if it's installed, run the following command:
On Windows:
pip --versionOn Linux/macOS:
pip3 --versionIf pip is not installed, follow the official installation guide ๐ Download pip
๐ 3. Check if uv is Installed
uv is a Python package and project manager. To check if it's installed, run the following command:
On Linux/macOS/Windows:
uv --versionIf uv is not installed, follow the official installation guide ๐ Download uv
๐ 4. Check if Claude Desktop is Installed
If Claude Desktop is not installed, follow the official installation guide ๐ Download Claude Desktop .
๐ 5. Check if Git is Installed (optional)
Check if Git is installed on your system by running the following command:
On Linux/macOS/Windows:
git --versionIf Git is installed, you will see the version number. If not, you can still download the program files, or you can download and install Git from ๐ Download Git
๐ฏ Part 3 - Add the MCP server to Claude Desktop
Setup Instructions
1. Clone the Repository
Open a new terminal in the folder where the files will be downloaded to. Run the following commands:
git clone https://github.com/seotesting-com/gsc-mcp-server.git
cd gsc-mcp-serverIf you don't have Git installed:
Download the ZIP file:
2. Create and Activate a Virtual Environment
# Windows
uv venv
.venv\Scripts\activate
# macOS/Linux
uv venv
source .venv/bin/activate3. Install Dependencies
# Windows/macOS/Linux
uv sync4. Install MCP Server
Add the path to your JSON credentials file and run the following command:
mcp install server.py -v GOOGLE_APPLICATION_CREDENTIALS=<path to credentials file>Make sure you replace <path to credentials file> with the path to your JSON credentials file eg. C:\Users\Me\Downloads\credentials.json .
5. Restart Claude Desktop
You may need to end Claude tasks in the task manager.
๐ฏ Part 4 - Get Search Console Insights
Open Claude Desktop. If the MCP server has been configured correctly, you should be able to see 5 additional tools available in the chat box:
You can use the tools by asking Claude to perform various search console analytics tasks. Before invoking a tool, Claude will ask permission. You should click one of the 'allow' options to use the MCP server:
Getting Started Prompts
"List all my verified sites in Google Search Console"
"Show me search analytics for example.com from January 1 to January 31, 2025"
"Compare search performance for example.com between last month and the previous month"
"What are my top 10 pages by clicks for the last 30 days?"
"Show me search trends by week for the last 3 months"
Data Visualization Prompts
"Generate a bar chart of my top 5 performing pages by clicks for the past month"
"Create a line graph showing impression trends over the last 90 days"
"Visualize the CTR comparison between mobile and desktop traffic for my site"
"Plot a heatmap of search performance by country for example.com"
"Create a pie chart showing the distribution of traffic by device type"
"Generate a scatter plot comparing CTR vs. position for my top 50 queries"
"Show me a visual breakdown of traffic sources by search type (web, image, video)"
"Create a stacked area chart showing clicks and impressions over time"
"Visualize week-over-week search performance changes with a comparison chart"
"Generate a visual report of my site's SEO performance with multiple graphs"
Search Console Analysis Prompts
"Identify keywords with high impressions but low CTR that I can optimize"
"Show me pages that have dropped in rankings over the last month"
"Find new keywords that my site started ranking for in the past 30 days"
"Analyze which mobile pages have the biggest performance gap compared to desktop"
"Show me queries where I rank on page 2 (positions 11-20) that I could push to page 1"
"Identify seasonal trends in my search traffic over the past year"
"Compare organic traffic before and after my site redesign on March 1st"
"Show me which countries have the highest growth potential based on impressions vs. clicks"
"Analyze the correlation between average position and CTR for my top 100 queries"
"Generate a prioritized list of optimization opportunities based on potential traffic gains"
Available Tools
list_sites
Lists all verified sites in your Google Search Console account.
query_search_analytics
Parameters:
- site_url: Full URL of your website (e.g., https://www.example.com/)
- start_date: Start date in YYYY-MM-DD format
- end_date: End date in YYYY-MM-DD format
- dimensions: List of dimensions (query, page, device, country, date)
- search_type: Type of search results (web, image, video, news, discover, googleNews)
- row_limit: Number of rows to return (max 25000)compare_time_periods
Parameters:
- site_url: Full URL of your website
- current_start_date: Start date for current period in YYYY-MM-DD format
- current_end_date: End date for current period in YYYY-MM-DD format
- previous_start_date: Start date for previous period in YYYY-MM-DD format
- previous_end_date: End date for previous period in YYYY-MM-DD format
- dimensions: List of dimensions (query, page, device, country, date)
- search_type: Type of search results
- row_limit: Number of rows to returnget_top_performing_content
Parameters:
- site_url: Full URL of your website
- start_date: Start date in YYYY-MM-DD format
- end_date: End date in YYYY-MM-DD format
- metric: Metric to sort by (clicks, impressions, ctr, position)
- limit: Number of results to returnget_search_trends
Parameters:
- site_url: Full URL of your website
- start_date: Start date in YYYY-MM-DD format
- end_date: End date in YYYY-MM-DD format
- interval: Time interval for grouping (day, week, month)๐ Troubleshooting
If you encounter any issues while setting up or using the MCP server, try the following solutions:
1๏ธโฃ Restart Claude Desktop
Sometimes, tools donโt appear immediately. Restart Claude Desktop and try again. You may need to end the Claude process in Task Manager (Windows) or Activity Monitor (Mac) before restarting.
2๏ธโฃ Wait a Few Minutes
After setting up the MCP server, the new tools might take a few minutes to load. If they donโt appear right away, wait a few minutes and try again.
3๏ธโฃ Check the JSON Credentials File
Ensure the service account JSON file is in an accessible folder. Avoid placing it in a restricted or admin-only folder (e.g., C:\Program Files\ on Windows or ~/Library/ on macOS). If necessary, move it to a more accessible location like your Documents or Desktop folder.
:four: Check the Claude configuration
Go to File => Settings and click on the Developer tab. When you click on Search Console Analytics, it should display a status of 'running'. If not, there may be an error message providing details of what is causing the connection issue. If you cannot see the Settings as pictured below, make sure you have an up-to-date version of Claude Desktop: ๐ Download Claude Desktop.
Click on Edit Config and open 'claude_desktop_config.json' in a text editor. It should contain:
{
"mcpServers": {
"Search Console Analytics": {
"command": "uv",
"args": [
"run",
"--with",
"google-api-python-client",
"--with",
"google-auth",
"--with",
"mcp[cli]",
"--with",
"pandas",
"mcp",
"run",
"C:\\Documents\\gsc-mcp-server\\server.py"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "C:\\Users\\Path\\To\\Credentials\\gscaccess-credentials.json"
}
}
}
}If it contains something else, paste this data into file and make sure you update the file paths for the server.py file and the credentials file. Make sure to escape backslash characters (as shown). Restart Claude.
Mac Users: Fixing "spawn uv ENOENT" Error
If you see the error "spawn uv ENOENT" when opening Claude Desktop, it means that uv is either not installed or not found in the system path. If uv is installed, you can try adding the full path to the claude config.
1๏ธโฃ Update the Claude Desktop Configuration
Open Claude Desktop and go to File > Settings > Developer.
Click "Search Console Analytics", then select Edit Config.
Locate the "command": "uv" entry in claude_desktop_config.json.
Replace "uv" with the full path to uv, which is usually: /Users/YOURUSERPROFILENAME/.local/bin/uv
Run this command to get the installation path of uv:
which -a uvThis command will display all the paths to the installations of uv you have. If the only path you can see is /Library/Frameworks/Python.framework/Versions/3.**/bin/uv , you need to ๐ Download uv and go back to Part 3.
Save the file and restart Claude Desktop.
2๏ธโฃ Try Another Installation Method for uv
If the above method does not work, uv may not be installed correctly. Try installing it using Homebrew:
brew install uvIf you're still having issues, retrace your steps and ensure everything is set up correctly. ๐
Available Tools
5 toolscompare_time_periodsB
Compare Search Console metrics between two time periods.
Args:
site_url: Full URL of your website (e.g., https://www.example.com/ or sc-domain:example.com)
current_start_date: Start date for current period in YYYY-MM-DD format
current_end_date: End date for current period in YYYY-MM-DD format
previous_start_date: Start date for previous period in YYYY-MM-DD format
previous_end_date: End date for previous period in YYYY-MM-DD format
dimensions: List of dimensions (query, page, device, country, date)
search_type: Type of search results (web, image, video, news, discover, googleNews)
row_limit: Number of rows to return (max 25000)
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| current_start_date | Yes | ||
| current_end_date | Yes | ||
| previous_start_date | Yes | ||
| previous_end_date | Yes | ||
| dimensions | No | ||
| search_type | No | web | |
| row_limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details such as what the output looks like, how the comparison is computed, required permissions, or side effects. Only row_limit max is mentioned, but overall transparency is low.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear opening sentence, but the bulleted Args list adds some overhead. It is front-loaded and every part adds value, though it could be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool having 8 parameters and no output schema, the description only covers parameter format. Missing details include return format, comparison logic, prerequisites (e.g., site verification), and error handling, making it incomplete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema_description_coverage is 0%, but the description provides crucial context: date format (YYYY-MM-DD), allowed values for dimensions and search_type, max row_limit, and example for site_url. This adds significant meaning beyond the schema's type-only definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Compare Search Console metrics between two time periods,' which clearly states the action (compare) and resource (metrics between two periods). This distinguishes it from siblings like query_search_analytics, which likely queries single-period data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like query_search_analytics. The description focuses on parameters without stating when a comparison is appropriate or what to do if other tools would be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_trendsB
Get search trends over time for a site.
Args:
site_url: Full URL of your website (e.g., https://www.example.com/ or sc-domain:example.com)
start_date: Start date in YYYY-MM-DD format
end_date: End date in YYYY-MM-DD format
interval: Time interval for grouping (day, week, month)
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| interval | No | week |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral aspects, but it only states the basic function. It does not reveal that the operation is read-only, or describe error scenarios, data limitations, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a structured 'Args' section that adds value. Each sentence is purposeful, but the parameter list could be slightly tighter by relying on the schema for names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (4 params, no output schema), the description covers the basics. However, it lacks context on expected output, error cases, or how trends are computed, which reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, so the description adds crucial parameter details: format for site_url, date format YYYY-MM-DD, and interval options. However, it omits the default value for interval (week) which is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('search trends'), and the scope ('over time for a site'). It effectively distinguishes from sibling tools like 'compare_time_periods' and 'query_search_analytics' by focusing on trends over time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to prefer trends over time vs. comparing periods or querying analytics. The description lacks any explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_performing_contentB
Get the top performing content based on a specific metric.
Args:
site_url: Full URL of your website (e.g., https://www.example.com/ or sc-domain:example.com)
start_date: Start date in YYYY-MM-DD format
end_date: End date in YYYY-MM-DD format
metric: Metric to sort by (clicks, impressions, ctr, position)
limit: Number of results to return
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| metric | No | clicks | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits beyond parameters. It does not mention whether the operation is read-only, if it aggregates data, or any constraints on date ranges. The parameter list does not compensate for missing behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. The parameter list is well-structured but could be more compact. Overall no unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and sibling tools, the description fails to explain what the tool returns (e.g., fields, format) or how it differs from similar tools. This is a significant gap for a tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds value by explaining each parameter: site_url example, date formats, metric options ('clicks, impressions, ctr, position'), and default values. However, it does not specify allowed values for metric (schema lacks enum) and could be clearer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Get' and resource 'top performing content', but it does not clarify what constitutes 'content' (e.g., pages, URLs) or differentiate from sibling tool 'query_search_analytics' which may also return content performance data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter explanations but lacks guidance on when to use this tool versus alternatives like 'compare_time_periods' or 'get_search_trends'. No explicit context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitesA
List all verified sites in Search Console.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'list all verified sites' without detailing any side effects, permissions required, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a param-free, simple list tool, the description is adequate but lacks context such as what a 'verified site' is, potential pagination, or the response structure. Completeness is acceptable but not exemplary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the empty schema fully documents them. The description implicitly confirms no input is needed. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (verified sites in Search Console), and distinguishes from sibling tools which focus on analytics and trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_search_analyticsC
Query Search Console analytics data for a site.
Args:
site_url: Full URL of your website (e.g., https://www.example.com/ or sc-domain:example.com)
start_date: Start date in YYYY-MM-DD format
end_date: End date in YYYY-MM-DD format
dimensions: List of dimensions (query, page, device, country, date)
search_type: Type of search results (web, image, video, news, discover, googleNews)
row_limit: Number of rows to return (max 25000)
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| dimensions | No | ||
| search_type | No | web | |
| row_limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It implies a read operation ('Query') but does not state safety properties, idempotency, rate limits, or lack of side effects. More behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with a clear Args structure, but it could be more front-loaded to provide a quick summary before the parameter list. Every sentence is earned, but overall length is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description omits what the tool returns (e.g., clicks, impressions, aggregated data). It also lacks information on error handling, pagination, or data volume expectations, making it incomplete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter descriptions in Args add significant meaning beyond the raw schema, explaining format (e.g., 'YYYY-MM-DD'), options (e.g., dimensions list), and constraints (row_limit max 25000). However, there is a slight inconsistency with the schema default for row_limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb-resource pair 'Query Search Console analytics data for a site,' indicating both the action and the specific data source. However, it does not explicitly differentiate from sibling tools like compare_time_periods or get_search_trends, which might also involve analytics data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the alternatives. The description only details parameters without suggesting context or prerequisites, leaving the agent without decision cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
compare_time_periods - First observed
get_search_trends - First observed
get_top_performing_content - First observed
list_sites - First observed
query_search_analytics
TDQS
Tools like compare_time_periods, get_search_trends, and get_top_performing_content are essentially specialized variants of query_search_analytics, causing potential overlap and confusion for agents. While descriptions attempt to differentiate, the underlying functionality is redundant.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_sites, query_search_analytics), making the set predictable and easy to navigate.
With 5 tools, the server is well-scoped for the Search Console analytics domainโenough to cover core operations without being overwhelming.
The tools cover essential analytics queries, trends, comparisons, and site listing. Minor gaps exist (e.g., no sitemap or index coverage), but the surface is complete for its stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Connect Google Analytics to ChatGPT. Query GA4 data in plain English and get instant insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Search Console to query search analytics, inspect URL indexing status, and manage sitemaps. It allows users to monitor SEO performance and site health through natural language commands in MCP-compatible clients.1323MIT
- FlicenseNot gradedqualityBmaintenanceEnables querying Google Search Console data via natural language, providing tools for site traffic analysis, page changes, and optimization opportunities.-
- AlicenseBqualityCmaintenanceConnects Google Search Console to AI assistants, enabling SEO data analysis through natural language conversations.32MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Google Search Console data, including search analytics with advanced filtering, quick wins detection, and rich dimensions, through natural language.4,053MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seotesting-com/gsc-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server