skim

URL to Markdown or structured JSON (schema.org/OG); renders SPA; batch reads. No signup/key.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~413Tokens (tool definitions)
~3.8 KBTypical response size
Minimal attention impact (0.32% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "skim": {
      "url": "https://skim.perch-app.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://skim.perch-app.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢read(url, links, format, max_chars, render)

Fetch a web page and return its main content as clean Markdown (headings, links, lists, code preserved; nav/ads/scripts stripped). Also handles plain text, JSON and XML, extracts structured data (format=data), and normalizes any ATS/job-board feed into a unified jobs[] array (format=jobs). Use this whenever you need to read the actual content of a URL. No signup, no API key.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL to read, e.g. https://example.com/post"
    },
    "links": {
      "type": "boolean",
      "description": "Keep hyperlinks as [text](url). Default true. Set false for plainer prose."
    },
    "format": {
      "type": "string",
      "enum": [
        "markdown",
        "text",
        "data",
        "jobs"
      ],
      "description": "Output format. 'markdown' (default) = clean readable content; 'text' = plain prose, no link markup; 'data' = extract the page's embedded structured data (schema.org JSON-LD, OpenGraph, Twitter card, meta) as JSON; 'jobs' = normalize any ATS/job-board feed (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee) or a careers page with JSON-LD JobPosting into a unified jobs[] array (title, url, location, department, employment_type, updated_at, remote) — ideal for job aggregation with no per-provider parsing."
    },
    "max_chars": {
      "type": "number",
      "description": "Optional cap on returned characters (content is truncated if longer)."
    },
    "render": {
      "type": "string",
      "enum": [
        "auto",
        "js",
        "off"
      ],
      "description": "JS rendering for client-side/SPA pages. 'auto' (default) renders with a headless browser only when the server HTML looks empty; 'js' forces a full browser render; 'off' never renders. The response 'rendered' field says whether a browser was used."
    }
  },
  "required": [
    "url"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools
verifiedversion not recorded1 tools