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.

npm version MCP Registry License: MIT

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.

Skim in action — one URL in, clean Markdown out


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ávelObrigatóriaPadrãoNotas
SKIM_API_KEYsim (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_KEYopcionalSomente 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_USDnão0.01Somente 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_URLnãohttps://skim402.comSubstitui a URL base da API. Para self-hosting ou desenvolvimento local.
SKIM_TIMEOUT_MSnão90000Prazo 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-mcp só fala com skim402.com (ou o que você definir como SKIM_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


Licença

MIT