# Superflow free tools: MCP server and HTTP API

> 13 free website tools, available as MCP tools and as plain HTTP endpoints. No account, no API key, no OAuth.

This is the Markdown copy of https://usesuperflow.ai/tools/mcp, published for AI agents and scripts.

## MCP

- Endpoint: `https://usesuperflow.ai/api/mcp`
- Transport: Streamable HTTP (one JSON-RPC message per POST)
- Protocol version: `2025-06-18`
- Server name: `superflow-free-tools`
- Authentication: none
- Sessions: none. The server is stateless.

Add it to a client:

```bash
claude mcp add --transport http superflow https://usesuperflow.ai/api/mcp
```

Or, in any client that takes a JSON config:

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

## Tools

| Tool | Arguments | Endpoint | Limit | Timeout |
| --- | --- | --- | --- | --- |
| `check_ai_visibility` | url, refresh? | `POST /api/tools/ai-visibility` | 10 runs per hour per IP | 75s |
| `check_robots_txt_for_ai` | url, refresh? | `POST /api/tools/robots-txt-ai-checker` | 10 runs per hour per IP | 75s |
| `generate_llms_txt` | url, refresh? | `POST /api/tools/llms-txt-generator` | 10 runs per hour per IP | 75s |
| `page_to_markdown` | url, refresh? | `POST /api/tools/markdown-for-agents` | 10 runs per hour per IP | 75s |
| `generate_json_ld` | url, refresh? | `POST /api/tools/json-ld-generator` | 10 runs per hour per IP | 75s |
| `validate_json_ld` | url, refresh? | `POST /api/tools/json-ld-validator` | 10 runs per hour per IP | 75s |
| `check_social_preview` | url, refresh? | `POST /api/tools/social-preview` | 10 runs per hour per IP | 75s |
| `detect_tech_stack` | url, refresh? | `POST /api/tools/tech-stack` | 60 runs per hour per IP | 30s |
| `check_favicon` | url, refresh? | `POST /api/tools/favicon-checker` | 60 runs per hour per IP | 30s |
| `capture_full_page_screenshot` | url, refresh? | `POST /api/tools/full-page-screenshot` | 10 runs per hour per IP | 90s |
| `generate_alt_text` | url, refresh? | `POST /api/tools/alt-text-generator` | 10 runs per hour per IP | 90s |
| `build_utm_url` | url, source?, medium?, campaign?, id?, term?, content?, caseRule?, spaceRule?, stripPunctuation? | `POST /api/tools/utm-builder` | None. The work is local and costs nothing. | 10s |
| `hash_md5` | text | `POST /api/tools/md5` | None. The work is local and costs nothing. | 10s |

### check_ai_visibility

Check whether AI assistants (ChatGPT, Claude, Perplexity, Google AI) can reach, read, and cite a web page. Runs the full suite: robots.txt rules per AI crawler, a live firewall test that requests the page as GPTBot, JavaScript dependency, llms.txt, headings, structured data, and author identity. Returns a score out of 100 with a grade, a score per category, and a finding per check with why it matters and how to fix it. Use this for a whole-page verdict; use check_robots_txt_for_ai when the question is only about crawler access.

Returns `{ ok, report: { score, grade, scoredOutOf, categories[], findings[] with why and fix, detection }, cached, ageSeconds }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/ai-visibility -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/ai-visibility-checker

### check_robots_txt_for_ai

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. Also runs a firewall test, because CDN-level blocks stop crawlers before robots.txt is ever read. This is the access-scoped view of check_ai_visibility.

Returns `{ ok, report: { accessScore, crawlers[] with the rule that decided each verdict, firewall, findings[] }, cached, ageSeconds }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/robots-txt-ai-checker -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/robots-txt-ai-checker

### generate_llms_txt

Generate llms.txt and llms-full.txt for a site, following the llmstxt.org convention. Inventories the site from its robots.txt, sitemaps, and homepage links, then writes an index file and a full file with page content inlined. Deterministic: no model is involved, so two runs over an unchanged site produce the same bytes. Returns the file contents ready to write to disk.

Returns `{ ok, report: { siteName, llmsTxt, llmsFullTxt, pagesDiscovered, pagesIncluded, truncated }, cached, ageSeconds }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/llms-txt-generator -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/llms-txt-generator

### page_to_markdown

Fetch one web page and convert it to clean CommonMark, with the navigation, cookie banners, and boilerplate stripped out. Use this to read a page as text an agent can reason over, or to publish a .md copy of a page alongside the HTML.

Returns `{ ok, report: { markdown, title, description, wordCount, bytes, truncated, httpStatus }, cached, ageSeconds }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/markdown-for-agents -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/markdown-for-agents

### generate_json_ld

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. The markup is model-written from the page's own content and should be reviewed before it is published. Returns the block ready to paste into a <script type="application/ld+json"> tag.

