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.
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 mcp add --transport http smallapis https://173-249-18-142.sslip.io/mcp \
--header "Authorization: Bearer $SMALLAPIS_KEY"
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"}'
| Tool | What it does |
|---|---|
screenshot_url | Screenshot any page, cookie banners hidden |
read_page | Read a page after JavaScript, as clean text |
url_to_pdf | Print a page to PDF |
check_mail_security | Audit a domain for SPF, DKIM and DMARC, graded A-F |
check_tls_certificate | Certificate, chain and days before expiry |
check_security_headers | Grade the HTTP security headers |
dns_lookup | Resolve DNS records |
domain_whois | RDAP registration data |
check_domain_availability | Check up to 10 domains at once |
check_ip_blacklists | Query 10 DNS blacklists |
ocr_image | Read the text in an image |
convert_image | Convert an image to WebP, AVIF, JPEG or PNG |
generate_qr_code | Produce 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.
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.