Skip to main content
Glama
Akxan
by Akxan

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoHost to bind when using HTTP mode.
MCP_PATHNoHTTP path for the MCP endpoint when using HTTP mode.
MCP_PORTNoPort to bind when using HTTP mode.
WP_SITESNoJSON array of WordPress sites reachable over SSH. Omit to disable wp_* tools.
CRUX_API_KEYNoGoogle Chrome UX Report API key.
GITHUB_TOKENNoGitHub token for GitHub tools. Falls back to `gh auth token`.
INDEXNOW_KEYNoOptional IndexNow key for IndexNow submissions.
BRAVE_API_KEYNoOptional Brave API key for brand mentions.
MCP_TRANSPORTNoSet to http to run as a Streamable HTTP server; defaults to stdio.
GOOGLE_API_KEYNoGoogle Knowledge Graph Search API key. Falls back to PAGESPEED_API_KEY.
MCP_AUTH_TOKENNoBearer token used for authentication in HTTP mode.
SEO_MCP_TOOLSETSNoComma-separated list of toolsets: gsc,ga4,web,geo,analysis,wordpress,github.
PAGESPEED_API_KEYNoGoogle PageSpeed Insights API key. Without it, the public quota is shared and often exhausted.
SEO_MCP_READ_ONLYNoSet to 1 to register no write tools.
PERPLEXITY_API_KEYNoOptional Perplexity API key for AI citation checks.
GOOGLE_PLACES_API_KEYNoOptional Google Places API key for Google reviews.
INDEXNOW_KEY_LOCATIONNoOptional IndexNow key location.
GOOGLE_CREDENTIALS_JSONNoInline Google service account JSON key. Alternative to GOOGLE_APPLICATION_CREDENTIALS.
GOOGLE_APPLICATION_CREDENTIALSNoPath to the Google service account JSON key file for Search Console and GA4 authentication.

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
google_auth_statusA

Verify which Google credentials are in use and that an access token can be obtained. Run this first if other tools fail.

page_auditA

Fetch a page like a crawler and report: final URL and redirect chain, status, title, meta description, robots (meta + X-Robots-Tag), canonical, lang/hreflang, Open Graph, H1/H2/H3 outline, images missing alt, internal/external/nofollow link counts, word count, JSON-LD schema types, HTML size and fetch time, plus a list of flagged issues. Works for any site, no authorization needed.

pagespeedA

Run Google PageSpeed Insights for a URL. Returns Lighthouse category scores (performance, SEO, accessibility, best practices), lab metrics (LCP, CLS, TBT, FCP, Speed Index), real-user CrUX field data (LCP, CLS, INP) when available, and the top improvement opportunities with estimated savings. Set PAGESPEED_API_KEY for a higher quota. Each run takes 15-60 s; Google caches results for a short while, so if a call times out simply call again. A 'Lighthouse returned error' after retry usually means the page never becomes idle (endless animations/JS) and cannot be audited by PSI.

sitemap_checkA

Fetch a sitemap (sitemap index supported, .gz supported), list its URLs, and check the HTTP status of a sample (or all) of them to find 404s, redirects and server errors. Pass a site root to auto-discover the sitemap from robots.txt or /sitemap.xml.

robots_checkA

Fetch a site's robots.txt, show its groups and sitemap lines, and test whether specific URLs are crawlable for a given user agent (default Googlebot) using Google's longest-match rules.

ai_crawler_accessA

Check whether AI and search crawlers (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, Googlebot, Bingbot, Applebot, Amazonbot, Meta, CCBot, Bytespider...) can reach a page: robots.txt rules for the site root and for the URL, plus a live request with each bot's User-Agent to detect UA-based blocks (e.g. Cloudflare 'block AI bots', WAF rules). Being blocked from OAI-SearchBot, PerplexityBot or Claude-SearchBot means the site cannot be cited by those assistants.

llms_txt_checkA

Check /llms.txt and /llms-full.txt: existence, size, structure (H1 title, blockquote summary, H2 sections with markdown links), robots access, and whether the linked URLs respond 200.

