Spook SEO
by tryspook.com · remote · no sign-in to list tools · v1.0.0 · published by com.tryspook
Free SEO tools + the Spook SEO autopilot: analyze domains, generate and publish SEO articles.
59 tools: 1 do something that can't be undone, 47 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things47Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http spook https://www.tryspook.com/api/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "meta-tag-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "hreflang-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "canonical-tag-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "llms-txt-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "ai-prompt-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "ad-copy-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "ad-copy-generator" says "copy": a word for a change.
Show 2 more findingsShow fewer
The server marks "social-post-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "social-post-generator" says "post": a word for a change.
The description mentions "credential".
What this check looks forMatched text
description: "...et publishIntegration to 'nextjs' for a credential-free Spook-hosted blog (returns a blog..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
59 tools
Can't be undone 1Claude Code: ask
publish_articlePublish a generated article to the site's connected CMS.No findings
Why it is in this group
- The name "publish_article" says "publish": a word for a change that another call does not undo.
Description, as the server wrote it Publish a generated article to the site's connected CMS. Enforces Spook's SEO-score floor - a draft below it is refused (returns published:false with a reason). (requires an agent API key)
Annotations the server declares
- title: Publish Article
- readOnlyHint: false
- destructiveHint: false
Changes things 47Claude Code: ask
ad-copy-generatorAd Copy Generator: Generate ad headlines and descriptions.1 finding
Why it is in this group
- The name "ad-copy-generator" says "copy": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "ad-copy-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "ad-copy-generator" says "copy": a word for a change.
Description, as the server wrote it Ad Copy Generator: Generate ad headlines and descriptions. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Ad Copy Generator
- readOnlyHint: true
aeo-checkerScore content (0-100) for how easily AI answer engines (ChatGPT, Perplexity, AI Overviews) can quote it, with specific fixes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score content (0-100) for how easily AI answer engines (ChatGPT, Perplexity, AI Overviews) can quote it, with specific fixes.
Annotations the server declares
- title: AEO Content Checker (Answer Engine Optimization)
- readOnlyHint: true
ai-crawler-checkerCheck a robots.txt to see which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, ...) it currently allows or blocks.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check a robots.txt to see which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, ...) it currently allows or blocks.
Annotations the server declares
- title: AI Crawler Access Checker
- readOnlyHint: true
ai-prompt-generatorGenerate prompts to test whether ChatGPT/Perplexity/Gemini/Claude recommend a brand, and where it's invisible.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "ai-prompt-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate prompts to test whether ChatGPT/Perplexity/Gemini/Claude recommend a brand, and where it's invisible.
Annotations the server declares
- title: AI Brand Visibility Prompt Generator
- readOnlyHint: true
article-rewriterAI Article Rewriter: Rephrase text to be clearer, unique, and engaging.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it AI Article Rewriter: Rephrase text to be clearer, unique, and engaging. (free, AI-generated, rate-limited).
Annotations the server declares
- title: AI Article Rewriter
- readOnlyHint: true
article-summarizerAI Article Summarizer: Condense an article into a TL;DR, key points, and summary.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it AI Article Summarizer: Condense an article into a TL;DR, key points, and summary. (free, AI-generated, rate-limited).
Annotations the server declares
- title: AI Article Summarizer
- readOnlyHint: true
blog-keyword-generatorBlog Keyword Generator: Generate SEO keyword ideas for a topic, with search intent and difficulty.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Blog Keyword Generator: Generate SEO keyword ideas for a topic, with search intent and difficulty. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Blog Keyword Generator
- readOnlyHint: true
blog-outline-generatorBlog Outline Generator: Produce a structured, SEO-friendly blog post outline.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Blog Outline Generator: Produce a structured, SEO-friendly blog post outline. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Blog Outline Generator
- readOnlyHint: true
business-name-generatorBusiness Name Generator: Generate brandable business name ideas.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Business Name Generator: Generate brandable business name ideas. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Business Name Generator
- readOnlyHint: true
canonical-tag-generatorGenerate a rel=canonical link tag for a URL.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "canonical-tag-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a rel=canonical link tag for a URL.
Annotations the server declares
- title: Canonical Tag Generator
- readOnlyHint: true
content-brief-generatorContent Brief Generator: Create a detailed SEO content brief for a target keyword.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Content Brief Generator: Create a detailed SEO content brief for a target keyword. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Content Brief Generator
- readOnlyHint: true
content-coverage-checkerContent Coverage Checker: List the terms and entities an article targeting a keyword is expected to cover.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Content Coverage Checker: List the terms and entities an article targeting a keyword is expected to cover. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Content Coverage Checker
- readOnlyHint: true
content-idea-generatorContent Idea Generator: Generate content ideas with formats and angles for a niche.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Content Idea Generator: Generate content ideas with formats and angles for a niche. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Content Idea Generator
- readOnlyHint: true
conversion-rate-calculatorCalculate Conversion rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Conversion rate.
Annotations the server declares
- title: Conversion Rate Calculator
- readOnlyHint: true
cpc-calculatorCalculate Cost per click (CPC).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Cost per click (CPC).
Annotations the server declares
- title: CPC Calculator
- readOnlyHint: true
cpm-calculatorCalculate Cost per 1,000 impressions (CPM).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Cost per 1,000 impressions (CPM).
Annotations the server declares
- title: CPM Calculator
- readOnlyHint: true
create_checkoutGet a Stripe Checkout URL to add the first paid site to the account.No findings
Why it is in this group
- The name "create_checkout" says "create": a word for a change.
Description, as the server wrote it Get a Stripe Checkout URL to add the first paid site to the account. Return the URL to the user to approve payment. Needed before create_site if the account has no available slot. (requires an agent API key)
Annotations the server declares
- title: Create Checkout
- readOnlyHint: false
- destructiveHint: false
create_siteAdd a new site to the account.No findings
Why it is in this group
- The name "create_site" says "create": a word for a change.
Description, as the server wrote it Add a new site to the account. Language/market is auto-detected from the homepage. Requires an available paid site slot (use create_checkout first if none). Returns the new siteId. (requires an agent API key)
Annotations the server declares
- title: Create Site
- readOnlyHint: false
- destructiveHint: false
cta-generatorCTA Generator: Write effective call-to-action phrases.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it CTA Generator: Write effective call-to-action phrases. (free, AI-generated, rate-limited).
Annotations the server declares
- title: CTA Generator
- readOnlyHint: true
ctr-calculatorCalculate Click-through rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate Click-through rate.
Annotations the server declares
- title: CTR Calculator
- readOnlyHint: true
faq-generatorFAQ Generator: Generate a set of frequently asked questions and answers for a topic.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it FAQ Generator: Generate a set of frequently asked questions and answers for a topic. (free, AI-generated, rate-limited).
Annotations the server declares
- title: FAQ Generator
- readOnlyHint: true
generate_articleGenerate a new SEO article draft for a site targeting a search query.No findings
Why it is in this group
- The name "generate_article" says "generate": a word for a change.
Description, as the server wrote it Generate a new SEO article draft for a site targeting a search query. Returns an articleId immediately; generation runs in the background - poll get_article/list_articles, or pass callbackUrl to be notified. Idempotent per query (a repeat returns the existing article). Requires an active subscription. (requires an agent API key)
Annotations the server declares
- title: Generate Article
- readOnlyHint: false
- destructiveHint: false
grammar-checkerAI Grammar Checker: Fix grammar, spelling, and punctuation, and list the corrections.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it AI Grammar Checker: Fix grammar, spelling, and punctuation, and list the corrections. (free, AI-generated, rate-limited).
Annotations the server declares
- title: AI Grammar Checker
- readOnlyHint: true
hashtag-generatorHashtag Generator: Generate relevant hashtags for a topic and platform.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Hashtag Generator: Generate relevant hashtags for a topic and platform. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Hashtag Generator
- readOnlyHint: true
headline-analyzerScore a headline (0-100) on length, word balance, power/emotional words, numbers, and brackets.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score a headline (0-100) on length, word balance, power/emotional words, numbers, and brackets.
Annotations the server declares
- title: Blog Headline Analyzer
- readOnlyHint: true
headline-generatorHeadline Generator: Generate catchy, click-worthy headlines.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Headline Generator: Generate catchy, click-worthy headlines. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Headline Generator
- readOnlyHint: true
hreflang-generatorGenerate hreflang link tags for international/multilingual pages, plus an optional x-default.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "hreflang-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate hreflang link tags for international/multilingual pages, plus an optional x-default.
Annotations the server declares
- title: Hreflang Tag Generator
- readOnlyHint: true
llms-txt-generatorGenerate an llms.txt file from a site name, one-line summary, optional details, and sections of links.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "llms-txt-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate an llms.txt file from a site name, one-line summary, optional details, and sections of links.
Annotations the server declares
- title: llms.txt Generator
- readOnlyHint: true
meta-description-generatorMeta Description Generator: Write SEO meta descriptions that maximize click-through rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Meta Description Generator: Write SEO meta descriptions that maximize click-through rate. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Meta Description Generator
- readOnlyHint: true
meta-robots-generatorBuild a meta robots tag (and X-Robots-Tag header) from index/follow and snippet directives.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Build a meta robots tag (and X-Robots-Tag header) from index/follow and snippet directives.
Annotations the server declares
- title: Meta Robots Tag Generator
- readOnlyHint: true
meta-tag-generatorGenerate a complete set of HTML meta tags: title, description, canonical, Open Graph, and Twitter Cards.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "meta-tag-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a complete set of HTML meta tags: title, description, canonical, Open Graph, and Twitter Cards.
Annotations the server declares
- title: Meta Tag Generator
- readOnlyHint: true
paragraph-generatorParagraph Generator: Expand a topic or sentence into a well-written paragraph.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Paragraph Generator: Expand a topic or sentence into a well-written paragraph. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Paragraph Generator
- readOnlyHint: true
product-description-generatorProduct Description Generator: Write persuasive product descriptions.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Product Description Generator: Write persuasive product descriptions. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Product Description Generator
- readOnlyHint: true
readability-checkerScore text readability with Flesch Reading Ease and Flesch-Kincaid Grade, plus a reading level.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score text readability with Flesch Reading Ease and Flesch-Kincaid Grade, plus a reading level.
Annotations the server declares
- title: Readability Score Checker
- readOnlyHint: true
roas-calculatorCalculate ROAS, ROAS (percentage).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate ROAS, ROAS (percentage).
Annotations the server declares
- title: ROAS Calculator
- readOnlyHint: true
robots-txt-generatorBuild a valid robots.txt: allow or block crawlers, disallow paths, block specific bots, and link a sitemap.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Build a valid robots.txt: allow or block crawlers, disallow paths, block specific bots, and link a sitemap.
Annotations the server declares
- title: Robots.txt Generator
- readOnlyHint: true
robots-txt-testerTest whether a robots.txt allows or blocks a given URL path for a given user-agent.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Test whether a robots.txt allows or blocks a given URL path for a given user-agent.
Annotations the server declares
- title: Robots.txt Tester
- readOnlyHint: true
schema-generatorBuild valid JSON-LD structured data (FAQ, Article, Organization, or Product) for rich results.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Build valid JSON-LD structured data (FAQ, Article, Organization, or Product) for rich results.
Annotations the server declares
- title: Schema Markup Generator (JSON-LD)
- readOnlyHint: true
seo-title-generatorSEO Title Generator: Write catchy, SEO-friendly title tags for a topic.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it SEO Title Generator: Write catchy, SEO-friendly title tags for a topic. (free, AI-generated, rate-limited).
Annotations the server declares
- title: SEO Title Generator
- readOnlyHint: true
set_autopilotTurn a site's autopilot on or off.No findings
Why it is in this group
- The name "set_autopilot" says "set": a word for a change.
Description, as the server wrote it Turn a site's autopilot on or off. When on, Spook plans, writes, and publishes articles automatically. (requires an agent API key)
Annotations the server declares
- title: Set Autopilot
- readOnlyHint: false
- destructiveHint: false
sitemap-generatorBuild an XML sitemap from a list of URLs, with an optional lastmod date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Build an XML sitemap from a list of URLs, with an optional lastmod date.
Annotations the server declares
- title: XML Sitemap Generator
- readOnlyHint: true
slug-generatorTurn a title into a clean, SEO-friendly URL slug: lowercase, hyphenated, accent-safe, optional stopword removal.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn a title into a clean, SEO-friendly URL slug: lowercase, hyphenated, accent-safe, optional stopword removal.
Annotations the server declares
- title: URL Slug Generator
- readOnlyHint: true
social-post-generatorSocial Media Post Generator: Write platform-specific social media posts.1 finding
Why it is in this group
- The name "social-post-generator" says "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "social-post-generator" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "social-post-generator" says "post": a word for a change.
Description, as the server wrote it Social Media Post Generator: Write platform-specific social media posts. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Social Media Post Generator
- readOnlyHint: true
subject-line-generatorEmail Subject Line Generator: Write high-converting email subject lines.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Email Subject Line Generator: Write high-converting email subject lines. (free, AI-generated, rate-limited).
Annotations the server declares
- title: Email Subject Line Generator
- readOnlyHint: true
update_publishingConfigure where a site publishes.1 finding
Why it is in this group
- The name "update_publishing" says "update": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...et publishIntegration to 'nextjs' for a credential-free Spook-hosted blog (returns a blog..."
Description, as the server wrote it Configure where a site publishes. Set publishIntegration to 'nextjs' for a credential-free Spook-hosted blog (returns a blog API key), or 'webhook' with publishWebhookUrl. publishMode 'draft' or 'live'. (requires an agent API key)
Annotations the server declares
- title: Update Publishing
- readOnlyHint: false
- destructiveHint: false
utm-builderAppend UTM tracking parameters (source, medium, campaign, term, content) to a destination URL.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Append UTM tracking parameters (source, medium, campaign, term, content) to a destination URL.
Annotations the server declares
- title: UTM Campaign URL Builder
- readOnlyHint: true
youtube-title-generatorYouTube Title & Description Generator: Write a YouTube title, description, and tags for a video topic.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it YouTube Title & Description Generator: Write a YouTube title, description, and tags for a video topic. (free, AI-generated, rate-limited).
Annotations the server declares
- title: YouTube Title & Description Generator
- readOnlyHint: true
Only reads 11Claude Code: allow
analyze_domainFree, no-signup SEO snapshot for any domain: the queries it already ranks on page 1-2 for (its quick-win opportunities), with search volume and estimated traffic.No findings
Why it is in this group
- The name "analyze_domain" says "analyze": a word for reading.
Description, as the server wrote it Free, no-signup SEO snapshot for any domain: the queries it already ranks on page 1-2 for (its quick-win opportunities), with search volume and estimated traffic. Great first look before signing up.
Annotations the server declares
- title: Analyze Domain
- readOnlyHint: true
character-counterCount characters (with and without spaces), words, sentences, and paragraphs in text.No findings
Why it is in this group
- The description's first verb is "count": a word for reading.
Description, as the server wrote it Count characters (with and without spaces), words, sentences, and paragraphs in text.
Annotations the server declares
- title: Character Counter
- readOnlyHint: true
get_articleFetch one article by id: full markdown body, meta, FAQs, SEO score, status, and published URL.No findings
Why it is in this group
- The name "get_article" says "get": a word for reading.
Description, as the server wrote it Fetch one article by id: full markdown body, meta, FAQs, SEO score, status, and published URL. Use to review a draft before publishing. (requires an agent API key)
Annotations the server declares
- title: Get Article
- readOnlyHint: true
get_siteGet one site's details and status by its id.No findings
Why it is in this group
- The name "get_site" says "get": a word for reading.
Description, as the server wrote it Get one site's details and status by its id. (requires an agent API key)
Annotations the server declares
- title: Get Site
- readOnlyHint: true
get_site_metricsRead a site's performance: daily Search Console clicks/impressions trend plus cached SEO metrics (domain rating, organic traffic estimate, top keywords).No findings
Why it is in this group
- The name "get_site_metrics" says "get": a word for reading.
Description, as the server wrote it Read a site's performance: daily Search Console clicks/impressions trend plus cached SEO metrics (domain rating, organic traffic estimate, top keywords). No cost. Use to check whether Spook is working. (requires an agent API key)
Annotations the server declares
- title: Get Site Metrics
- readOnlyHint: true
keyword-density-checkerAnalyze text for the most frequent words and phrases with their density, to spot keyword stuffing or thin coverage.No findings
Why it is in this group
- The description's first verb is "analyze": a word for reading.
Description, as the server wrote it Analyze text for the most frequent words and phrases with their density, to spot keyword stuffing or thin coverage.
Annotations the server declares
- title: Keyword Density Checker
- readOnlyHint: true
list_articlesRecent articles for a site with their status (draft/review/published) and generation status.No findings
Why it is in this group
- The name "list_articles" says "list": a word for reading.
Description, as the server wrote it Recent articles for a site with their status (draft/review/published) and generation status. (requires an agent API key)
Annotations the server declares
- title: List Articles
- readOnlyHint: true
list_opportunitiesThe winnable search queries Spook has found for a site (scored, ranked).No findings
Why it is in this group
- The name "list_opportunities" says "list": a word for reading.
Description, as the server wrote it The winnable search queries Spook has found for a site (scored, ranked). No cost. Pass questionsOnly to get only question-shaped queries. (requires an agent API key)
Annotations the server declares
- title: List Opportunities
- readOnlyHint: true
list_sitesList the Spook sites on the account this API key belongs to, with each site's id, domain, autopilot state, and publishing setup.No findings
Why it is in this group
- The name "list_sites" says "list": a word for reading.
Description, as the server wrote it List the Spook sites on the account this API key belongs to, with each site's id, domain, autopilot state, and publishing setup. (requires an agent API key)
Annotations the server declares
- title: List Sites
- readOnlyHint: true
serp-previewPreview how a page's title and meta description render in Google search, with pixel-width truncation for desktop and mobile.No findings
Why it is in this group
- The name "serp-preview" says "preview": a word for reading.
Description, as the server wrote it Preview how a page's title and meta description render in Google search, with pixel-width truncation for desktop and mobile.
Annotations the server declares
- title: Google SERP Snippet Preview
- readOnlyHint: true
word-counterCount words, characters, sentences, and paragraphs in text, plus reading and speaking time.No findings
Why it is in this group
- The description's first verb is "count": a word for reading.
Description, as the server wrote it Count words, characters, sentences, and paragraphs in text, plus reading and speaking time.
Annotations the server declares
- title: Word & Character Counter
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http spook https://www.tryspook.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__spook__serp-preview",
"mcp__spook__word-counter",
"mcp__spook__character-counter",
"mcp__spook__keyword-density-checker",
"mcp__spook__analyze_domain",
"mcp__spook__list_sites",
"mcp__spook__get_site",
"mcp__spook__list_opportunities",
"mcp__spook__list_articles",
"mcp__spook__get_article",
"mcp__spook__get_site_metrics"
],
"ask": [
"mcp__spook__meta-tag-generator",
"mcp__spook__schema-generator",
"mcp__spook__robots-txt-generator",
"mcp__spook__readability-checker",
"mcp__spook__hreflang-generator",
"mcp__spook__canonical-tag-generator",
"mcp__spook__meta-robots-generator",
"mcp__spook__sitemap-generator",
"mcp__spook__robots-txt-tester",
"mcp__spook__headline-analyzer",
"mcp__spook__slug-generator",
"mcp__spook__utm-builder",
"mcp__spook__ctr-calculator",
"mcp__spook__conversion-rate-calculator",
"mcp__spook__roas-calculator",
"mcp__spook__cpm-calculator",
"mcp__spook__cpc-calculator",
"mcp__spook__ai-crawler-checker",
"mcp__spook__aeo-checker",
"mcp__spook__llms-txt-generator",
"mcp__spook__ai-prompt-generator",
"mcp__spook__generate_article",
"mcp__spook__create_site",
"mcp__spook__update_publishing",
"mcp__spook__create_checkout",
"mcp__spook__publish_article",
"mcp__spook__set_autopilot",
"mcp__spook__blog-keyword-generator",
"mcp__spook__content-brief-generator",
"mcp__spook__blog-outline-generator",
"mcp__spook__content-idea-generator",
"mcp__spook__seo-title-generator",
"mcp__spook__meta-description-generator",
"mcp__spook__headline-generator",
"mcp__spook__subject-line-generator",
"mcp__spook__cta-generator",
"mcp__spook__ad-copy-generator",
"mcp__spook__social-post-generator",
"mcp__spook__article-summarizer",
"mcp__spook__article-rewriter",
"mcp__spook__grammar-checker",
"mcp__spook__faq-generator",
"mcp__spook__product-description-generator",
"mcp__spook__business-name-generator",
"mcp__spook__youtube-title-generator",
"mcp__spook__paragraph-generator",
"mcp__spook__content-coverage-checker",
"mcp__spook__hashtag-generator"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as spook. Review it before you use it.