Skim
Leitor web limpo para agentes de IA. Paga $0,002/chamada em USDC na Base via x402. Sem chaves de API, sem cadastro.
Documentação
skim-mcp
O Skim transforma URLs em markdown limpo para agentes. Obtenha uma chave de cartão gratuita em https://skim402.com (sk402_). Wallet/x402 é opcional.
skim-mcp é o servidor oficial do Model Context Protocol para Skim. Ele transforma qualquer URL em Markdown limpo e pronto para agentes (sem anúncios, sem navegação, sem conteúdo desnecessário).
Caminho padrão: chave de API do plano cartão. Obtenha uma chave sk402_ gratuita em skim402.com (preços). Cole-a como SKIM_API_KEY. Uma carteira cripto não é necessária.
Caminho opcional: pagamento via wallet x402. Se preferir pagar por chamada em USDC na Base, você pode definir SKIM_WALLET_PRIVATE_KEY em vez disso. Ignore isso, a menos que queira.
Ferramentas neste pacote: read_url, read_urls, extract_url, crawl_url, read_pdf, watch_urls, check_watch, poll_signal.
Experimente no navegador: freeskims.skim402.com — 10 skims gratuitos por dia. Cole uma URL e veja o que seu agente recebe.

Início rápido (60 segundos)
Chave de API do cartão (recomendado)
1. Obtenha uma chave gratuita em skim402.com — ela começa com sk402_. Cartão exigido no cadastro; 1.000 leituras/mês no plano gratuito. Detalhes: skim402.com/pricing.
2. Adicione isto ao seu cliente MCP. Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows). Cursor — ~/.cursor/mcp.json (ou Configurações → MCP). O mesmo JSON funciona no Cline, Continue, Zed e outros clientes MCP:
{
"mcpServers": {
"skim": {
"command": "npx",
"args": ["-y", "skim-mcp"],
"env": {
"SKIM_API_KEY": "sk402_your_key_here"
}
}
}
}
3. Reinicie o cliente e peça para ler uma URL:
Read https://en.wikipedia.org/wiki/HTTP_402 and summarize it.
Wallet / x402 (opcional)
Somente se você preferir pagamento por chamada ($0,002 USDC na Base) em vez de uma chave de cartão. Você pode pular todo este bloco.
{
"mcpServers": {
"skim": {
"command": "npx",
"args": ["-y", "skim-mcp"],
"env": {
"SKIM_WALLET_PRIVATE_KEY": "0xYOUR_BASE_WALLET_PRIVATE_KEY"
}
}
}
}
Financie uma carteira Base dedicada com um pequeno saldo em USDC ($1 ≈ 500 leituras). Guia de configuração: https://skim402.com/wallet.
Use uma carteira nova, não a sua pessoal. Esta chave privada fica em um arquivo de configuração em texto simples na sua máquina — trate-a como uma hot wallet para pedágios de $0,002, não como uma conta poupança.
FAQ
Preciso de uma chave de API?
Sim, para o caminho padrão. Obtenha uma chave sk402_ gratuita em https://skim402.com. Uma carteira é opcional.
É somente wallet? Preciso de cripto?
Não. A chave de API do cartão é o padrão. O pagamento via wallet x402 é opcional.
Quais ferramentas meu agente pode chamar?
read_url, read_urls (em lote), extract_url, crawl_url, read_pdf, watch_urls, check_watch e poll_signal.
Experimente sem um agente
Com uma chave de cartão:
curl -H 'Authorization: Bearer sk402_your_key_here' \
'https://skim402.com/api/t/read?url=https://en.wikipedia.org/wiki/HTTP_402'
Desafio wallet / x402 (opcional — retorna HTTP 402 se você não enviar pagamento):
curl -i -X POST https://skim402.com/api/v1/read \
-H 'content-type: application/json' \
-d '{"url":"https://en.wikipedia.org/wiki/HTTP_402"}'
As ferramentas
read_url
Lê qualquer URL e retorna Markdown limpo com um bloco de frontmatter YAML.
Entrada: { "url": "https://example.com/article" }
Rotas: GET /api/t/read?url= (chave de API) · POST /api/v1/read (wallet)
Saída:
---
title: Example article
byline: Jane Doe
published: 2025-01-15
lang: en
excerpt: A short summary...
---
# Example article
The cleaned article body in Markdown...
read_urls
Lê em lote 1–10 URLs em uma única chamada. stripLinks / stripImages opcionais.
Entrada: { "urls": ["https://a.example", "https://b.example"] }
Rotas: POST /api/t/read/batch · POST /api/v1/read/batch
extract_url
JSON estruturado de uma página. Passe um JSON Schema ou um preset: article, product, job, review, event, table.
Entrada: { "url": "https://example.com/product", "preset": "product" }
Rotas: POST /api/t/extract · POST /api/v1/extract
Os presets são enviados como schemas nessas rotas de extração.
crawl_url
Rastreia um site (origem ou URL inicial) e retorna Markdown limpo por página. Descobre sitemaps sitemap.xml / robots.txt além de links de mesma origem. Limite de 25 páginas. 1 crédito por página bem-sucedida; páginas com falha não são cobradas.
Entrada: { "url": "https://example.com", "maxPages": 10 }
Opcional: stripLinks, stripImages. Hosts simples como example.com são tratados como https://example.com.
Rota: POST /api/t/crawl (chave de API). Sem equivalente x402 /v1 — defina SKIM_API_KEY.
Crawl https://example.com (max 10 pages) and list the page titles.
read_pdf
Busca uma URL de PDF público e retorna Markdown limpo além de um esboço de marcadores opcional. O texto vem apenas do arquivo. Digitalizações somente com imagem retornam 422 (sem OCR). Arquivos maiores que 8 MB retornam 413. 3 créditos; conversões com falha não são cobradas.
Entrada: { "url": "https://example.com/paper.pdf" }
Opcional: outline (padrão true).
Rota: POST /api/t/read-pdf (chave de API). Sem equivalente x402 /v1 — defina SKIM_API_KEY.
Read the PDF at https://example.com/paper.pdf and summarize the outline.
poll_signal
Consulta um Skim Signal e retorna os itens estruturados mais recentes (título, resumo, fonte, timestamp, link, entidades). 2 créditos por consulta bem-sucedida; consultas com falha são reembolsadas.
Requer SKIM_API_KEY. Configurações somente com wallet recebem um erro claro.
Entrada: { "slug": "ai-news", "limit": 20 }
Filtros opcionais (passe apenas os que o feed documenta): forms (sec-filings, campaign-finance), categories (deals), fields (research), states (film-incentives), committees (campaign-finance).
Slugs: ai-news, sec-filings, crypto-news, macro, security, regulations, courts, recalls, deals, launches, trending, research, energy, entertainment, studio-jobs, campaign-finance, film-incentives. Use x402 para o feed do ecossistema.
Rotas (chave de API): GET /api/t/signal/{slug}/latest?limit= · GET /api/t/feeds/x402/latest?limit= (x402 não é /signal/x402)
curl -H 'Authorization: Bearer sk402_your_key_here' \
'https://skim402.com/api/t/signal/ai-news/latest?limit=20'
Poll the ai-news signal for the latest 20 items.
watch_urls / check_watch
Registre 1–20 URLs e depois consulte diferenças de conteúdo. watch_id é um segredo.
Entrada: { "urls": ["https://competitor.com/pricing"], "note": "pricing" } e depois { "watch_id": "w_…" } (status_only: true opcional)
Rotas (chave de API): POST /api/t/watch · GET /api/t/watch/diff?id= · GET /api/t/watch/status?id=
Rotas (wallet): POST /api/v2/watch · GET /api/v2/watch/diff?id= · GET /api/v2/watch/status?id=
Exemplos de prompts para agentes
Read https://en.wikipedia.org/wiki/HTTP_402 and summarize it.
Read these three pages and compare their pricing: https://a.example/pricing https://b.example/pricing https://c.example/pricing
Extract the product name, price, and availability from https://example.com/products/notebook as JSON.
Crawl https://example.com (max 10 pages) and list the page titles.
Read the PDF at https://example.com/paper.pdf and summarize it.
Poll the ai-news signal for the latest 20 items.
Watch https://competitor.com/pricing and https://competitor.com/changelog, then check the watch for changes.
Configuração
| Variável | Obrigatória | Padrão | Notas |
|---|---|---|---|
SKIM_API_KEY | sim (ou wallet) | — | Chave de API do plano cartão (sk402_...). Obtenha uma gratuita em skim402.com / preços. Tem prioridade sobre SKIM_WALLET_PRIVATE_KEY. |
SKIM_WALLET_PRIVATE_KEY | opcional | — | Somente se você não estiver usando uma chave de cartão. Chave privada hexadecimal para uma carteira Base dedicada que paga leituras x402 ($0,002 USDC/chamada). Ignorada quando SKIM_API_KEY está definido. Nunca use uma carteira pessoal. |
SKIM_MAX_PRICE_USD | não | 0.01 | Somente na via wallet. Limite máximo do preço por chamada em USD. Leituras únicas são $0.002. Lote / extração / watch custam mais — aumente isto (ex.: 0.05) se a via wallet rejeitar essas chamadas. |
SKIM_API_URL | não | https://skim402.com | Substitui a URL base da API. Para self-hosting ou desenvolvimento local. |
SKIM_TIMEOUT_MS | não | 90000 | Prazo máximo por chamada em milissegundos. Aborta solicitações travadas para que uma única chamada ruim nunca trave seu agente. Chamadas não liquidadas nunca são cobradas, então repetir é seguro. |
Como funciona de verdade
Via cartão (padrão):
your agent ──► skim-mcp ──► GET https://skim402.com/api/t/read?url=…
Authorization: Bearer sk402_...
│
▼
200 OK + clean Markdown
Via wallet (x402, opcional):
your agent ──► skim-mcp ──► POST https://skim402.com/api/v1/read
▲ │
│ ▼
│ 402 Payment Required
│ (x402 challenge)
│ │
▼ │
x402-fetch signs EIP-3009 ◄────────────┘
USDC transfer authorization
│
▼
retry POST with X-PAYMENT header
│
▼
Skim verifies + settles via Coinbase CDP
│
▼
200 OK + clean Markdown
A latência de ponta a ponta é tipicamente 1,5–2 segundos incluindo liquidação. As chaves privadas da via wallet nunca saem da sua máquina — elas apenas assinam autorizações localmente.
Segurança
- Chave do cartão: armazenada na configuração JSON do seu cliente MCP. Qualquer pessoa com acesso de leitura a esse arquivo pode usar sua chave. Mantenha sua chave no plano gratuito ou em um plano de saldo pequeno.
- Chave da wallet (somente se você usar o caminho opcional de wallet): fica no mesmo arquivo JSON em texto simples. Qualquer pessoa com acesso ao seu diretório inicial pode drenar a wallet. Mantenha-a financiada apenas com o USDC que você está disposto a gastar em um loop descontrolado.
- Sem telemetria de saída deste pacote.
skim-mcpsó fala comskim402.com(ou o que você definir comoSKIM_API_URL). Sem analytics, sem relatórios de erro, sem phone-home.
Solução de problemas
"Nenhuma ferramenta chamada read_url aparece no Claude/Cursor."
Reinicie o cliente completamente (saia, não apenas recarregue a janela). Os servidores MCP são iniciados na inicialização do cliente. Se ainda estiver faltando, execute npx skim-mcp diretamente em um terminal — se você receber um stack trace, provavelmente é Node < 18.
"401 Unauthorized" com chave de cartão.
Seu SKIM_API_KEY é inválido ou expirou. Obtenha um novo em skim402.com/pricing.
"402 Payment Required" em loop infinito (via wallet). Sua wallet está sem USDC na mainnet da Base. Verifique o saldo no BaseScan e recarregue se necessário.
"USDC está na Ethereum, não na Base." Este é o erro de financiamento mais comum. USDC na mainnet da Ethereum não funciona — o Skim só aceita USDC na Base. Veja https://skim402.com/wallet para o passo a passo de bridge.
Links
- Site do Skim — https://skim402.com
- Preços e chave gratuita — https://skim402.com/pricing
- Guia de configuração da wallet — https://skim402.com/wallet
- Documentação da API — https://skim402.com/docs
- Protocolo x402 — https://x402.org
- Model Context Protocol — https://modelcontextprotocol.io
- GitHub — https://github.com/JessieJanie/skim402
Licença
MIT