check_watch
Poll a Skim Watch for content changes (or fetch registration status). Pass the watch_id from watch_urls. Card lane: GET /api/t/watch/diff?id= (or /status). Wallet lane: GET /api/v2/watch/diff?id= (or /status, which is free).
Turn any URL into clean, agent-ready Markdown, extract structured JSON from a page, and watch pages for content changes.
LABSCO SUMMARY
The output is a quarter the size of the raw HTML, which is the difference between reading five pages and reading twenty in the same context. extract_url is the sharper tool: it fills a schema you define from what is actually on the page and leaves missing fields missing, rather than letting a model fill the gaps.
The official MCP server for Skim. It fetches a URL and returns the article as Markdown with a YAML frontmatter block — no navigation, ads or boilerplate — and can pull structured JSON out of a page against a schema or a preset. It also registers watches that report content diffs on later checks.
A free Skim API key (it starts with sk402_) from skim402.com, set as SKIM_API_KEY; the free plan allows 1,000 reads a month and a card is required at signup. Clients run npx -y skim-mcp over stdio. An optional wallet path replaces the key entirely: set SKIM_WALLET_PRIVATE_KEY and calls pay per request in USDC on Base at $0.002 each — use a dedicated wallet, since the key sits in a plaintext config file.
One command plus a key — npx -y skim-mcp, then supply credentials
USE CASES
Fetch the URL as Markdown with its title, byline and date already parsed out.
Send up to ten URLs in a single call rather than fetching them one at a time.
Give a schema or pick a preset and get back JSON where every value came from the page.
Register a watch over the pages you care about, then poll it for the content diff.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
check_watchPoll a Skim Watch for content changes (or fetch registration status). Pass the watch_id from watch_urls. Card lane: GET /api/t/watch/diff?id= (or /status). Wallet lane: GET /api/v2/watch/diff?id= (or /status, which is free).
extract_urlExtract structured JSON (or tables) from a URL via Skim. Pass a JSON Schema, or a preset (article, product, job, review, event, table). Values come only from the page — missing fields are omitted or null, never invented. Card lane: POST /api/t/extract. Wallet lane: POST /api/v1/extract.
read_urlFetch any URL and return clean, agent-ready Markdown via Skim (skim402.com). Output is ~4x smaller than raw HTML — fewer tokens, faster processing. Strips nav, ads, and boilerplate; preserves the article body plus structured metadata (title, byline, published date, language, excerpt). Use this whenever you need to read web content: articles, docs, blog posts, GitHub READMEs, research papers, etc.
read_urlsRead up to 10 URLs in one Skim call and return per-URL clean Markdown plus metadata. Use this instead of calling read_url in a loop. Card lane: POST /api/t/read/batch. Wallet lane: POST /api/v1/read/batch.
watch_urlsRegister a private Skim Watch on 1–20 URLs. Returns a watch_id (treat it as a secret) used with check_watch. First check baselines each page; later checks report content diffs. Card lane: POST /api/t/watch (intended token path from skim402-web; may 404 until that route is live). Wallet lane: POST /api/v2/watch.
BEFORE YOU INSTALL
5 tools when we connected; the project documents 8. crawl_url, read_pdf and poll_signal need SKIM_API_KEY; with only a wallet configured, you get the other 5.
All 4 documented clients run the server on your machine.
INSTALLATION
npx -y skim-mcp{
"mcpServers": {
"skim": {
"command": "npx",
"args": [
"-y",
"skim-mcp"
],
"env": {
"SKIM_API_KEY": "<YOUR_SKIM_API_KEY>"
}
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"skim": {
"command": "npx",
"args": [
"-y",
"skim-mcp"
],
"env": {
"SKIM_API_KEY": "<YOUR_SKIM_API_KEY>"
}
}
}
}~/.cursor/mcp.json (or Settings → MCP)
{
"mcpServers": {
"skim": {
"command": "npx",
"args": [
"-y",
"skim-mcp"
],
"env": {
"SKIM_API_KEY": "<YOUR_SKIM_API_KEY>"
}
}
}
}