smallapis

Give your agent eyes on the web.

A remote MCP server, no install and no npm package. Point a client at one URL and it gets 13 tools: look at a page, read a page, audit a domain, read an image, draw a QR code.

Connect it

Streamable HTTP, stateless. Works with any MCP client that accepts a remote server URL.

{
  "mcpServers": {
    "smallapis": {
      "type": "http",
      "url": "https://173-249-18-142.sslip.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SMALLAPIS_KEY"
      }
    }
  }
}

Leave the header out entirely and the server answers on the demo quota, which is enough to decide whether you want it.

Claude Code

claude mcp add --transport http smallapis https://173-249-18-142.sslip.io/mcp \
  --header "Authorization: Bearer $SMALLAPIS_KEY"

Check it by hand

curl -X POST https://173-249-18-142.sslip.io/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

The 13 tools

ToolWhat it does
screenshot_urlScreenshot any page, cookie banners hidden
read_pageRead a page after JavaScript, as clean text
url_to_pdfPrint a page to PDF
check_mail_securityAudit a domain for SPF, DKIM and DMARC, graded A-F
check_tls_certificateCertificate, chain and days before expiry
check_security_headersGrade the HTTP security headers
dns_lookupResolve DNS records
domain_whoisRDAP registration data
check_domain_availabilityCheck up to 10 domains at once
check_ip_blacklistsQuery 10 DNS blacklists
ocr_imageRead the text in an image
convert_imageConvert an image to WebP, AVIF, JPEG or PNG
generate_qr_codeProduce a QR code

Every tool takes a URL rather than a file upload: an agent holds links, not bytes. The quota, the private-address guard and the job queue are the same ones the HTTP API uses, so an agent cannot do anything a normal caller could not.

Why an agent wants this

A model that can fetch HTML still cannot see a page: it misses the layout, everything rendered by JavaScript, and whatever sits behind a consent wall. screenshot_url returns an actual image and read_page returns the text a human would read.

The domain tools cover the other half: questions an agent gets asked constantly and cannot answer from training data, because the answer is whatever DNS says today.