free-seo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FREE_SEO_PROXY | No | HTTP(S) proxy for every request. | |
| FREE_SEO_DATA_DIR | No | Directory for keyword CSVs and cache. | ./seo-data |
| FREE_SEO_MIN_DELAY | No | Seconds between requests to one host. | 0.4 |
| FREE_SEO_BING_API_KEY | No | Bing Webmaster API key. Turns on Bing tools and Bing-based estimates. Get a key by signing in to Bing Webmaster Tools, adding and verifying your site, opening Settings, then API access. | |
| FREE_SEO_CACHE_TTL_DAYS | No | Cache lifetime in days. | 7 |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| suggestA | Autocomplete suggestions for one query from a single engine, in rank order. source: google | youtube | bing | duckduckgo. hl: interface language (en, es, de...), gl: country (us, mx, de...). Position 0 is the most popular completion. |
| expand_alphabetB | Expand a seed in breadth: the seed itself plus "seed a", "seed b"... per alphabet. Returns unique phrases ranked by a popularity score (appearances weighted by list position) with occurrence counts. sources defaults to ["google"]. Reports progress. |
| expand_questionsA | Expand a seed with question prefixes for the language (how to, why, best...). Surfaces informational intent similar to "People also ask". Phrases are scored like expand_alphabet. sources defaults to ["google"]. Reports progress. |
| expand_multilingualA | Run one seed through autocomplete in several locales at once. locales: "hl:gl" pairs such as ["en:us", "es:es", "pt:br"]; default en:us, es:es, pt:br, ru:ru. A failing locale reports its error field and does not break the others. |
| trends_compareA | Compare up to 5 keywords on one Google Trends 0-100 scale. Returns each keyword's time series, mean and peak. Relative interest only, not absolute volume. |
| trends_relatedA | Google Trends related queries for one keyword: 'top' (relative score 0-100) and 'rising' (growth in percent). Good for finding new keyword ideas. |
| trends_by_regionA | Where a keyword is searched most, per Google Trends (0-100, sorted). With geo='' returns countries; with a country code returns its regions. |
| estimate_volumesA | Estimate monthly search volume for many keywords. Each batch of 4 keywords is compared with the same anchor keyword in Google Trends; the ratio to the anchor is multiplied by an absolute base: anchor_volume if given, else the anchor's Bing Webmaster impressions (last 30 days) x engine_multiplier. Returns volume, high/mid/low tier, confidence and method per keyword. These are rough estimates, not exact counts. Pick an anchor of similar popularity whose volume you know. |
| bing_keywordA | Real Bing search impressions for one keyword over the last N days. Needs FREE_SEO_BING_API_KEY (free, from Bing Webmaster Tools). |
| bing_related_keywordsA | Keywords related to a phrase, each with real Bing impressions for the last N days, sorted by impressions. A free source of keyword ideas with numbers. Needs FREE_SEO_BING_API_KEY (free, from Bing Webmaster Tools). |
| bing_keyword_historyA | Weekly Bing impression history for one keyword (seasonality). Needs FREE_SEO_BING_API_KEY (free, from Bing Webmaster Tools). |
| reddit_searchC | Search Reddit threads to hear how real buyers phrase questions and problems. Returns title, subreddit, score, comment count, URL and a short body snippet per thread. |
| sitemap_urlsA | List page URLs from a competitor's sitemaps to map its content structure. Discovers sitemaps via robots.txt (falls back to /sitemap.xml), follows sitemap indexes recursively and reads gzipped sitemaps. |
| page_outlineA | Fetch one page and return its title, meta description, h1-h3 headings and word count. |
| keywords_saveA | Merge keyword rows into the project's CSV store (//.csv). Rows are deduplicated by normalized phrase (case and whitespace insensitive): new non-empty fields overwrite stored ones and sources are merged. |
| keywords_loadA | Load saved keywords for a project and language, optionally filtered by tier/cluster. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| keyword_research_workflow | Step-by-step keyword research plan using this server's tools. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools target a distinct data source and action—autocomplete expansion, Google Trends, Bing data, Reddit, sitemaps, page outlines, and storage—so boundaries are generally clear. The expansion and Trends clusters are somewhat related, but their descriptions specify different algorithms and outputs, reducing real misselection risk.
There are readable internal families: expand_*, trends_*, bing_*, keywords_*, but the overall set mixes action-first names like suggest and estimate_volumes with resource-first names like sitemap_urls and page_outline. This is not chaotic, but there is no single consistent naming pattern.
16 tools is at the upper edge of the well-scoped range for a keyword-research server, and each tool covers a distinct facet of the workflow. It is slightly heavier than ideal but not bloated.
The surface covers keyword discovery via autocomplete, Trends, Bing, and Reddit, plus volume estimation, page analysis, sitemap mapping, and local storage/loading. Minor gaps such as saved-keyword deletion or a direct SERP/rank-checking tool exist but are workable.