Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BING_API_KEYNoBing Webmaster Tools API key, from Bing Webmaster Tools → Settings → API access → API key.
INDEXNOW_KEYNoIndexNow key: 8–128 characters of a-z A-Z 0-9 -, published on your site at /<key>.txt containing only the key.
GSC_CLIENT_IDNoGoogle OAuth client ID. Can be used instead of saving the OAuth client JSON to ~/.config/seoclaude/credentials.json.
GSC_CLIENT_SECRETNoGoogle OAuth client secret. Can be used instead of saving the OAuth client JSON to ~/.config/seoclaude/credentials.json.
PAGESPEED_API_KEYNoOptional PageSpeed Insights API key. Not needed: without it, PageSpeed calls use your Google sign-in.
GOOGLE_ADS_API_VERSIONNoGoogle Ads API version. Defaults to v26; set a newer one when Google sunsets it.v26
GOOGLE_ADS_CUSTOMER_IDNoGoogle Ads ad account ID used by default by the ads tools.
GOOGLE_ADS_DEVELOPER_TOKENNoGoogle Ads developer token from the Google Ads manager account API Center.
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoGoogle Ads manager account ID, e.g. 123-456-7890.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_sitesB

Lists every Search Console property the signed-in Google account can access.

search_analyticsB

Clicks, impressions, CTR (%) and average position, grouped by the chosen dimensions. Omit dimensions for site totals.

compare_periodsB

Compares performance between two date ranges by a dimension and returns overall totals plus the biggest gainers and losers by clicks. The previous range defaults to the equal-length period right before the current one.

find_opportunitiesA

Surfaces quick wins: page-one queries/pages with CTR far below the benchmark for their position (low_ctr), queries ranking 8–20 that could reach the top of page one (striking_distance), and queries where several pages compete for the same impressions (cannibalization).

inspect_urlB

Google's index status for a URL: coverage, canonical, last crawl, mobile usability and rich results.

list_sitemapsA

Submitted sitemaps with their last download time, warnings, errors and submitted/indexed URL counts.

submit_sitemapA

Submits or resubmits a sitemap to Search Console so Google re-reads it (e.g. after fixing canonical or URL problems). Note: there is no API for the 'Request indexing' button.

audit_pageA

Fetches a live URL and checks technical SEO signals: redirect chain, status, noindex (meta and X-Robots-Tag), canonical (missing, multiple, other host, redirecting target), hreflang (self-reference, host, return links), title/description length, html lang and JSON-LD validity. Returns the parsed signals plus a list of issues.

audit_sitemapA

Reads a sitemap (or sitemap index), checks that every URL is on one host, then audits an evenly spaced sample of pages with audit_page and summarizes issues by type. Catches sitewide problems such as canonicals pointing to a redirecting host or sitemap URLs that redirect.

bulk_inspectA

Runs URL Inspection on many URLs and summarizes Google's index status: coverage states, verdicts, user vs Google canonical mismatches and last crawl dates. URLs come from an explicit list, a sitemap (evenly sampled) or the pages with the most impressions. Quota: 2,000 inspections per property per day, 600 per minute.

ga_list_propertiesA

Lists every GA4 property (with its account) the signed-in Google account can access.

ga_reportB

Runs a GA4 report with any GA4 Data API dimensions and metrics (e.g. dimensions: date, landingPage, pagePath, sessionDefaultChannelGroup, sessionSourceMedium, country, deviceCategory, eventName; metrics: sessions, activeUsers, newUsers, screenPageViews, engagementRate, averageSessionDuration, bounceRate, conversions, keyEvents, totalRevenue). Returns rows plus metric totals.

ga_realtimeB

Activity in the last 30 minutes (e.g. dimensions: unifiedScreenName, country, deviceCategory, eventName; metrics: activeUsers, screenPageViews, eventCount).

detect_dropsA

Scans the daily Search Console series for sudden level shifts (e.g. impressions falling 90% from one week to the next), then for the largest shift lists the pages and queries that moved most across it. Use it first when traffic looks wrong, to find when it changed and what changed.

page_performanceA

Joins Search Console (impressions, clicks, CTR, position) with GA4 (sessions, engagement, duration, key events) per page path, and flags pages with low CTR for their position, low engagement, or search clicks but no GA sessions (often a tracking gap).

ai_trafficB

GA4 sessions referred by AI assistants (ChatGPT, Perplexity, Claude, Gemini, Copilot, DeepSeek, Grok, Meta AI and others), matched by session source rather than GA4's channel grouping, which misses some of them. Returns totals, share of all sessions, a per-assistant breakdown, top landing pages and a daily trend.

pagespeedA

