Free forever

MCP server and API for the free tools

Every free tool is also an MCP tool and an HTTP endpoint. One URL, no account, no API key.

13 tools. Nothing stored beyond a 24 hour cache. Markdown copy for agents.

Add it to your client

One URL, Streamable HTTP transport, no authentication. In Claude Code that is a single command; every other client takes the same URL in its own config.

Claude Code — run once, in any projectbash
claude mcp add --transport http superflow https://usesuperflow.ai/api/mcp
Claude Desktop, Cursor, VS Code, and older clients

Claude Desktop

claude_desktop_config.jsonjson
{
  "mcpServers": {
    "superflow": {
      "type": "http",
      "url": "https://usesuperflow.ai/api/mcp"
    }
  }
}

Settings → Developer → Edit Config, then restart the app.

Cursor

~/.cursor/mcp.json, or .cursor/mcp.json in a projectjson
{
  "mcpServers": {
    "superflow": {
      "url": "https://usesuperflow.ai/api/mcp"
    }
  }
}

VS Code

Run oncebash
code --add-mcp '{"name":"superflow","type":"http","url":"https://usesuperflow.ai/api/mcp"}'

Anything older

Bridge a stdio-only client onto the HTTP endpointjson
{
  "mcpServers": {
    "superflow": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://usesuperflow.ai/api/mcp"]
    }
  }
}

Only needed for clients that predate the Streamable HTTP transport.

The tools

What your agent sees after connecting. Every tool takes a URL, except the two that take text.

MCP toolWhat it doesArguments
check_ai_visibilityAI Visibility Checker. Check whether AI assistants (ChatGPT, Claude, Perplexity, Google AI) can reach, read, and cite a web page.url, refresh?
check_robots_txt_for_airobots.txt AI Checker. Test a site's robots.txt against every AI crawler that matters (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Googlebot, Bingbot and the rest) and report which are allowed, which are blocked, and which rule decided it.url, refresh?
generate_llms_txtllms.txt Generator. Generate llms.txt and llms-full.txt for a site, following the llmstxt.org convention.url, refresh?
page_to_markdownMarkdown for Agents. Fetch one web page and convert it to clean CommonMark, with the navigation, cookie banners, and boilerplate stripped out.url, refresh?
generate_json_ldJSON-LD Generator. Read a page and write a schema.org JSON-LD block for it, then validate that block against the same checks a validator would run.url, refresh?
validate_json_ldJSON-LD Validator. Read the structured data already on a page and check it against Schema.org and what search engines actually accept.url, refresh?
check_social_previewSocial Preview Checker. Read a page's Open Graph and Twitter card tags and report how the link will render on X, LinkedIn, Facebook, Slack, Discord, and Google.url, refresh?
detect_tech_stackTech Stack Detector. Identify the platform, framework, CMS, ecommerce apps, analytics, CDN, and hosting behind a site by fingerprinting one page's HTML and response headers.url, refresh?
check_faviconFavicon Checker. Check whether a site's favicon actually works.url, refresh?
capture_full_page_screenshotFull Page Screenshot. Capture a full-height PNG of a page in a real headless browser, scrolling first so lazy-loaded content renders.url, refresh?
generate_alt_textAlt Text Generator. Find every image on a page and draft alt text for the ones that need it, using a vision model that actually looks at the image.url, refresh?
build_utm_urlUTM Builder. Build a campaign URL with utm parameters, normalised to one tagging convention, and report which GA4 default channel group the link will land in.url, source?, medium?, campaign?, id?, term?, content?, caseRule?, spaceRule?, stripPunctuation?
hash_md5MD5 Hash Generator. Hash text to an MD5 hex digest.text

The HTTP API

The same tools without MCP. Every endpoint takes a JSON body with a URL and answers with JSON. Add "refresh": true to skip the 24 hour cache and run again.

Examplebash
curl -sS https://usesuperflow.ai/api/tools/ai-visibility \
  -H 'Content-Type: application/json' \
  -d '{"url":"example.com"}'
EndpointReturnsLimitAllow
POST /api/tools/ai-visibility{ ok, report: { score, grade, scoredOutOf, categories[], findings[] with why and fix, detection }, cached, ageSeconds }10 runs per hour per IP75s
POST /api/tools/robots-txt-ai-checker{ ok, report: { accessScore, crawlers[] with the rule that decided each verdict, firewall, findings[] }, cached, ageSeconds }10 runs per hour per IP75s
POST /api/tools/llms-txt-generator{ ok, report: { siteName, llmsTxt, llmsFullTxt, pagesDiscovered, pagesIncluded, truncated }, cached, ageSeconds }10 runs per hour per IP75s
POST /api/tools/markdown-for-agents{ ok, report: { markdown, title, description, wordCount, bytes, truncated, httpStatus }, cached, ageSeconds }10 runs per hour per IP75s
POST /api/tools/json-ld-generator{ ok, report: { detectedType, jsonLd, jsonLdString, validation: { findings[], passed }, model } }10 runs per hour per IP75s
POST /api/tools/json-ld-validator{ ok, report: { blockCount, invalidBlockCount, declaredTypes[], eligibility[], categories[], findings[] } }10 runs per hour per IP75s
POST /api/tools/social-preview{ ok, report: { previews[] per platform, tags, summary, findings[] }, cached, ageSeconds }10 runs per hour per IP75s
POST /api/tools/tech-stack{ platformName, theme, apps[], fonts[], analytics[], hosting[], renderMode, url, status, fetchedAt }60 runs per hour per IP30s
POST /api/tools/favicon-checker{ hasWorkingFavicon, tabIcon, icons[] with format, dimensions, bytes and problem, manifest, themeColor, checks[] with id, status and fix, counts }60 runs per hour per IP30s
POST /api/tools/full-page-screenshot{ imageUrl, expiresAt, bytes, width, height, deviceType }10 runs per hour per IP90s
POST /api/tools/alt-text-generator{ images[] with src, hadAlt, currentAlt, suggestedAlt, isDecorative, skippedReason; counts; model }10 runs per hour per IP90s
POST /api/tools/utm-builder{ url, normalized, channel, issues[] with level, field and message }None. The work is local and costs nothing.10s
POST /api/tools/md5{ md5, algorithm, bytes }None. The work is local and costs nothing.10s
What a failure looks like

A failed run is still JSON. Depending on the endpoint it comes back either as { ok: false, code, message } with a 4xx, or as HTTP 200 carrying an error field and an errorCode. Both carry a message written for a human to read as-is. There is never a stack trace and never an empty 500. Over MCP both shapes surface as a tool error, so an agent does not have to know which endpoint uses which.

The codes worth branching on are invalid-url (including anything private, local, or not on the public internet), rate-limited (carries retryAfterSeconds), blocked (bot protection answered instead of the site), and budget-exhausted (the monthly model spend on the two AI-backed tools, which fails closed rather than inventing an answer).

Common questions

No. There is no signup, no key, and no OAuth step. The endpoint is open and the tools are free. What limits use is a per-IP rate limit, not a credential.