Skip to content
Agentmart
Submit a tool

localseodata/mcp-server

53 local SEO data tools: rankings, reviews, audits, keywords, AI visibility.

Connector by localseodata · GitHub account verified by the MCP Registry

IndexedMITRemote (HTTP)★ 3
Write a review

Install

Pick your client. Read the repository before you give any tool access to your data.

No install instructions from the source yet. Check the repository for setup steps.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

53 local SEO data tools: rankings, reviews, audits, keywords, AI visibility.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
53 read · 0 write · 0 deleteRead-only
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 53

Read from the source code; the running server may list different tools.

Read 53 · Look things up without changing anything.

  • ai_compare
  • ai_keyword_data
  • ai_llm_response
  • ai_match
  • ai_mentions
  • ai_mode
  • ai_overview
  • ai_sample
  • ai_sample_status
  • ai_scraper
  • ai_top_pages
  • ai_top_sources
Show 41 more tools
  • ai_visibility
  • apple_business_profile
  • apple_maps
  • backlink_gap
  • backlink_summary
  • bing_business_profile
  • bing_local
  • brand_mentions
  • business_listings
  • business_profile
  • citation_audit
  • competitor_ads
  • competitor_gap
  • geogrid_scan
  • geogrid_status
  • get_balance
  • google_reviews
  • history_get
  • history_search
  • keyword_opportunities
  • keyword_overview
  • keyword_suggestions
  • keyword_trends
  • keywords_for_site
  • local_audit
  • local_authority
  • local_finder
  • local_pack
  • local_services_ads
  • location_search
  • maps
  • multi_platform_reviews
  • organic_serp
  • page_audit
  • ping
  • profile_health
  • qa
  • related_keywords
  • reputation_audit
  • review_velocity
  • search_volume

Network hosts it talks to 12

  • anthropic.com · found in code
  • api.anthropic.com · found in code
  • api.localseodata.com · found in code
  • chat.openai.com · found in code
  • chatgpt.com · found in code
  • claude.ai · found in code
  • claude.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • localseodata.com · found in code
  • mcp.localseodata.com · found in code
  • platform.openai.com · found in code

Files it touches

  • Any path the agent passes to its tools

