Skim reads a URL and returns its main content as clean Markdown. Free, no signup, no key. Two ways to use it.
Streamable-HTTP MCP endpoint — add it as a remote server:
https://skim.perch-app.workers.dev/mcp
Tool: read
read({
url: "https://example.com/post", // required, absolute http(s)
links: true, // optional, keep [text](url); default true
max_chars: 8000 // optional, truncate long content
})
Returns { url, title, description, format, content, word_count, bytes, ms }.
GET https://skim.perch-app.workers.dev/api/read?url=https%3A%2F%2Fexample.com%2F
POST https://skim.perch-app.workers.dev/api/read {"url":"https://example.com/","links":true,"max_chars":8000}
Query/body options: format=markdown|text (markdown default; text also drops link markup), links=0, max_chars=N.
Not an agent? Paste any URL into the clean reader to strip ads, popups and clutter and get a readable, shareable page: https://skim.perch-app.workers.dev/r?url=<page>.
HTML (→ Markdown, main-content extracted), plain text, JSON and XML (returned as-is). PDFs and binaries aren't supported yet. Private/internal addresses are blocked. Rate limit: 40 reads/minute per IP.
Skim identifies itself as SkimBot/1.0 and follows redirects. It's a reader, not a scraper farm — be considerate of the sites you read.