llms_txt_generateA

Crawl the sitemap (up to maxPages), read each page's title and meta description, and produce a draft llms.txt in the standard format (H1, blockquote summary, H2 sections grouped by first path segment, '- title: description' lines). Review and edit the draft before publishing it at /llms.txt.

structured_data_auditA

Extract JSON-LD from one or more pages, validate required/recommended properties per schema type (Organization, LocalBusiness, TravelAgency, TouristTrip, Product/Offer, Event, Article/BlogPosting, FAQPage, BreadcrumbList, WebSite, Person, Review...), flag invalid JSON and bad dates, and check entity consistency across pages (organization name, telephone, address, sameAs must match everywhere). Pass explicit urls or a sitemap to sample.

geo_page_scoreA

Score how easily AI answer engines (ChatGPT, Perplexity, Google AI Overviews) can extract and cite a page: direct answer in the first paragraph, question-style headings, FAQ section and FAQPage schema, lists/tables, quotable statistics, summary section, author and dates (E-E-A-T), outbound citations, structured data. Returns a 0-100 score, the signals found and concrete fixes.

eeat_auditA

Site-level trust signals that search and AI engines weigh: About and Contact pages, privacy/terms, visible address and phone, Organization/LocalBusiness schema on the homepage, review/rating schema, social profiles (sameAs), author pages, HTTPS, plus a sample of articles checked for bylines and dates. Returns a pass/fail checklist with what to add.

indexnow_submitA