Tools (53)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • ai_compareCompare AI Visibilityread-only

    Compares 2–5 domains' AI visibility side by side. Returns per-domain total_mentions, total_impressions, and ai_search_volume. For one domain's detailed platform breakdown, see ai_visibility. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 81 credits per domain compared (2 domains = 162).

  • ai_keyword_dataAI Search Volumeread-only

    Use when measuring how often keywords are searched in ChatGPT and other LLMs. Returns ai_search_volume and monthly trend data per keyword. IMPORTANT: volumes are country-level (volume_scope: "country") regardless of the location passed — check location_used. Costs 9-16 credits, scaling with keyword count (100 keywords = 16).

  • ai_llm_responseDirect LLM Responseread-only

    Gets what a specific LLM says about a query. Returns response_text, the model used, sources with URLs, fan_out_queries, and web_search_used. Each source carries a position — the order it was cited, from 1, counted after duplicate pages collapse. Supports chat_gpt, claude, gemini, perplexity. WHETHER YOU GET SOURCES depends on whether the model searched the web. perplexity searches on every call, so its sources are populated and it needs no parameters. The other three answer from training data unless you set web_search: true, and on local business questions they otherwise do not search at all.…

  • ai_matchAI Answer Entity Matchread-only

    Use when deciding whether a business an AI named IS the business you are tracking. Takes the businesses array from ai_scraper, ai_mode or ai_sample plus a target, and returns matched, confidence, matched_on, rank and the near misses. WHY NOT DO IT YOURSELF: the two obvious rules both fail quietly. Matching on domain misses roughly a third of appearances, because that is how often ChatGPT names a business with an empty website and domain. Matching on name fails on Google AI Mode, which labels cards editorially — the same business came back as "The Classic Staple" in one answer and under its tr…

  • ai_mentionsAI Search Mentionsread-only

    Use when finding where a keyword appears in ChatGPT and Google AI outputs. Returns ai_search_volume, total_mentions, and mention details with question, answer_snippet, sources_cited, and platform. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 88 credits.

  • ai_modeGoogle AI Mode Answerread-only

    Use when getting the Google AI Mode (SGE) generated answer for a keyword. Returns ai_response text, local_businesses, reference links, and shopping items. Costs 2 credits. May take 10-30 seconds; Google generates the answer per request. LOCAL BUSINESSES: on a local question Google recommends businesses inside the answer and we return them as local_businesses — rank, name, category, rating, reviews_count, address, website, domain, cid. Field names shared with /v1/serp/local-pack mean the same things; the sets differ in that this adds category and domain and has no hours. cid is an empty string…

  • ai_overviewGoogle AI Overviewread-only

    Use when checking if Google shows an AI Overview for a keyword and what sources it cites. Returns has_ai_overview, asynchronous_ai_overview, summary_text, and cited_sources with URLs. Each cited source carries a position — the order the overview cited it, from 1, counted after duplicate pages collapse. asynchronous_ai_overview reports that Google rendered the overview after page load — this tool fetches those as well, so summary_text and cited_sources are populated either way. Costs 2 credits. May take 10-30 seconds — fetching an asynchronous overview is a second request to Google.

  • ai_sampleAI Answer Samplingread-only

    Use when measuring HOW OFTEN an AI answer names a business, not just whether it did once. Read-only: it asks the same question `samples` times and reports how often each business appears; nothing is changed or posted anywhere. The runs take one to three minutes, longer than a tool call can wait, so this returns a job_id right away -- call ai_sample_status with it to get the result. COLLECTING: ai_sample_status is free and the result does not expire. Typical answers are ready in 30-60 seconds and the slowest in about 130 -- wait 30 seconds before the first check and roughly 15 between checks. …

  • ai_sample_statusAI Answer Sampling Statusread-only

    Collects the answer to an ai_sample job. FREE — poll as often as you need. Returns status "pending" or "running" with progress and total_steps while the samples are still going, "complete" with the full distribution once they are done, and "failed" with an error if the job died (a failed job is refunded in full). Typical completion is 30-60 seconds, tail around 130. WHAT COMES BACK: per business — appearances, appearance_rate, shortlist_rate, mean_rank, mean_shortlist_rank, best_rank, worst_rank, top_pick_count and runs_seen — plus every individual run. TWO DIFFERENT RANKINGS, DO NOT MERGE …

  • ai_scraperAI Result Scraperread-only

    Use when scraping ChatGPT or Gemini search results for a keyword. Returns markdown response, local_businesses, sources, fan_out_queries, and brand_entities. Each entry in sources carries a position — the order it was cited, from 1, after duplicates collapse. Costs 4 credits. TWO RANKINGS, DO NOT MERGE THEM: local_businesses is the platform's LISTING, in the order it emitted cards. recommended_businesses is the SHORTLIST read out of the answer's own prose, in the order the answer argued for it, with shortlist_rank, listed, mention, is_top_pick and the citation offered beside each entry. listed…

  • ai_top_pagesTop AI-Cited Pagesread-only

    Use when finding specific pages (not just domains) that AI models reference most. Returns top_pages with url, domain, mentions, and ai_search_volume. More granular than ai_top_sources. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 81 credits.

  • ai_top_sourcesTop AI-Cited Domainsread-only

    Discovers which domains AI models cite most for a topic. Returns top_domains with domain, mentions count, and ai_search_volume. Reports at the domain level; ai_top_pages reports individual pages. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 81 credits.

  • ai_visibilityDomain AI Visibility Scoreread-only

    Measures a single domain's overall AI citation score across platforms. Returns total_mentions, total_impressions, ai_search_volume, and platform_breakdown (chat_gpt, google). Covers one domain; ai_compare covers several side by side. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 81 credits.

  • apple_business_profileApple Maps Business Profileread-only

    Fetches a business's Apple Maps listing (NAP, rating, categories, coordinates). Use when auditing Apple Business Connect or checking NAP consistency on Apple. matched:false means no Apple listing exists at all. A listing that exists but has claimed:false means it exists and was never claimed in Apple Business Connect — a different, very common finding. claimed:null means unknown, not claimed. Both are results worth reporting, not errors. Check data_source before reporting a website mismatch: a non-empty value ("yelp") means Apple ingested the record from that provider, so its website is the pr…

  • apple_mapsApple Maps Rankingsread-only

    Checks how businesses rank on Apple Maps for a keyword. Use when the question is about Apple Maps, Siri, Apple Business Connect, or visibility on iPhone — Google local_pack does not cover these. Returns rank, name, address, phone, website, rating, reviews_count, categories, hours, coordinates, and platform_id (Apple's MUID, stable and worth keeping for later lookups). claimed: false means Apple states the listing has never been claimed in Apple Business Connect — report that as a finding, it is usually more actionable than any NAP mismatch. claimed: null means Apple said nothing about claim st…

Show 38 more tools
  • backlink_gapBacklink Gap Analysisread-only

    Use when finding link building opportunities -- sites that link to competitors but not to you. Returns referring domains with domain_authority and which competitors they link to. Costs 23 credits.

  • backlink_summaryBacklink Profile Summaryread-only

    Use when getting a domain's backlink profile overview. Returns rank, backlinks_total, referring_domains, broken_backlinks, spam_score, and backlinks_by_type. Costs 23 credits.

  • bing_business_profileBing Places Business Profileread-only

    Fetches a business's Bing Maps listing (NAP, rating, coordinates). Use when auditing Bing Places or checking NAP consistency on Bing. matched:false means no Bing listing was found, which usually means Bing Places was never claimed — a finding, not an error. Costs 3 credits.

  • bing_localBing Local Rankingsread-only

    Checks how businesses rank in Bing's local results for a keyword. Use when the question is about Bing, Bing Places, Copilot, or ChatGPT local recommendations — ChatGPT's web layer draws on Bing, so this is the closest measurable proxy for it. Returns rank, name, address, phone, website, hours, coordinates, and platform_id. Bing publishes no ratings or review counts on local results, so rating is null and reviews_count is 0 — that is a platform limitation, not missing data. claimed is always null: Bing gives no claimed/unclaimed signal. Costs 3 credits.

  • brand_mentionsBrand Mentions Monitorread-only

    Use when monitoring where a brand is mentioned online with sentiment analysis. Returns total_mentions, sentiment_breakdown (positive/neutral/negative), and mention details with domain_authority and sentiment. Costs 23 credits.

  • business_listingsBusiness Listings Discoveryread-only

    Use when discovering all businesses in a category and location (bulk discovery, not single business lookup). Returns name, rating, reviews_count, address, city, phone, website, place_id, lat/lng, and categories for each, searched within search_radius_km of the location (location_used echoes where). Costs 10 credits per 50 results.

  • business_profileGoogle Business Profileread-only

    Use when pulling one business's complete GBP data. Returns name, address, phone, website, hours, categories, photos_count, rating, reviews_count, description, attributes, cid, place_id, and verified status. If no exact match is found, returns matched=false with up to 5 suggestions from Google Maps including place_id for exact retry. Costs 5 credits.

  • citation_auditCitation / NAP Consistency Auditread-only

    Use when checking NAP (Name, Address, Phone) consistency across business directories (Yelp, BBB, Facebook, YellowPages, Angi, Houzz, Trustpilot and more). Returns consistency_score (0-100 partial-credit average over found listings; null when no listings found) and per-directory match details. Match fields are true (verified), false (conflicting value found), or null (listing found but the field isn't visible in search data, so it can't be verified). Every directory selected is scanned whether or not a listing exists there, so directories_checked always equals what was requested -- a business l…

  • competitor_adsCompetitor Google Adsread-only

    Use when seeing what Google Ads a competitor domain is running. Returns advertiser, total_ads (after limit), total_available, and per creative: advertiser_name, creative_id, format, first/last shown, and preview_image_url / transparency_url links. Google's Ads Transparency Center does not carry ad headline or body text, landing URLs, or platforms. Costs 2 credits.

  • competitor_gapCompetitor Gap Analysisread-only

    Use when comparing your business vs local competitors on rankings, reviews, ratings, and Google Business Profile completeness. Returns your_business stats, competitor details with advantages, and your_gaps. Costs 10 credits + 2 per competitor actually returned (default 5 competitors = 20 credits; thin markets may return fewer and cost less).

  • geogrid_scanGeogrid Rank Scanread-only

    Use when mapping where a business ranks across a geographic area. Read-only: it checks public Google Maps rankings at each point of a grid and changes nothing. Ranks count organic listings only (ads are skipped), top 20. Returns: grid (2D array, 0 = not found), grid_points (flat array with row, col, lat, lng, rank, status -- use for map plotting), center, average_rank (ARP), atrp (not found = 21), solv (% of points in the top 3), found_in, failed_points, total_points. Set include_listings to also get the top 20 businesses at every point (competitor analysis). Expensive: 2 cr per point -- 18 cr…

  • geogrid_statusGeogrid Scan Statusread-only

    Collects the grid from a geogrid_scan that returned a job_id instead of a result. FREE -- poll as often as you need. Returns status "pending" or "running" while the grid is being searched, "complete" with the full grid once done, and "failed" with an error if the scan died (it is refunded). Most scans finish inside geogrid_scan itself and never need this; a scan that runs long is the one that does. Points that could not be checked have status "error" in grid_points, are counted in failed_points, and are refunded. READING THE GRID: grid is a 2D array where 0 means the business was not found …

  • get_balanceCheck Credit Balanceread-only

    Returns available credits (split into the monthly plan allowance, spent first, and the never-expiring wallet), daily spending cap, plan, and environment. Useful before running multi-step or expensive analyses to confirm the account has enough credits. Free (0 credits).

  • google_reviewsGoogle Reviewsread-only

    Use when reading actual review text and owner replies for sentiment analysis or reply auditing. Returns text, rating, date, author_name, owner_reply for each review plus total_reviews and average_rating. For multi-location brands pass place_id (from business_profile) — name+location lookups can silently return empty. Costs 1 credit per 10 reviews. May take 10-30 seconds.

  • history_getRead a Past Responseread-only

    Returns one past call in full, including the response body exactly as it was returned at the time. Free (0 credits). Takes the request_id from any previous response, or the id from history_search. This is how you read an answer you already paid for rather than buying it again. A null body is not an error and not a missing call: the call happened, and its cost and timing are still there. response_data_omitted is "not_stored" and deliberately does not guess which of four causes applied — logging off for the account, a body over the size limit, a non-JSON body, or an endpoint whose response is …

  • history_searchSearch Request Historyread-only

    Finds calls this account has already made, with what was asked and what it cost. Free (0 credits). USE THIS BEFORE BUYING DATA AGAIN. Every response this API has returned is kept, so "has this changed since last month?", "what did we see last time?" and "did we already check this?" are answerable from what has been paid for once. Running the original endpoint again to answer them charges full price for a second copy. Filter by endpoint, by date range, and by what was asked: keyword, location, business_name and domain match the parameters of the original call, so "every AI Mode call for this …

  • keyword_opportunitiesLocal Keyword Opportunitiesread-only

    Use when finding the best local keywords to target based on difficulty vs current rank. Returns keywords with estimated_difficulty, your_rank, and search_volume. Costs 4 credits.

  • keyword_overviewKeyword Overviewread-only

    Use when you have keywords and want the full picture on them: search volume, CPC and competition PLUS keyword_difficulty and search_intent (informational, navigational, commercial, transactional) and the averaged backlink profile of the pages currently ranking (backlinks, dofollow, referring_pages, referring_domains, referring_main_domains, and the 0-1000 rank and main_domain_rank authority scores) — what it takes to rank for each term. Accepts up to 1000 keywords. IMPORTANT: volumes are country-level (volume_scope: "country") — use search_volume instead when the city/state number is what matt…

  • keyword_suggestionsKeyword Suggestionsread-only

    Use when generating new keyword ideas from a seed keyword. Keyword ideas come from our national keyword database; volumes and CPC are then localized via Google Ads for city/state locations (volume_scope: "local") with a labeled country-level fallback (volume_scope: "country") — check location_used for the actual scope, and location_alternatives for sibling entities like townships. keyword_difficulty remains national (SERP-based). A null search_volume means no data, not zero searches. For metrics on keywords you already have, search_volume returns volume/CPC directly. Costs 92 credits.

  • keyword_trendsKeyword Trend Trackingread-only

    Use when checking if a keyword is rising, stable, or declining over time. Returns one series per keyword: interest data points (weekly or monthly — see granularity; each point has date), peak_month (null when the keyword has no data), trend_direction, and has_data. The in-progress week/month is left out (partial_period_excluded). IMPORTANT: interest data is country-level (volume_scope: "country") — Google Trends via this source has no city/state granularity; check location_used for the actual scope. Periods: 3m, 6m, 12m (default), 5y. Costs 9 credits.

  • keywords_for_siteKeywords a Domain Ranks Forread-only

    Use when reverse-engineering what keywords a competitor domain ranks for. Returns keywords with search_volume, cpc, and competition. IMPORTANT: volumes are country-level (volume_scope: "country") — our keyword database for this tool has no city/state granularity; check location_used for the actual scope. Costs 20 credits.

  • local_auditComprehensive Local SEO Auditread-only

    Use when running a comprehensive local SEO check: SERP + profile + reviews + competitors in one call. Returns local_pack_position, organic_positions, rating, reviews_count, profile_completeness, review_velocity, competitors, and recommendations. Expensive (50 credits) -- confirm with user first. Async, takes 15-45 seconds.

  • local_authorityLocal Authority Scoreread-only

    Use when calculating a composite 0-100 local authority score. Returns authority_score with breakdown by ranking, reviews, profile, and citations (each with score, max, and detail), plus percentile. Good single metric to track over time. Costs 10 credits.

  • local_finderGoogle Local Finder Listingsread-only

    Use when you need local listings with Google CID identifiers (instead of GPS coordinates from maps). Returns names, ratings, reviews, addresses, phone, hours, websites, and CIDs. Supports min_rating filter. Costs 2 credits.

  • local_packGoogle Local Pack Rankingsread-only

    Checks where businesses rank in Google's local pack for a keyword. Returns rank, name, cid, rating, reviews_count, address, phone, hours, website. Returns the top 3 by default; set depth for a deeper local ranking list (up to 60), and device to check desktop vs mobile. maps returns GPS coordinates and place_ids instead of CIDs. Costs 2 credits.

  • local_services_adsLocal Services Ads (Google Guaranteed)read-only

    Use when checking Google Guaranteed/Screened ads for service categories (home services, legal, etc.). Returns business names, ratings, and reviews from the LSA carousel on the Google results page; badge, years_in_business, phone and services are filled only when Google shows them there. Retries on the mobile SERP when desktop shows no LSAs; lsa_block_found: false means Google showed none for the query. Costs 2 credits.

  • location_searchLocation Name Resolverread-only

    Use when resolving city names to the exact format needed by other tools. Call this when a tool returns no results for a location or when the format is ambiguous. Returns name, code, type (location taxonomy: City, County, State, DMA Region, ...), state, country, and parent_code, plus total_count and a truncated flag. IMPORTANT for multi-location ambiguity: many municipalities exist twice (e.g. "Hamilton" AND "Hamilton Township" in NJ — different entities with very different search volumes); pass a bare place name plus the state param to see all of them. Free (0 credits).

  • mapsGoogle Maps Local Resultsread-only

    Returns local map results with GPS coordinates — up to 60 listings with name, place_id, rating, reviews_count, address, phone, website, hours, lat/lng, and categories. Paid map pins are excluded from the ranking and listed in sponsored_results. If the first search returns nothing, the API automatically retries once with the city appended to the keyword (geo_fallback_applied: true, keyword_used shows the retried keyword). Unresolvable locations return a validation error instead of silently searching country-wide. local_pack returns just the top 3 with CIDs if that's all you need. Costs 2 credit…

  • multi_platform_reviewsMulti-Platform Reviewsread-only

    Compares ratings across Google + Trustpilot in one call. Returns per-platform rating, count, and trend, plus combined_rating and total_reviews. Covers both platforms; google_reviews covers Google alone. Costs 6 credits. May take 10-30 seconds.

  • organic_serpFull Google SERPread-only

    Use when you need the complete Google search results page in one call: organic listings, local pack, ads, People Also Ask, AI overview, LSA ads, and knowledge panel. Best for auditing overall search presence. Costs 2 credits.

  • page_auditOn-Page SEO Auditread-only

    Use when auditing a single page's on-page SEO. Returns seo_score, title, meta_description, h1, word_count, load_time_ms, body_text_unreadable, core_web_vitals (lab lcp in ms and cls; inp is null — it needs field data), issues with severity (seo_score is 100 minus 15 per critical, 5 per warning, 1 per info), schema_markup, and mobile_friendly. Costs 1 credit.

  • pingConnection Diagnosticsread-only

    Use when diagnosing connection or authentication issues. Tests API connectivity end-to-end by verifying the API key against the backend. Free (0 credits).

  • profile_healthBusiness Profile Health Checkread-only

    Audits what's missing or weak on a Google Business Profile. Returns completeness_score (0-100), missing_fields, incomplete_fields, and specific recommendations. For the raw profile fields without scoring, business_profile returns them directly. Costs 5 credits.

  • qaGoogle Business Q&Aread-only

    Use when checking what questions people ask on a GBP and whether they have answers. Returns questions with text, author, date, and answers with upvotes. Costs 5 credits.

  • related_keywordsRelated Keywordsread-only

    Use when expanding a keyword list with semantically related terms. Accepts up to 20 seed keywords. Returns related keywords with search_volume, cpc, competition, and competition_level, sorted by volume. A null search_volume means no data, not zero searches. Costs 72 credits.

  • reputation_auditReputation Auditread-only

    Use when analyzing cross-platform review reputation with sentiment. Returns reputation_score, per-platform ratings, sentiment themes, response_rate, and recommendations. Costs 30 credits. May take 10-30 seconds.

  • review_velocityReview Velocity & Trendsread-only

    Analyzes review growth rate, rating changes, reply rate, and sentiment themes over time. Returns reviews_per_month, rating_trend, reply_rate, sentiment_themes, and monthly breakdown. For raw review text without trend analysis, see google_reviews. For multi-location brands pass place_id (from business_profile) — name+location lookups can silently return empty. Costs 6 credits. May take 10-30 seconds.

  • search_volumeKeyword Search Volumeread-only

    Use when you have specific keywords and need monthly volume, CPC, and competition data. Accepts up to 1000 keywords. Returns search_volume, cpc, competition, competition_level, and monthly_searches trend. Volumes are locally scoped when the location is a city/state (volume_scope: "local", data_source: "google_ads"); falls back to country-level numbers when local data is unavailable (volume_scope: "country") — check location_used for the actual scope. If location_alternatives is present, the location has sibling entities (e.g. "Hamilton" vs "Hamilton Township", NJ) whose volumes can differ 3-5x…

Signals

Stars
3
Forks
0
Open issues
0
Weekly downloads
56
Last commit
Oct 15, 2026 (13 days ago)
Last release
Oct 15, 2026 (13 days ago)
Last package publish
Oct 15, 2026 (13 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.localseodata/mcp-server
Version
1.1.0
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

localseodata/mcp-server. Agent Mart. https://agentmart.dev/connectors/localseodata-mcp-server (last updated 2026-10-24)