Returns `{ ok, report: { detectedType, jsonLd, jsonLdString, validation: { findings[], passed }, model } }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/json-ld-generator -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/json-ld-generator

### validate_json_ld

Read the structured data already on a page and check it against Schema.org and what search engines actually accept. Reports every JSON-LD block found, the type of each, and the errors and warnings per block.

Returns `{ ok, report: { blockCount, invalidBlockCount, declaredTypes[], eligibility[], categories[], findings[] } }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/json-ld-validator -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/json-ld-validator

### check_social_preview

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. Returns a per-platform preview (title, description, image) plus the findings for tags that are missing, truncated, or the wrong size.

Returns `{ ok, report: { previews[] per platform, tags, summary, findings[] }, cached, ageSeconds }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/social-preview -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/social-preview-checker

### detect_tech_stack

Identify the platform, framework, CMS, ecommerce apps, analytics, CDN, and hosting behind a site by fingerprinting one page's HTML and response headers. One fetch, no rendering and no crawl, so it answers in about a second. A site behind bot protection is reported as blocked rather than as empty.

Returns `{ platformName, theme, apps[], fonts[], analytics[], hosting[], renderMode, url, status, fetchedAt }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/tech-stack -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/tech-stack-detector

### check_favicon

Check whether a site's favicon actually works. Reads every icon declaration in the page head, then fetches each one, the web app manifest, and the implicit /favicon.ico, and identifies the real format and pixel dimensions from each file's header bytes. Catches the failures a status-code check misses: a catch-all route answering an icon path with HTML at HTTP 200, a sizes attribute that disagrees with the file, an icon served over http on an https page. Use this when a favicon is missing or blurry; use check_social_preview for the image that appears when a link is shared.

Returns `{ hasWorkingFavicon, tabIcon, icons[] with format, dimensions, bytes and problem, manifest, themeColor, checks[] with id, status and fix, counts }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/favicon-checker -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/favicon-checker

### capture_full_page_screenshot

Capture a full-height PNG of a page in a real headless browser, scrolling first so lazy-loaded content renders. Returns a signed link to the image that expires in about 24 hours; download the bytes if you need to keep them. No watermark and no height cap. Cannot capture anything behind a login.

Returns `{ imageUrl, expiresAt, bytes, width, height, deviceType }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/full-page-screenshot -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/full-page-screenshot

### generate_alt_text

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. Lists every image with the alt it has today, the suggested alt, whether it looks decorative, and why any image was skipped. Up to 10 images per run go to the model. The suggestions are drafts for a human to review.

Returns `{ images[] with src, hadAlt, currentAlt, suggestedAlt, isDecorative, skippedReason; counts; model }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/alt-text-generator -H 'Content-Type: application/json' -d '{"url":"example.com"}'
```

Human page: https://usesuperflow.ai/tools/alt-text-generator

### build_utm_url

Build a campaign URL with utm parameters, normalised to one tagging convention, and report which GA4 default channel group the link will land in. Warns about the mistakes that silently break reporting: an unrecognised medium that drops traffic into Unassigned, casing that splits one source into several report rows, PII in a campaign name. Pure string work: nothing is fetched and nothing is stored.

Returns `{ url, normalized, channel, issues[] with level, field and message }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/utm-builder -H 'Content-Type: application/json' -d '{"url":"example.com/pricing","source":"newsletter","medium":"email","campaign":"spring launch"}'
```

Human page: https://usesuperflow.ai/tools/utm-builder

### hash_md5

Hash text to an MD5 hex digest. Useful for checksums, cache keys, dedupe keys, and Gravatar-style identifiers. MD5 is broken for anything security-related: never use it for passwords or to verify authenticity.

Returns `{ md5, algorithm, bytes }`.

```bash
curl -sS https://usesuperflow.ai/api/tools/md5 -H 'Content-Type: application/json' -d '{"text":"hello"}'
```

Human page: https://usesuperflow.ai/tools/md5-generator

## Limits and privacy

- Rate limits are per IP, per hour, and stated per tool above. A cached result does not spend a slot.
- Results are cached for 24 hours keyed on the URL. Send `"refresh": true` to run again.
- Failures are always JSON: either `{ ok: false, code, message }` with a 4xx, or HTTP 200 with an `error` and `errorCode`. Never a stack trace, never an empty 500.
- Nothing is stored beyond that cache. There is no account and no history. Screenshots are held in a bucket behind a link that expires in about 24 hours.
- Only public URLs are accepted. Private networks, localhost, and non-http(s) schemes are refused with `invalid-url`.

## About

These tools are published free by Superflow at https://usesuperflow.ai/tools. Superflow is a website and creative-asset review tool: its agents check every page of a site against a team's own rules and report what changed. See https://usesuperflow.ai.