Submit up to 1000 changed URLs to IndexNow (Bing, Yandex, Naver, Seznam; Bing's index feeds ChatGPT search and Copilot). Requires INDEXNOW_KEY and the key file published at https:///.txt (or set INDEXNOW_KEY_LOCATION). The tool verifies the key file before submitting. Google does not support IndexNow.

ai_citation_checkA

Ask Perplexity's Sonar API a question a customer might ask and report which sources it cites, whether your domain is among them, and the answer text. Useful to see if the site is being cited by AI search for target queries. Requires PERPLEXITY_API_KEY (paid, cents per call). ChatGPT and Google AI Overviews have no such API.

schema_validateA

Validate one or more JSON-LD objects before publishing: required/recommended properties per type (same rules as structured_data_audit), FAQ/Breadcrumb structure, ISO dates, @context presence. Returns the normalized, compact JSON ready to inject.

schema_generateA

Generate draft JSON-LD from an existing page: 'faq' extracts question-style headings and the paragraph(s) that follow them into FAQPage; 'article' builds Article/BlogPosting from title, meta description, dates, author and og:image; 'breadcrumb' from the URL path; 'all' returns every applicable block. Review the text (answers are trimmed to ~600 chars) then publish with wp_set_schema or by editing the site code.

site_crawlA

Breadth-first crawl from a start URL (same host only, respects robots.txt for Googlebot), auditing each HTML page like page_audit. Returns a site-level summary: status code counts, broken internal links with their referrers, redirect chains, duplicate titles and descriptions, pages missing title/description/H1, noindex pages, thin pages, images without alt, orphan pages (in sitemap but never linked), click depth from the start page and inbound-link counts per page. Use maxPages to bound the run; a 200-page crawl takes 1-3 minutes.

hreflang_checkA

For a page (or a sitemap sample), read its hreflang alternates and verify: every alternate URL is reachable, points back (reciprocal) to the source, has a self-referencing entry, uses valid language-region codes, has an x-default, and that canonicals do not contradict the alternates. Also compares with the declared hreflang.

compare_pagesA

Audit several URLs (yours plus pages ranking above you) side by side: word count, title/description, heading counts and outline, lists/tables, images, internal/external links, schema types, fetch time, HTML size. Also extracts the most frequent content terms of each page and lists terms competitors use that your page lacks (content-gap hint).

social_preview_checkA

Validate how a page previews when shared (social networks, messaging apps, AI chat link cards): og:title/description/image/url/type, twitter:card, image reachability, dimensions (recommended 1200x630), file size and content type, plus fallbacks used when tags are missing.

keyword_suggestA

Expand a seed keyword using Google Autocomplete suggestions (free, no key): the seed itself, question prefixes (how/what/why/best/cómo/qué...), and optionally a-z suffix expansion. Set language (hl) and country (gl) to match the market, e.g. hl='es', gl='es' or hl='en', gl='gb'. Returns deduplicated suggestions grouped by prefix, useful for long-tail and FAQ ideas.

gsc_list_sitesA

List all Search Console properties (sites) the authorized account can access, with permission level.

gsc_search_analyticsA

Query Google Search performance data (clicks, impressions, CTR, average position) grouped by query, page, country, device, date or searchAppearance. Supports filtering (e.g. only rows where page contains '/blog/') and pagination.

gsc_compare_periodsA

Compare search performance between a current and a previous period for a single dimension (query or page). Returns rows with deltas, sorted by biggest click change, so you can spot winners and losers.

gsc_inspect_urlA

Run the URL Inspection API for a page: index status, last crawl time, canonical selection, robots.txt state, mobile usability, rich results and AMP status. Quota: ~2000 calls/day per property.

gsc_list_sitemapsA

List sitemaps submitted for a property, with last submitted/downloaded times, errors, warnings and URL counts.

gsc_submit_sitemapA

Submit (or resubmit) a sitemap URL for a property.

gsc_opportunitiesA

Find queries with high impressions but average position in a range (default 8-20): pages already ranking on page 1-2 that can be pushed into the top results with title/content/internal-link work. Groups results by page and, when a WordPress site is configured for this domain, maps each page to its post ID so you can edit it directly.

gsc_cannibalizationA

Find queries for which two or more pages of the site receive impressions, i.e. pages competing against each other for the same keyword. Each result lists the competing pages with clicks, impressions and position so you can consolidate or differentiate them.

gsc_index_coverageA

Run the URL Inspection API over a list of URLs (or the first N URLs of the site's sitemap) and summarize index status: indexed / not indexed, coverage state, robots state, last crawl, canonical mismatch. Costs one inspection call per URL against the ~2000/day quota, so keep batches small.

gsc_question_queriesA

Find question-style queries (how, what, why, best, is it, cómo, qué, cuánto, dónde...) the site already gets impressions for, grouped by page. Optionally fetches each page to check whether a heading matches the question and whether FAQPage schema exists, so you know where to add FAQ answers. These queries are the ones AI Overviews and answer engines pick up.

gsc_rich_results_reportB

Show how the site appears in Google results: clicks and impressions per search appearance type (rich results, FAQ, review snippet, video, AMP, translated results, Discover...), and the top pages for each appearance type.

gsc_site_snapshotA

One call that answers 'how is the site doing': totals for the period and the previous period of equal length (clicks, impressions, CTR, position with deltas), top queries, top pages, device and country split, and the biggest winners/losers by page. Use this first when asked for an overview or a report.

gsc_ctr_opportunitiesA

Queries already ranking in the top positions whose CTR is far below the typical CTR for that position, weighted by impressions: the fastest wins from rewriting titles and meta descriptions. Benchmark CTR by position: 1: 28%, 2: 15%, 3: 11%, 4: 8%, 5: 7%, 6-10: 5-3%.

ga_list_propertiesA

List all Google Analytics accounts and GA4 properties the authorized account can access. Requires the Analytics Admin API to be enabled.

ga_run_reportB

Run a Google Analytics 4 Data API report. Common dimensions: date, pagePath, landingPage, sessionDefaultChannelGroup, sessionSource, sessionMedium, country, deviceCategory, eventName. Common metrics: sessions, activeUsers, totalUsers, newUsers, screenPageViews, engagementRate, averageSessionDuration, bounceRate, conversions, eventCount, keyEvents. Use ga_get_metadata to discover more. Optionally add a comparison date range.

ga_run_realtime_reportA

Real-time (last 30 minutes) GA4 data. Dimensions: country, city, deviceCategory, unifiedScreenName, eventName, minutesAgo. Metrics: activeUsers, screenPageViews, eventCount, keyEvents.

ga_get_metadataA

List the dimensions and metrics available for a GA4 property (including custom ones). Filter by a search string to keep the output small.

ga_compare_periodsA

Compare GA4 metrics between a current and a previous period, broken down by dimensions (default: channel group). Returns per-row current/previous/delta/percent change plus period totals. Use it for 'how did organic traffic change vs last month'.

ga_landing_page_seoA

One table per landing page combining GA4 organic-search behaviour (sessions, engagement rate, bounce rate, avg. session duration, key events) with Search Console performance (clicks, impressions, CTR, position) for the same period. Requires both the GA4 property and the Search Console property of the same site.

migration_checkA

Before pointing a domain at a new (static) site, verify that every URL that matters on the old site still works on the new one. Collects old URLs from Search Console (pages with impressions in the period) and the old sitemap, rewrites each to the new host (e.g. a pages.dev preview), follows redirects, and classifies: OK (200 same path), REDIRECTED (301/302 to a 200 page), REDIRECT_TO_HOME (traffic likely lost), CHAIN (2+ hops), NOT_FOUND (404/410), ERROR. Results are sorted by old-site clicks so the costliest gaps come first.

cross_site_linksA

For two Search Console properties you own on the same topic, find pages that rank for the same or overlapping queries and suggest links between them (site A page -> site B page and vice versa). Optionally fetches the top candidate pages to check whether a cross-domain link already exists.

content_refresh_candidatesA

Find pages whose clicks or impressions dropped between two periods and that have not been updated recently (sitemap lastmod), with the queries they lost the most on. These are the best candidates for a content refresh: update facts, expand answers, add FAQ, re-publish with a new dateModified.

knowledge_graph_checkA

Check whether a brand/business/place exists as an entity in Wikidata (free, no key) and in Google's Knowledge Graph Search API (needs the 'Knowledge Graph Search API' enabled on the GCP project and a key in GOOGLE_API_KEY or PAGESPEED_API_KEY). AI engines and Google rely on entities to know 'who' a site is; if none exists, the result includes the steps to establish one.

crux_historyA

Real-user Core Web Vitals from the Chrome UX Report History API for an origin or URL: weekly p75 of LCP, INP, CLS, FCP, TTFB over the last ~25 weeks and the share of good/needs-improvement/poor. Needs the 'Chrome UX Report API' enabled on the GCP project and a key in CRUX_API_KEY / GOOGLE_API_KEY / PAGESPEED_API_KEY. Returns 404 when the page has too little traffic for CrUX; try the origin instead.

brand_mentionsA

Search the web for pages mentioning a brand name that are not on your own domain, and check whether each mentioning page links to you. Unlinked mentions are outreach targets for links; the list also shows what context AI engines associate with the brand. Requires BRAVE_API_KEY (free tier available at brave.com/search/api).

reviews_snapshotA

Fetch rating, review count and the latest reviews of a Google Business Profile via the Places API (New). Use it as the source for AggregateRating schema and to monitor reputation. Requires GOOGLE_PLACES_API_KEY with 'Places API (New)' enabled (billing must be enabled on the project; Google grants a monthly free allowance).

github_get_fileA

Read a file (text) from a repository branch. Returns content, sha (needed for edits), size and the branch's latest commit. Files over 1 MB are refused; use github_list_dir to browse.

github_list_dirB

List files and folders at a path in a repository (name, type, size, sha).

github_search_codeA

Search file contents in one repository (GitHub code search syntax, e.g. 'og:image path:src', 'canonical extension:astro'). Returns matching files with fragments. Indexed for the default branch only.

github_list_commitsB

List recent commits of a branch, optionally only those touching a path.

github_commit_filesA

Create one commit on a branch that adds/updates/deletes several files atomically (Git Data API), then the branch is updated so the site's CI/CD (e.g. Cloudflare Pages) deploys it. Send the full new content of each file; read the current content first with github_get_file and apply your edit locally. Set createBranch to work on a new branch off the default branch instead of committing directly.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/Akxan/google-seo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server