Every tool your AI gets
AskYourStack is a remote MCP server at https://askyourstack.com/mcp (OAuth sign-in). These are all the tools it offers: 105, of which 64 only read. Your AI client sees only the tools your plan includes, and calls them by name. How to connect: Claude, ChatGPT, Cursor and Claude Code.
Only looks. Works on every server, also when changes are closed or the server is read-only.
Writes something (a note, a draft, a DNS record) and keeps the old value so it can be undone.
Can overwrite or remove data, depending on the call. On a server nothing changes unless the user opened a change window, and destructive steps wait for their approval. How safety works.
Start, memory and playbooks
Needs: Nothing: these work on every account.
overviewOverview of servers and problemsStart here. One call shows where everything stands: the plan, every server (online or not, root or limited access, safety mode, paused, its sites), the open problems and warnings AskYourStack's own monitoring found (disk, memory, failed services, SSL certificates, a site not...
list_serversList serversList the servers on this account: online or not, safety mode, paused or not.
get_playbookGet a playbookStep-by-step guide for a common job, written for you to follow. ); seo-dashboard (A site's search performance over the last 90 days as one visual page set in the Inter typeface. )
save_noteSave a noteRemember something for future chats about a server (or the whole account): what is special about it, how it is set up, what must not be touched, a decision the user made.
forget_noteDelete a noteDelete a saved note that is wrong or no longer true (its id is in overview).
log_workLog finished workWrite down finished work, when a task that changed something is done: two or three plain lines (up to 800 characters) a non-technical owner understands. What you did, what changed, what is left for them.
Your server
Needs: The open-source agent installed on a Linux server. Changes need a change window the user opened.
server_factsServer factsDistro, kernel, CPU, memory, disk, package manager, running services, listening ports and any Magento or WordPress installs found. Call this first on a server.
runRun a commandRun a shell command as root (bash -c). No terminal, no stdin. Returns exit code, stdout and stderr (long output keeps the first 16 KB and last 48 KB). Destructive commands need the user's approval.
start_jobStart a background jobStart a long command (installs, composer, compiles, imports, backups) in the background as root, in its own systemd unit, so it keeps running after this call returns and through agent updates.
job_outputRead a job's outputStatus (running, finished, ended), exit code and output of a background job. Without offset you get the last 48 KB; pass next_offset from the previous answer to get only what is new.
stop_jobStop a background jobStop a running background job and everything it started.
list_jobsList background jobsThe 20 most recent background jobs on the server with their status.
health_reportServer health reportHealth of the server now: disk and inode use per filesystem, free memory, swap, load per CPU, failed services, SSL certificates and days left, pending security updates, whether a reboot is needed, backups (how old the newest is, the rhythm of the last runs, backup programs that...
logsRead logsRead a log by name for a time window, with repeated messages counted once: how many different errors there are, how often each happened, when first and last, a sample of each (with the top of its stack trace) and the latest lines.
read_fileRead a fileRead a file (up to 1 MB). Binary files come back base64.
write_fileWrite a fileCreate or replace a file. Keeps owner and mode of an existing file and saves its previous version under /var/lib/askyourstack/backups. Parent folders are created.
Safety, approvals and undo
Needs: A connected server.
snapshotTake a snapshotSave folders (and optionally MySQL/MariaDB databases, dumped with mysqldump) on the server so they can be restored with rollback. Refuses when it would use more than half the free disk.
list_snapshotsList snapshotsSnapshots on the server, newest first, with what each holds.
rollbackRoll back to a snapshotWrite a snapshot's files back (all of it, or only some paths). Saves the current state first, so a rollback can itself be undone. Files created after the snapshot are left alone; database dumps are not loaded (use run).
propose_planAsk approval for a planWhen a job has several risky steps (deleting folders, dropping tables, changing SSH or closing access in the firewall, a reboot), list the exact calls you mean to make and ask for the user's approval once, instead of stopping at each one.
wait_for_approvalWait for the user to approveWait for the user to decide, so they do not have to come back to the chat and tell you. Right after you give the user an approval link (approval_id), a plan link (plan_id), the link to open changes on a server (server) or a setup link while nothing is connected yet (setup)...
Sites on your server
Needs: A connected server with a site on it (Magento, WordPress, WooCommerce, PrestaShop, Shopware, Drupal, Joomla, OpenCart, Laravel, Ghost).
list_sitesList sitesThe sites on the server: Magento 2, OpenMage (Magento 1), WordPress and WooCommerce, PrestaShop, Shopware 6, Drupal, Joomla, OpenCart, Laravel and Ghost, wherever the hosting panel keeps them (found from the web server's own configuration too) and inside Docker containers when...
db_queryQuery a site's databaseRun one SQL statement on a site's database, connecting with the site's own credentials (you never need the password).
magentoRun bin/magentoRun bin/magento as the site's owner in its root, like args ["cache:flush"] or ["indexer:reindex", "catalogsearch_fulltext"].
wpRun wp-cliRun wp-cli as the site's owner with --path set, like args ["plugin", "list"]. Listing and checksum commands run straight away; deleting plugins or users, db reset/import, search-replace without --dry-run and eval need approval.
site_consoleRun a site's consolephp for Joomla, ghost (ghost-cli) for Ghost (list_sites shows each site's console; Magento 2 has the magento tool and WordPress the wp tool). Pass the command and its options as args, like ["cache:clear"] or ["plugin:list", "--json"].
malware_scanScan a site for malwareQuick malware check of a site (most thorough for Magento and WordPress; for the other kinds list_sites shows it checks the files, upload folders, cron and processes, not the database): backdoor patterns in PHP, PHP in upload folders, disguised and hidden PHP, recently changed...
seo_fields_listList SEO titles, descriptions and alt textsList the SEO titles, meta descriptions or image alt texts of a WordPress site (Yoast SEO, Rank Math, SEOPress or The SEO Framework) or a Magento 2 shop (products, categories, CMS pages and product images at the default store scope), with their current values.
seo_fields_applyChange SEO titles, descriptions and alt textsSet SEO titles, meta descriptions or image alt texts on a WordPress site or a Magento 2 shop, up to 30 fields a call, by the ids seo_fields_list gave.
seo_fields_undoUndo a batch of SEO field changesPut back the values a seo_fields_apply batch replaced (kept 90 days). batch is the id from seo_fields_apply or seo_fields_history.
seo_fields_historySEO field change historyThe batches of SEO title, description and alt text changes made on a site in the last 90 days, with what each changed and whether it was undone. Changes nothing.
redirects_findFind gone pages that need a redirectFind the paths of a site on the user's server that answer 404: from the crawler hits in its access logs (the last hours, default 168) and, when Search Console is connected, pages that had clicks in the last 90 days and are gone now.
redirects_listList a site's redirectsThe custom redirects a site holds: Magento's url_rewrite table, or WordPress with the Redirection or Rank Math plugin. Changes nothing.
redirects_applyWrite redirectsWrite redirects (from a path, to a path or full address, code 301 or 302) into the site's redirect store: Magento url_rewrite, or the WordPress Redirection or Rank Math plugin.
redirects_undoRemove a batch of redirectsRemove the redirects one redirects_apply batch wrote. batch is the id from redirects_apply or redirects_history.
redirects_historyRedirect batches writtenThe batches of redirects written on a site in the last 90 days, each with its redirects and whether it was undone. Changes nothing.
db_dumpDump a site's databasegz file on its server, with the site's own credentials (they never reach the chat). Runs in the background: returns job_id and the file path; follow it with job_output.
convert_imagesMake WebP or AVIF copies of a site's imageswebp, with the encoder the server has (cwebp, avifenc, ImageMagick or vips; the answer names it, or says what to install).
list_dumpsList the dumps kept on a server). Each with its size and age. Use it to find what db_restore can load back.
db_restoreLoad a dump into a site's databasegz dump into a site's database, with the site's own credentials: the undo for a bad change, or a restore from a backup. gz file on the server (a backup the user keeps). ), so the restore itself can be undone with the same tool.
transferCopy a folder between serversCopy a folder from one of the user's servers to another, directly between them, for migrations (rsync over SSH with a temporary key that only allows reading that folder; nothing goes through AskYourStack).
transfer_closeClose copy linksClose the copy links between servers (removes the temporary keys). Call it when a migration is done. Without from/to, closes every open link.
Google Search Console
Needs: A Google account with access to the property, connected read-only on the SEO page.
gsc_propertiesSearch Console propertiesThe Google Search Console properties the user picked for AskYourStack, with the access level, and which Google account is connected. Call this first for SEO work that uses Search Console.
gsc_performance_overviewSearch performance overviewClicks, impressions, CTR and position against the period before, with the biggest winning and losing queries and pages
gsc_opportunitiesSEO opportunities, rankedWhat to work on first, ranked by clicks at stake: striking-distance queries, page-one pages with a low CTR, decaying pages and competing pages
gsc_search_analyticsSearch Console search analyticsPerformance by query, page, country, device or date, with filters and two-period comparisons
gsc_inspect_urlInspect URLs in Search ConsoleGoogle's own view of up to 20 URLs: indexed or not and why, last crawl, the canonical Google picked
gsc_sitemapsSearch Console sitemapsSubmitted sitemaps with errors, warnings and when Google last read them
gsc_cannibalizationKeyword cannibalizationQueries where two or more of your pages split the impressions and compete with each other
google_updatesGoogle ranking updatesGoogle's core, spam and helpful content updates, to line up with traffic changes
Google Merchant Center
Needs: A Google account with access to the Merchant Center account, connected on the SEO page with Merchant Center ticked.
merchant_accountsMerchant Center accountsThe Google Merchant Center accounts the user's connected Google account can see (sub-accounts of a multi-client account included), with their ids. Call this first for Shopping and free listing questions.
merchant_issuesWhy products are not showing on Google ShoppingWhy products are not showing in Google Shopping ads and free listings: per destination and country the number of products active, pending, disapproved and expiring, the account's own issues (suspensions, missing settings, website claims), and the product issues grouped by kind...
merchant_productsMerchant Center products and their issuesProducts in Merchant Center with their issues: offer id, title, link, and each issue with severity, the attribute concerned, where it applies and Google's explanation.
Google Analytics 4
Needs: A Google account with access to the GA4 property, connected read-only.
ga4_propertiesAnalytics propertiesThe Google Analytics 4 properties the user picked for AskYourStack, each with a health check: time zone, currency, data retention, key events (conversions) set up, and whether data is still coming in (sessions yesterday and in the last 7 days).
ga4_overviewAnalytics overviewSessions, users, engagement, conversions and revenue against the period before, by channel, with organic search's share
ga4_landing_pagesAnalytics landing pagesLanding pages with engagement, conversions and revenue, for organic search or any channel
ga4_ai_trafficVisits from AI assistantsVisits from ChatGPT, Perplexity, Gemini, Claude, Copilot and other AI assistants, and the pages they land on
ga4_reportAnalytics reportAny GA4 report: pick dimensions, metrics, filters and a comparison period
ga4_realtimeAnalytics right nowWho is on the site right now, to check a launch, a campaign or that tracking works
Bing Webmaster Tools and IndexNow
Needs: A Bing Webmaster Tools account connected on the SEO page (IndexNow needs only a key file on the site).
indexnow_submitTell Bing about changed pages (IndexNow)Tells Bing, Yandex and the other IndexNow search engines which pages are new, changed or gone, so they crawl them now
bing_sitesBing Webmaster Tools sitesThe sites in the user's Bing Webmaster Tools account and which of them the AI may read (picked on the SEO page).
bing_performanceBing search performanceBing's clicks and impressions by day, the last 28 days against the 28 before, top queries and pages
bing_crawlHow Bing crawls a siteWhat Bingbot crawled and indexed, its errors, and the crawl issues per address
bing_keywordsKeyword research from BingBing's own search counts for a keyword, its monthly history and related keywords, free
bing_submitSubmit pages or a sitemap to BingSubmit pages or a sitemap to Bing, with the quota left
bing_sitemapsSitemaps at BingThe sitemaps Bing knows for a site, with status, when Bing last read them, and how many addresses they hold. To submit one, use bing_submit with sitemap.
bing_backlinksInbound links Bing knowsInbound links Bing knows for your pages, with anchor text (Search Console has no links API)
Keywords and live Google results
Needs: Nothing to connect: a monthly allowance comes with the plan.
keyword_volumeGoogle search volume for keywordsGoogle's monthly search volume, 12-month history, CPC and competition for up to 200 keywords, in any country and language
keyword_ideasKeyword ideas with volume and difficultyKeyword suggestions around a seed, with volume, keyword difficulty and search intent
serp_checkThe live Google results for a keywordThe live Google results for a keyword, desktop or mobile, with your site's positions and the page features (AI overview, snippets, people also ask)
domain_keywordsWhat a domain ranks forWhat any domain ranks for, with position, volume, estimated visits and page, and the domains competing with it
Pages, crawling and technical SEO
Needs: Nothing to connect for public pages; crawl_report and site_audit read from a connected server.
crawl_reportWhat crawlers fetchedWhat Googlebot, Bingbot, AI crawlers and SEO bots really fetched, from your access logs: errors, crawl waste, fake Googlebots
validate_schemaValidate structured dataStructured data checked against schema.org and Google's rich-result requirements
core_web_vitalsCore Web VitalsReal-user LCP, INP and CLS from the Chrome UX Report, 6 months of history, and a Lighthouse test with the causes
page_auditAudit pagesStatus, redirect chains, titles, descriptions, canonicals, hreflang, headings, robots and issues for up to 10 URLs
page_linksLinks on a pageEvery link on a page with anchor text and rel, and broken or redirecting internal links
page_contentRead a page's contentA page's main content as clean text, to review, compare with a competitor or rewrite
robots_checkCheck robots.txtrobots.txt tested the way Google reads it, for Googlebot, Bingbot and AI crawlers
llms_txtBuild an llms.txtAn llms.txt for your site, the file AI assistants read: name, summary and key pages from your sitemap with their own titles and descriptions
sitemap_checkCheck sitemapsSitemaps audited: limits, lastmod, and a sample of URLs that should answer 200 and be their own canonical
site_auditCrawl and audit a whole siteA crawl of your whole site from your own server (up to 5,000 pages, no CDN in the way): broken links, redirect chains, repeated titles, thin and duplicate pages, sitemap problems, read by issue with site_audit_report
site_audit_reportRead a site auditRead a site audit that site_audit made. Without more arguments: the summary of the latest run (pages by status and by clicks from the start page, every issue with its count, why it matters and three examples, and what changed since the run before).
seo_historySEO history and alertsDaily Search Console, Analytics and Core Web Vitals figures kept for as long as you like, and alerts when clicks fall, a top page leaves the index or a vital turns poor
disavow_fileWrite a disavow file for GoogleWrites the disavow file for Google from your Ahrefs, Semrush, SE Ranking or Bing link data, merged with the one Google already has, ready to upload
Sites without a server
Needs: A WordPress site connected with an application password, or a WhizzyCommerce shop connected by sign-in.
connected_sitesSites connected without a serverSites the user connected without a server: a WordPress site through its REST API (any host, no SSH) or a WhizzyCommerce shop through the shop's own connector.
content_listList a connected site's contentList content of a connected site, newest change first. WordPress: posts, pages, media, categories, tags and the site's own content types (products on a WooCommerce shop, for example).
content_getRead one item of a connected siteRead one item of a connected site in full, as its editor would see it: title, content (the stored source), status, address and what else it has.
content_saveCreate or change content on a connected siteCreate or change content on a connected site. Without id it creates (as a draft unless status says otherwise); with id it changes only the fields you pass.
content_uploadUpload an image to a connected siteAdd an image to a connected site's media library (WordPress) or files (Shopify) from a public address (jpeg, png, gif, webp or avif, up to 15 MB), with its alt text and title.
content_trashMove content to the site's trashMove a post, page or other item of a WordPress site to its trash (WordPress keeps it 30 days; content_undo brings it back), or remove a URL redirect of a Shopify store (content_undo makes it again).
content_undoUndo a content changeUndo a change made through content_save, content_upload or content_trash on a connected site: an edit gets its old values back, a created item goes to the trash, a trashed one comes back.
whizzy_toolsWhat a WhizzyCommerce shop offersFor a connected WhizzyCommerce shop (see connected_sites): what the shop lets an AI do right now, as its own list of capabilities with their arguments: orders and shipping, products, categories and imports, prices, sales, coupons and gift cards, customers, languages and...
whizzy_callRun a WhizzyCommerce shop capabilityRun one capability of a connected WhizzyCommerce shop, by the name whizzy_tools gave, with its arguments. Reads answer straight away.
Cloudflare
Needs: A Cloudflare API token for the zone, pasted on the Sites page.
cf_zonesCloudflare zonesThe Cloudflare zones (domains) the user connected, with status, plan, name servers and what the AI may do there. Start here before any other cf_ tool. Cloudflare is connected on the Sites & Apps page with an API token; no server is needed.
cf_dns_listList Cloudflare DNS recordsList the DNS records of a Cloudflare zone, filtered by type, name or search (part of a name or content), each with its id. Changes nothing.
cf_dns_addAdd a Cloudflare DNS recordAdd a DNS record to a Cloudflare zone: a new subdomain, a mail record or a verification text. proxied defaults to false. It can be removed again with cf_undo.
cf_dns_changeChange a Cloudflare DNS recordChange one DNS record of a Cloudflare zone, by record_id from cf_dns_list (or name plus type when they match one record): its content, TTL, proxy, priority or name.
cf_dns_removeRemove a Cloudflare DNS recordRemove one DNS record of a Cloudflare zone, by record_id from cf_dns_list (or name plus type when they match one record). Records that were there before AskYourStack need the connection's "change anything" mode. cf_undo creates it again.
cf_purge_cachePurge the Cloudflare cacheClear Cloudflare's cache of a zone: everything, or only the given addresses (up to 30). Use it after deploying changes a visitor still sees old, or a wrong page cached. Nothing to undo; the cache fills again from the origin.
cf_firewall_listList Cloudflare firewall rulesList the custom firewall rules and rate limits of a Cloudflare zone, each with its id, action and expression. Changes nothing.
cf_firewall_addAdd a Cloudflare firewall ruleAdd one firewall rule or rate limit to a Cloudflare zone. What it matches comes from ip or ips (addresses or CIDR), asn, country or countries, path (starts with), user_agent (contains), host and not_verified_bot, combined with and; or a raw expression in Cloudflare's rule language.
cf_firewall_removeRemove a Cloudflare firewall ruleRemove one custom firewall rule or rate limit from a Cloudflare zone, by rule_id from cf_firewall_list. cf_undo adds it again.
cf_settingsCloudflare zone settingsRead or change a Cloudflare zone's settings: security_level (essentially_off, low, medium, high, under_attack) or under_attack true/false as a shortcut, development_mode (skip the cache for 3 hours), browser_check, automatic_https_rewrites; and in "change anything" mode ssl...
cf_analyticsTraffic through CloudflareTraffic through Cloudflare for a zone (proxied traffic only): requests, cached share, visitors, threats, bandwidth and status codes per day for up to 30 days, top countries, requests per hour for the last 24 hours, and a sample of the firewall events of the last 24 hours (what...
cf_undoUndo a Cloudflare changeUndo a Cloudflare change made through the cf_dns_, cf_firewall_ or cf_settings tools: a record or rule that was added is removed, a changed one gets its old values, a removed one is made again.
Also served: playbooks (step-by-step guides the AI follows for server setup, Magento, WordPress, hardening, backups, migrations, malware cleanup, SEO and more) as MCP prompts and through get_playbook. They ship with the server; nothing is fetched from elsewhere. The machine-readable list is at https://askyourstack.com/mcp/catalog; what changed lately is in the changelog.