Runs PageSpeed Insights (Lighthouse) for a URL: category scores, Core Web Vitals field data from CrUX for the page and origin (real users, when there is enough traffic), lab metrics, the biggest performance opportunities and failing SEO/accessibility/best-practice audits. Takes 10–40 seconds.

indexnow_submitA

Notifies IndexNow engines (Bing, Yandex, Seznam, Naver…) of new or changed URLs, from a list or a whole sitemap. Google does not use IndexNow. Needs a key (INDEXNOW_KEY or indexNowKey in config.json) served as a text file on the site, by default at /.txt; the file is checked before anything is sent.

bing_list_sitesA

Lists the sites in Bing Webmaster Tools for the configured API key (BING_API_KEY).

bing_reportA

Bing search and crawl data: top queries or pages (clicks, impressions, CTR %, position summed over the range), daily site traffic, daily crawl stats (pages crawled, crawl errors, pages in index) or the current crawl issues. Bing's index also feeds several AI search products, so this complements Search Console.

bing_submitB

Submits a sitemap and/or a batch of URLs to Bing Webmaster Tools, and returns the remaining daily URL quota.

adsense_list_accountsA

AdSense accounts the signed-in Google account can access, with their sites and approval state.

adsense_reportC

AdSense report with any dimensions and metrics (e.g. dimensions: DATE, MONTH, DOMAIN_NAME, PAGE_URL, COUNTRY_NAME, PLATFORM_TYPE_NAME, AD_UNIT_NAME, AD_FORMAT_NAME; metrics: ESTIMATED_EARNINGS, PAGE_VIEWS, PAGE_VIEWS_RPM, IMPRESSIONS, IMPRESSIONS_RPM, CLICKS, COST_PER_CLICK, PAGE_VIEWS_CTR, AD_REQUESTS_COVERAGE, ACTIVE_VIEW_VIEWABILITY).

page_revenueA

Joins AdSense earnings per page with Search Console performance for the same URLs, and flags revenue opportunities: pages with above-median page RPM that rank 8–20 (moving up pays off most) or have low CTR for their position. Earnings cover all traffic to the page, not only search.

ads_list_accountsA

Google Ads accounts the signed-in user can access: ID, name, currency, whether it is a manager or test account.

ads_keyword_ideasA

Google Ads Keyword Planner ideas from seed keywords and/or a page URL: average monthly searches, 12-month trend, competition and top-of-page bid range. Shows demand for topics a site does not rank for yet, which Search Console cannot. Requires a developer token with Basic access for real volumes.

ads_keyword_volumeA

Average monthly searches, 12-month trend, competition and bid range for an exact list of keywords (e.g. the queries a page already ranks for in Search Console).

ads_queryB

Runs a read-only Google Ads Query Language query. Examples: paid vs organic for the same query (needs Ads linked to Search Console) — SELECT paid_organic_search_term_view.search_term, metrics.organic_clicks, metrics.organic_impressions, metrics.clicks, metrics.impressions FROM paid_organic_search_term_view WHERE segments.date DURING LAST_30_DAYS; search terms that triggered ads — SELECT search_term_view.search_term, metrics.clicks, metrics.cost_micros, metrics.conversions FROM search_term_view WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.clicks DESC; campaigns — SELECT campaign.name, campaign.status, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS. cost_micros / 1,000,000 = account currency.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 28 tools

Disambiguation4/5

Most tools target a distinct platform+action (e.g. ga_report vs bing_report vs adsense_report, inspect_url vs audit_page vs bulk_inspect), so selection is usually clear. Minor overlap exists among analytical tools that all flag low CTR or opportunities (find_opportunities, page_performance, page_revenue), and between ads_keyword_ideas and ads_keyword_volume, but descriptions differentiate them adequately.

Naming Consistency4/5

Nearly all names are snake_case and mostly verb_noun (list_sites, submit_sitemap, inspect_url, ga_report). The main deviation is inconsistent platform prefixing: some are prefixed (ga_, bing_, adsense_, ads_, indexnow_) while parallel operations like list_sites lack a prefix and pagespeed is a bare noun, but it stays readable.

Tool Count3/5

28 tools is heavy and sits at the upper bound of comfortable scoping, but the server legitimately spans six platforms (Search Console, GA4, PageSpeed, Bing, AdSense, Google Ads), so most tools earn their place rather than being redundant.

Completeness4/5

Coverage across Search Console, GA4, PageSpeed, Bing, AdSense and Ads is broad, with read/analysis plus some write (sitemap submit, IndexNow, Bing submit). Gaps are mostly external-API limits (no indexing-request API, no backlink data, no CRUD for ads), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues