Accept-header tester · Replay AI agent requests for markdown · mdream

[Home](https://mdream.dev/tools/accept-header/)

# Accept-header tester

Replay real AI-agent requests against any URL. See what Claude Code, Cursor, and Codex actually get back, with pass/fail lights for `Vary`, `406`, and q-values.

URL

Agent fingerprint

Claude Code

Cursor

Codex CLI

ChatGPT

Perplexity

Gemini

Custom probe

Accepttext/markdown, text/html, */*

User-AgentClaude-User/1.0

Custom Accept override

Server-side probe · no CORS limitsProbe

zzz

Ready to probe

Pick an agent and enter a URL to test.

## What do these lights mean?

- MD — server responded with `text/markdown` or `text/plain`.
- Vary — response includes `Vary: Accept`, so caches won't mix HTML and markdown responses.
- 406 — server returns spec-compliant 406 on unsatisfiable Accept values. Optional but nice.
- q= — server honors Accept q-values, serving markdown when the client marks it as preferred.

[Read the full guide ](https://mdream.dev/tools/accept-header/guides/accept-markdown-header)

## Agent support matrix

| Agent | Accept | User-Agent | MD |
| --- | --- | --- | --- |
| Claude Code | text/markdown, text/html, */* | Claude-User/1.0 | |
| Cursor | text/markdown, text/plain;q=0.9, */*;q=0.8 | Cursor/1.0 | |
| Codex CLI | text/html, */* | codex/1.0 | |
| ChatGPT | */* | ChatGPT-User/1.0 | |
| Perplexity | */* | PerplexityBot/1.0 | |
| Gemini | */* | Google-Extended | |

## Frequently Asked Questions

What is content negotiation?

Content negotiation is an HTTP mechanism where the client (browser, AI agent) advertises which response formats it understands via the Accept header. The server picks the best match and serves it with a matching Content-Type. For AI agents, Accept: text/markdown signals that the client prefers clean markdown over rendered HTML.

Why should my site serve markdown?

Markdown is 40–80% smaller than the equivalent HTML, strips noise (nav, scripts, styles), and maps directly to the token-efficient format LLMs internally convert to anyway. Serving markdown on Accept negotiation is faster, cheaper, and gives agents better answers.

Which agents actually send Accept: text/markdown?

As of 2026, only Claude Code and Cursor advertise text/markdown in their Accept header. OpenAI Codex CLI follows <link rel="alternate" type="text/markdown"> hints in HTML instead. ChatGPT, Perplexity, and Gemini fetchers still send */* and parse whatever comes back.

What does the 406 light mean?

406 Not Acceptable is the spec-compliant response when the client explicitly only wants a format the server cannot produce. Correctly returning 406 for Accept: application/vnd.pandoc is a sign of a well-implemented content negotiation layer.

## Scan the whole site

[<h3>AI search visibility audit</h3>Accept-header + llms.txt + sitemap.md + robots + token savings. One shareable report.](https://mdream.dev/tools/accept-header/tools/ai-audit)

© 2026 [Harlan Wilton](https://github.com/harlan-zw) · [MIT](https://github.com/harlan-zw/mdream/blob/main/license)

[GitHub](https://github.com/harlan-zw/mdream) [Discord](https://discord.com/invite/275MBUBvgP)