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

Usuários do plugin Claude

O plugin Claude neste repositório usa um servidor integrado somente com chave de cartão. Ele não executa a configuração npm/wallet abaixo. Consulte CLAUDE-PLUGIN.md para instalação, tratamento de dados, custos de crédito e verificações de revisão.


skim-mcp

Skim é o kit de ferramentas web completo para agentes de IA—não apenas um leitor de páginas simples. Obtenha uma chave de cartão gratuita em skim402.com/pricing; wallet/x402 é opcional.

npm version MCP Registry License: MIT

skim-mcp é o servidor oficial do Model Context Protocol para Skim. Ele transforma páginas públicas em Markdown limpo e pronto para agentes—tipicamente ~4x menor que o HTML bruto nas comparações medidas do Skim—e expõe o kit de ferramentas completo: leituras limpas, leituras em lote, renderização JavaScript/navegador, extração estruturada, rastreamento, PDFs, monitoramento de mudanças de página e Signals selecionados.

Caminho padrão: uma chave de API do plano de 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 por wallet x402. Se você 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 antes de integrar: use o Playground para uma leitura rápida ou o Workbench para testar lotes, extração, rastreamento, PDFs, monitoramentos e Signals.

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 isso 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 pagar 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 wallet dedicada na Base com um pequeno saldo em USDC ($1 ≈ 500 leituras). Guia de configuração: https://skim402.com/wallet.

Use uma wallet nova, não a sua pessoal. Esta chave privada fica em um arquivo de configuração em texto puro 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 wallet é opcional.

Isso é somente com wallet? Preciso de cripto?
Não. A chave de API do cartão é o padrão. O pagamento por wallet x402 é opcional.

Quais ferramentas meu agente pode chamar?
read_url, read_urls (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

Leitura em lote de 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

Rastreie um site (origem ou URL inicial) e retorne 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

Busque uma URL de PDF público e retorne 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

Consulte um Skim Signal e retorne 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.

Exige 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 de cartão (sk402_...). Obtenha uma gratuita em skim402.com / preços. Tem prioridade sobre SKIM_WALLET_PRIVATE_KEY.
SKIM_WALLET_PRIVATE_KEYopcional—Somente se você não estiver usando uma chave de cartão. Chave privada hexadecimal para uma wallet dedicada na Base que paga leituras x402 ($0,002 USDC/chamada). Ignorada quando SKIM_API_KEY está definido. Nunca use uma wallet pessoal.
SKIM_MAX_PRICE_USDnão0.01Somente no caminho wallet. Limite máximo por chamada em USD. Leituras únicas custam $0.002. Lote / extração / monitoramento custam mais — aumente isso (ex.: 0.05) se o caminho 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. Interrompe 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

Caminho do cartão (padrão):

your agent ──► skim-mcp ──► GET https://skim402.com/api/t/read?url=…
                                 Authorization: Bearer sk402_...
                                        │
                                        ▼
                                200 OK + clean Markdown

Caminho da 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 do caminho 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 wallet opcional): fica no mesmo JSON de configuração em texto puro. Qualquer pessoa com acesso ao seu diretório pessoal 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 ausente, execute npx skim-mcp diretamente em um terminal — se você receber um stack trace, provavelmente é Node < 18.

"401 Unauthorized" com chave de cartão. Sua SKIM_API_KEY é inválida ou expirou. Obtenha uma nova em skim402.com/pricing.

"402 Payment Required" em loop infinito (caminho 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. Consulte https://skim402.com/wallet para o passo a passo de bridge.


Links


Licença

MIT