@lomi./gsc-mcp
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., "@@lomi./gsc-mcpshow me the top search queries for last 28 days"
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.
@lomi./gsc-mcp
Public Model Context Protocol server for Google Search Console.
Repository: github.com/lomiafrica/gsc-mcp — standalone project. In the lomi. monorepo it is checked out as a submodule at apps/tools/gsc-mcp.
Features
Typed Search Analytics with dimensions, filters, pagination, and freshness controls
Performance overview, period comparison, and quick-win opportunity detection
URL inspection with bounded batch support
Sitemap and property discovery
Read-only by default; mutation tools require explicit write scope and
GSC_ENABLE_WRITES=trueLocal stdio for Cursor and Claude Desktop
Secure self-hosted Streamable HTTP for teams
Related MCP server: GSC MCP Server
Monorepo checkout
Inside the lomi. monorepo:
git submodule update --init apps/tools/gsc-mcp
cd apps/tools/gsc-mcp
pnpm install
pnpm run build
pnpm authQuick start
npx -y @lomi./gsc-mcp authPlace your Google OAuth desktop client JSON at:
~/.config/lomi-gsc-mcp/oauth_credentials.jsonThen add to Cursor:
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "@lomi./gsc-mcp"]
}
}
}Authentication
Choose one:
Desktop OAuth with PKCE (
lomi-gsc-mcp auth)Service account JSON via
GSC_SERVICE_ACCOUNT_KEY_FILEApplication Default Credentials for automation
Default OAuth scope is read-only. Set GSC_OAUTH_SCOPE=write and GSC_ENABLE_WRITES=true only when you need sitemap or property mutations.
Self-hosted HTTP
GSC_MCP_TRANSPORT=http \
GSC_MCP_CLIENT_BEARER_TOKEN=replace-me \
GSC_MCP_ALLOWED_HOSTS=localhost \
GSC_MCP_ALLOWED_ORIGINS=http://localhost:3000 \
npx -y @lomi./gsc-mcp-httpNon-loopback HTTP requires GSC_MCP_CLIENT_BEARER_TOKEN.
Docs
See https://docs.lomi.africa/build/mcp-gsc.
License
MIT
Available Tools
5 toolsgsc_capabilitiesSearch Console capabilitiesARead-onlyIdempotent
Return active auth mode, scopes, limits, and disclosure notes for this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds beyond by stating the specific output contents (auth mode, scopes, limits, disclosure notes), providing behavioral context not captured by annotations.
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, concise sentence that front-loads the key action and outputs. Every word is meaningful, with no redundant information.
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 tool has no parameters, annotations are clear, and the description fully explains the output (auth mode, scopes, limits, disclosure notes), it is complete for its simplicity. No output schema is needed.
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 schema coverage is 100% by default. The description compensates by clearly stating what the tool returns, which adds meaning beyond the empty 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 tool returns specific information: active auth mode, scopes, limits, and disclosure notes. It uses specific verbs and resources, and distinguishes from sibling tools that handle search analytics or other functions.
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 implicitly indicates when to use the tool (when you need server capabilities), but provides no explicit guidance on when not to use or alternatives. Given its simplicity and zero parameters, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_compare_periodsCompare search periodsARead-onlyIdempotent
Compare top rows between two date ranges for the same dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | Search Console property URL, e.g. sc-domain:example.com or https://example.com/ | |
| row_limit | No | ||
| dimensions | No | ||
| period1_end | Yes | ||
| period2_end | Yes | ||
| search_type | No | web | |
| period1_start | Yes | ||
| period2_start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description does not contradict these. However, it adds no additional behavioral detail such as how comparison metrics are computed or what 'top rows' means. With strong annotations, the description adds modest value.
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 11-word sentence with no filler. It is front-loaded with the core action and resource. Every word earns its place.
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 complexity (8 parameters, no output schema), the description is overly brief. It does not explain what the output looks like, how 'top rows' are determined, or what comparison metrics are provided. Essential behavioral context is missing.
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 only 13% (only site_url is described). The tool description mentions 'date ranges' and 'dimensions' but does not explain parameters like row_limit, search_type, or the period start/end formats. The description fails to compensate for the low coverage, leaving many parameters unclear.
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 tool compares top rows between two date ranges for the same dimensions. It distinguishes itself from the sibling gsc_search_analytics which likely handles single periods. The verb 'compare' and resource 'top rows' are specific and unambiguous.
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 implies usage for comparing two periods, but does not explicitly state when to use this tool versus alternatives like gsc_search_analytics. No exclusion criteria or when-not-to-use guidance is provided. The context is clear but the guidelines are minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_inspect_urlInspect URLBRead-onlyIdempotent
Inspect one URL indexing status in Google Search Console.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | Search Console property URL, e.g. sc-domain:example.com or https://example.com/ | |
| language_code | No | en-US | |
| inspection_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior, so the description only adds that it inspects a single URL. No additional details on rate limits, response format, or potential side effects.
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?
Single sentence of 7 words is highly concise and front-loaded with the key action. However, it may be too brief, sacrificing completeness for brevity.
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 no output schema and low schema coverage, the description lacks critical details about the return value, how to interpret indexing status, and any required permissions. Sibling tools share domain, but the description does not help the agent decide when to use this 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?
Schema description coverage is only 33%, and the tool description does not compensate by explaining parameters like language_code or inspection_url. Only the site_url parameter is partially described 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?
Description clearly states verb 'inspect', resource 'URL indexing status', and context 'Google Search Console'. It distinguishes from sibling tools like gsc_search_analytics which focus on 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 on when to use this tool versus alternatives like gsc_search_analytics or gsc_compare_periods. No exclusions, prerequisites, or usage scenarios provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_quick_winsFind quick-win queriesBRead-onlyIdempotent
Identify queries with meaningful impressions, low CTR, and positions in a target range.
| Name | Required | Description | Default |
|---|---|---|---|
| max_ctr | No | ||
| end_date | Yes | ||
| site_url | Yes | Search Console property URL, e.g. sc-domain:example.com or https://example.com/ | |
| row_limit | No | ||
| start_date | Yes | ||
| position_max | No | ||
| position_min | No | ||
| min_impressions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-destructive read operation. The description adds no additional behavioral context beyond what is in the annotations, such as auth needs or rate limits. With annotations covering the safety profile, this score is adequate.
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 (15 words) and front-loaded with the core purpose. However, the extreme brevity sacrifices necessary parameter context. It earns its place but could be slightly expanded to include parameter semantics without becoming verbose.
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 tool's complexity (8 parameters, no output schema, low schema coverage), the description is insufficient. It does not explain how to use the parameters to achieve the stated purpose, leaving the agent unable to construct effective queries. The description should at least briefly clarify the role of key parameters like max_ctr and position ranges.
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 only 13%, with only the 'site_url' parameter having a description. The tool description does not explain the meaning or usage of any parameters (e.g., max_ctr, position_min, min_impressions). This leaves the agent without crucial information for correct invocation, especially given the number of parameters.
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 tool's purpose: identifying queries with meaningful impressions, low CTR, and positions in a target range. It uses a specific verb ('Identify') and resource ('queries'), and the criteria distinguish it from sibling tools like gsc_search_analytics which provide general search analytics.
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 implies usage for finding optimizable queries but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria or prerequisites. The agent can infer the use case but lacks clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_search_analyticsSearch analytics queryCRead-onlyIdempotent
Query clicks, impressions, CTR, and position with dimensions, filters, pagination, and data freshness controls.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | ||
| end_date | Yes | ||
| site_url | Yes | Search Console property URL, e.g. sc-domain:example.com or https://example.com/ | |
| row_limit | No | ||
| start_row | No | ||
| data_state | No | final | |
| dimensions | No | ||
| start_date | Yes | ||
| search_type | No | web | |
| aggregation_type | No | auto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds mentioning 'pagination' and 'data freshness controls,' but these are already implied by parameters (row_limit, start_row, data_state). No additional behavioral insights beyond annotations.
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?
Single sentence of 14 words, front-loading the purpose and key features. No redundancy, but may be too terse given the tool's complexity. Could benefit from slightly more structure.
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?
No output schema, so description should indicate what the response contains (e.g., rows of data). It fails to explain return values, use cases, or data limitations. Given the tool's 10 parameters and 3 required fields, the description is too sparse.
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 only 10% (only site_url has a description). While the description vaguely mentions dimensions, filters, pagination, and data freshness, it does not explain individual parameters or their meanings. For a tool with 10 parameters, this is insufficient to help an agent select correct values.
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 tool queries clicks, impressions, CTR, and position from Search Console, listing key features. It distinguishes from siblings by focusing on search analytics querying, but could be more explicit about the resource being 'Google Search Console search analytics'.
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 on when to use this tool versus alternatives like gsc_compare_periods or gsc_inspect_url. The description does not mention scenarios, prerequisites, or exclusions.
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
gsc_capabilities - First observed
gsc_compare_periods - First observed
gsc_inspect_url - First observed
gsc_quick_wins - First observed
gsc_search_analytics
TDQS
Each tool has a distinct purpose: capabilities (metadata), search analytics (raw data), quick wins (heuristic analysis), compare periods (comparative analysis), inspect URL (individual URL status). No overlap.
All tools start with 'gsc_' and follow a verb_noun or noun phrase pattern. Most are nouns or adjective-noun (e.g., quick_wins), while compare_periods and inspect_url use verbs. Consistent prefix but minor variation in verb usage.
5 tools is appropriate for a focused GSC server covering analytics, insights, and URL inspection. Not overly many nor too few, though additional tools could be justified.
Covers core search analytics and URL inspection, but missing tools for sitemap management, index coverage, site listing, or mobile usability. Notable gaps for a full GSC integration.
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
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Google Shopping products, prices, sellers, and deals as structured data via a hosted MCP server.
SEO MCP server for keyword research, SERP analysis, audits, and Search Console workflows.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Google Search Console via MCP, offering search analytics, performance summaries, URL inspection, sitemap management, and property listing for SEO workflows.1591MIT
- AlicenseAqualityAmaintenanceConnects MCP clients to the Google Search Console API, enabling search analytics queries, URL inspection, sitemap management, and performance comparison across time periods.20MIT
- FlicenseNot gradedqualityDmaintenanceEnables managing multiple Google Search Console accounts through a single MCP server, providing tools for search analytics, quick win detection, period comparison, URL inspection and indexing, and sitemap management.-
- AlicenseNot gradedqualityCmaintenanceProvides Google Search Console tools for listing sites, querying search analytics, managing sitemaps, and inspecting URL index status via MCP.14MIT
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/lomiafrica/gsc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server