Skip to main content
Glama

Shopify SEO Expert: Digital Darts

Server Details

All-in-one Shopify SEO. Rank on Google and in AI search. Find what's broken and fix it in chat.

Ownership verified
Status
Healthy
Uptime
10.6% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

Score is being calculated.

Available Tools

26 tools
create_redirectCreate redirect
Idempotent
Inspect

Create a Shopify URL redirect. Preferred: pass brokenLinkId (from list_broken_links, internal links only) plus target, which also marks the broken link fixed. Or pass path + target directly. Targets must be an existing page on the store (or '/'); redirects into another 404 are refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoBroken path, e.g. /products/old-handle (when no brokenLinkId)
targetYesWhere to send visitors, e.g. /products/new-handle or /
brokenLinkIdNoFix this broken link (preferred)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathYes
targetYesThe target that was requested
createdYesFalse when the path already had a redirect and nothing changed
messageYesWhat to tell the merchant
existingTargetNoWhere the path already redirected; present only when created is false
existingTargetUnknownNoA redirect existed but Shopify didn't reveal its target
flatten_redirect_chainFlatten a redirect chain
DestructiveIdempotent
Inspect

Point a chained redirect straight at its final destination, turning A → B → C into A → C. Takes a chainId from list_redirect_chains. A loop is refused (there's nothing sane to point at), as is a final destination that would itself 404.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesFrom list_redirect_chains

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathYes
targetYesThe final destination it now points at
messageYes
get_imageView an image
Read-onlyIdempotent
Inspect

Fetch ONE image (by image id from get_resource) so you can actually see it. Call this before writing alt text, because alt text guessed from the product title describes the product rather than the picture. Returns the image itself, downscaled.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageIdYesImage id from get_resource. A Shopify media gid or the image URL also resolves.
get_indexing_statusGet indexing status
Read-onlyIdempotent
Inspect

Which of the store's pages are appearing in Google and which aren't, from Search Console: counts, the pages themselves, and the trend. 'Not appearing' means Google reported no impressions for that page over the window. That is a strong signal but not proof the page is unindexed, so use inspect_url for the definitive per-page check. Cached for a day; pass refresh to recompute.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPages to list in each group, 1 to 50. The counts and trend cover every page regardless.
refreshNoRecompute instead of reading cache

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fixUrlNo
windowNo
historyNo
messageNoPresent when connected is false
summaryNo
appearingNo
checkedAtNo
connectedYes
connectUrlNoPresent when connected is false
notAppearingNo
get_job_statusGet job status
Read-onlyIdempotent
Inspect

Progress of the store's background work: SEO audits, link scans, and bulk jobs (meta, alt text, link fixes, link titles). Pass a jobId from run_audit / run_link_scan / apply_link_titles, or a kind to get its latest run. Call this instead of guessing whether queued work has finished. An audit appears here once a worker picks it up, which is normally within seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoReturn the latest run of this kind instead of one job. Use when you don't have a jobId. 'bulk' matches the most recent bulk job of ANY kind, so it can return image compression or a link job rather than the meta or alt run you meant.
jobIdNoFrom the tool that queued the work

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobYes
recentNo
tasksUrlNo
get_page_seoLook up page SEO
Read-onlyIdempotent
Inspect

Look up a storefront URL (product/collection/page/blog/article) and return the matched resource's SEO fields plus its open audit issues and store-level issues. Use the returned resource id with update_meta_tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull storefront URL, e.g. https://example.com/products/foo

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
matchedYesWhether the URL mapped to a synced resource
resourceYes
lastAuditAtNo
storeIssuesYesStore-level issues (no single page)
get_resourceGet resource SEO detail
Read-onlyIdempotent
Inspect

Full SEO detail for one resource by id (from list_resources / get_page_seo): SEO title/description, meta score, and every image with its alt text (image ids feed update_image_alt).

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceIdYesId from list_resources or get_page_seo. A Shopify gid, numeric id or handle also resolves.

Output Schema

ParametersJSON Schema
NameRequiredDescription
imagesYes
editUrlYesAdmin deep link to the meta-tags editor
resourceYes
get_search_performanceGet Google Search performance
Read-onlyIdempotent
Inspect

Google Search Console data for the connected property: 'overview' (daily clicks/impressions/CTR/position totals vs the previous period), 'queries' (top search queries), or 'pages' (top pages). Data lags ~3 days by Google's design. Requires the merchant to have connected Google in the app.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the reporting window in days. Anything other than 7, 28 or 90 falls back to 28. The window ends about 3 days ago, which is Google's own reporting lag.
limitNoRows to return for the 'queries' and 'pages' panels, 1 to 50. Ignored for 'overview'.
panelNoWhich view: 'overview' for whole-window totals compared with the previous period (no per-day series), 'queries' for the top search terms, 'pages' for the top URLs.overview

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysNo
noteNo
rowsNoqueries/pages panels
panelNo
totalsNooverview panel: clicks/impressions/ctr/position
windowNoThe date range the data covers
messageNoPresent when connected is false
connectedYes
connectUrlNoPresent when connected is false
get_seo_summaryGet SEO summary
Read-onlyIdempotent
Inspect

Overall SEO health of the store: health score (0-100), open audit issue counts by severity (critical/warning/info), and last audit time. Start here to understand where the store stands.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
openCountsYes
healthScoreYes0-100; null before the first audit
lastAuditAtYes
healthScoreAtNo
inspect_urlInspect a URL in Google
Read-onlyIdempotent
Inspect

Definitive index check for ONE page, straight from Google's URL Inspection API: indexed or not, coverage state, verdict, last crawl, and whether Google chose a different canonical. Slower than get_indexing_status because it makes a live call per URL, so use it to confirm a specific page rather than to sweep the store. Needs owner-level access to the Search Console property; anything less comes back unavailable with an explanation.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull storefront URL on this store

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
demoNoSynthesized demo data, not a live Google answer
indexedNo
messageNo
verdictNo
availableNoFalse when Google refused the inspection
connectedYes
connectUrlNo
coverageStateNo
lastCrawlTimeNo
canonicalMismatchNo
list_redirect_chainsList redirect chains
Read-onlyIdempotent
Inspect

Redirects that point at another redirect (A → B → C), which wastes crawl budget and slows visitors down. Each row carries the path, the hops, the final destination, whether it loops, and where the store's own content links into it. Fix one with flatten_redirect_chain. Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
limitNoChains per page, 1 to 50. Larger values are clamped, not rejected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
totalYes
chainsYes
fixUrlYes
pageCountYes
list_resourcesList store content
Read-onlyIdempotent
Inspect

List the store's synced content (products, collections, pages, blogs, articles) with SEO fields and meta score (0-100). Filters combine, so several can be set at once. Draft and archived items are left out unless includeUnpublished is true, because they don't render on the storefront and SEO work on them is wasted. Sorted worst score first. Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
typeNoOnly this content type. Omit for every type.
limitNoItems per page, 1 to 50. Larger values are clamped, not rejected.
searchNoCase-insensitive match on the item's title.
maxScoreNoOnly items scoring at or below this meta score (0-100). 50 is a reasonable 'needs work' cut-off.
missingAltNoSet true for only the items carrying at least one image with no alt text. false is ignored, not inverted.
missingMetaTitleNoSet true for only the items with no SEO title. false is ignored, not inverted.
includeUnpublishedNoInclude draft and archived items (they don't render on the storefront)
missingMetaDescriptionNoSet true for only the items with no meta description. false is ignored, not inverted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
totalYes
pageCountYes
resourcesYes
list_seo_issuesList SEO issues
Read-onlyIdempotent
Inspect

List open SEO audit issues, optionally filtered by severity (critical|warning|info) or ruleId. Each issue includes a fixUrl deep link into the SEO Expert app where the merchant can fix it. Paginated (page, limit ≤ 50).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
limitNoIssues per page, 1 to 50. Larger values are clamped, not rejected.
ruleIdNoFilter to one audit rule id
severityNoOnly issues at this severity. Omit for all three, which returns critical first.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
totalYes
issuesYes
pageCountYes
run_auditRun SEO auditInspect

Queue a fresh SEO audit of the whole store (same limit as the in-app button: one per day). The audit runs in the background, so call get_seo_summary a few minutes later for the updated score.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
messageYes
unhide_resourceUnhide from search engines
DestructiveIdempotent
Inspect

Remove Shopify's 'hidden from search engines' flag (the seo.hidden metafield) from one page, so it can be indexed and appears in the sitemap again. list_resources reports seoHidden, and a page that should rank but is hidden is one of the highest-value fixes there is. Only do this when the merchant confirms the page SHOULD be public.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceIdYesId of the page to unhide, from list_resources (check its seoHidden field) or get_page_seo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
messageYes
seoHiddenYes
resourceIdYes
update_image_altUpdate image alt text
DestructiveIdempotent
Inspect

Set the alt text for ONE image (by image id from get_resource). Writes to Shopify immediately. Good alt text describes the image for screen readers in ≤ 125 characters, with no 'image of' and no keyword stuffing. Empty string clears.

ParametersJSON Schema
NameRequiredDescriptionDefault
altYesWhat the image actually shows, in ≤ 125 characters. Empty string clears the alt text.
imageIdYesImage id from get_resource. Call get_image first to see what it shows.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
altTextNo
missingAltCountNoRemaining images without alt on the resource
update_image_alt_bulkUpdate alt text in bulk
DestructiveIdempotent
Inspect

Set alt text for up to 50 images in one call (image ids from get_resource). Writes to Shopify immediately; items succeed or fail independently and failures are reported per id. View every image with get_image BEFORE writing its alt, because alt text guessed from a product title describes the product rather than the picture. Same rules as update_image_alt: describe the image in ≤ 125 characters, no "image of", no keyword stuffing, empty string clears.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesOne entry per image, up to 50. Entries are applied independently, so one bad id does not void the rest.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when every item succeeded
failedYes
resultsYes
updatedYes
missingAltRemainingYesImages still missing alt text across the store
update_meta_tagsUpdate meta tags
DestructiveIdempotent
Inspect

Set the SEO title and/or meta description for ONE resource (by resourceId from list_resources / get_page_seo). Writes to Shopify immediately. Guidance: titles ≤ 60 characters, descriptions 120-160 characters, front-load the keyword, no keyword stuffing. Pass an empty string to clear a field. Fields the merchant hand-edited in the app are respected as locked against templates, and this call marks edited fields as manual.

ParametersJSON Schema
NameRequiredDescriptionDefault
seoTitleNoOmit to leave unchanged; empty string clears
resourceIdYesId of the item to update, from list_resources or get_page_seo.
seoDescriptionNoOmit to leave unchanged; empty string clears

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
seoTitleNo
metaScoreNo
seoDescriptionNo
update_meta_tags_bulkUpdate meta tags in bulk
DestructiveIdempotent
Inspect

Set SEO titles and/or meta descriptions for up to 50 resources in one call (resource ids from list_resources). Writes to Shopify immediately; items succeed or fail independently and failures are reported per id. Same rules as update_meta_tags: titles ≤ 60 characters, descriptions 120-160 characters, front-load the keyword, no keyword stuffing, empty string clears. Write UNIQUE copy per page, because reusing one title across items defeats the point.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesOne entry per item to update, up to 50. Entries are applied independently, so one bad id does not void the rest.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when every item succeeded
failedYes
resultsYes
updatedYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 26 tool updates
    • First observedapply_link_titles
    • First observedcreate_redirect
    • First observedflatten_redirect_chain
    • First observedget_backlinks
    • First observedget_image
    • First observedget_indexing_status
    • First observedget_job_status
    • First observedget_page_seo
    • First observedget_resource
    • First observedget_search_performance
    • First observedget_seo_summary
    • First observedinspect_url
    • First observedlist_broken_links
    • First observedlist_redirect_chains
    • First observedlist_resources
    • First observedlist_seo_issues
    • First observedpreview_link_replacement
    • First observedpreview_link_titles
    • First observedreplace_link
    • First observedrun_audit
    • First observedrun_link_scan
    • First observedunhide_resource
    • First observedupdate_image_alt
    • First observedupdate_image_alt_bulk
    • First observedupdate_meta_tags
    • First observedupdate_meta_tags_bulk

Publisher details

Operator
Digital Darts · Publisher source
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Shopify store with the SEO Expert: Digital Darts app installed on the Pro plan. One OAuth grant per store; no regional limits. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Google Search Console and Google Analytics 4 through natural language, with tools for SEO analysis like anomaly detection, cannibalization detection, and opportunity scoring.
    13 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    AI search intelligence + Ahrefs-class SEO suite as 59 MCP tools. Track your brand across ChatGPT, Google AI Overview, Gemini, Claude, and Perplexity with persona-anchored Brand Radar dispatches.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources