WebToolsHub
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WebToolsHubcheck if example.com is available"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WebToolsHub
AI-native web tools that run inside your AI
Twelve free, open-source tools for domains and websites. Every tool runs in your browser, ships with a command line, and plugs into Claude, ChatGPT, Gemini and Kimi through one MCP connector and a REST API. Connect once, then just ask your AI.
Built by Konko Maji · MIT licensed
Works with: Claude · ChatGPT / OpenAI · Gemini · Kimi · Cursor · Windsurf · any MCP client
Live: https://webtoolshub-blond.vercel.app/ · Source: https://github.com/konkomaji/webtoolshub
The idea: tools that run on your AI
Most web tools are a website and nothing more. WebToolsHub also speaks the Model Context Protocol (MCP) and ships a REST API, so your AI assistant can run every tool for you. It is one connector: set it up once and your AI gets all twelve tools, no per-tool wiring.
One MCP connector (
mcp_server.pylocally, or the hosted/api/mcp) exposes all 13 tool functions.REST API for anything that speaks HTTP. Four core tools have direct paths; the rest run through a single
/api/tool?name=...dispatcher. OpenAPI schema inopenapi.yaml.CLI with one subcommand per tool.
# try the local MCP server by hand
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| python mcp_server.pyFull setup for every platform: CONNECTORS.md and the on-site Connect to AI guide.
Related MCP server: domain-mcp
The twelve tools
Tool | Page | What it does |
Domain Name Checker |
| Availability across all common TLDs at once, or in bulk. Priority on .com and .in. |
WHOIS Lookup |
| Full RDAP record: registrar, dates, status, nameservers, DNSSEC, contacts. |
DNS Checker |
| A, AAAA, CNAME, MX, NS, TXT, SOA, CAA records over DNS-over-HTTPS, with TTLs. |
SSL Checker |
| TLS certificate: issuer, expiry, days left, SAN, TLS version, validity. |
Email Auth Checker |
| SPF, DMARC, DKIM and MX analysis with a spoofing-protection grade. |
Who Is Hosting |
| Hosting IP, provider, ASN, country and reverse DNS (DNS + RDAP for IPs). |
DNS Propagation |
| One record across Google, Cloudflare, AdGuard and Quad9, with a consistency flag. |
Subdomain Finder |
| Subdomains from public Certificate Transparency logs. Passive, no scanning. |
Security Headers |
| Grades HSTS, CSP, X-Frame-Options and more, with specific fixes. |
Redirect Checker |
| Traces the full HTTP redirect chain hop by hop to the final URL. |
Domain Expiry Monitor |
| Bulk domain expiry, sorted by urgency. Built for AI renewal alerts. |
Homograph Checker |
| Punycode convert and lookalike / homograph detection (phishing defense). |
Each tool lives in its own folder so it gets an indexable, keyword-targeted URL. This is the pattern every future tool follows.
Planned: India-native tools
A set of India-first utilities, most of them pure-logic or one public API, and rarely available as AI-connected tools anywhere. They will ship as the same one-connector MCP tools.
Planned tool | What it does |
GSTIN Validator | Validate a GST number: checksum, state code and the embedded PAN. |
IFSC Lookup | Bank and branch details from an IFSC code. |
PIN Code Lookup | Area, district and state from an Indian PIN code. |
PAN Validator | Validate PAN format and structure (no data lookup, privacy-safe). |
Vehicle RTO Lookup | State and RTO office from a vehicle registration prefix. |
Want one sooner, or another India tool? Open an issue or email below.
MCP tools (the universal connector)
All served by the same mcp_server.py / /api/mcp endpoint. Connect once, get all of them.
MCP tool | Arguments | Returns |
| name, tlds? | Availability per TLD |
| names, tlds? | Availability per name and TLD |
| domain, include_raw? | Full WHOIS/RDAP record |
| domain, types? | DNS records by type |
| host, port? | SSL/TLS certificate details |
| domain, dkim_selector? | SPF/DMARC/DKIM/MX + grade |
| domain | Hosting IP, ASN, org, reverse DNS |
| domain, type? | Record across multiple resolvers |
| domain | Subdomains from CT logs |
| target | HTTP security-header grade |
| target | Full redirect chain |
| domains[] | Bulk expiry, sorted by urgency |
| domain | Punycode + homograph detection |
Example asks once connected: "Is mycoolsite free on .com and .in?", "Who hosts github.com and when does its domain expire?", "What are the MX records for example.com and is its SPF set up?", "Is the SSL cert on example.com expiring soon?", "Does xn--pypal-4ve.com look like a real brand?"
Security and reliability
Every tool takes an untrusted domain or host and then makes an outbound request
on the server, which is a classic SSRF surface. All outbound access funnels
through one hardened helper, netutil.py:
Input validation - domains and hosts are normalized (IDNA/punycode, length, label and TLD rules) before anything touches the network.
SSRF protection - a target is refused if it resolves to any private, loopback, link-local, reserved or multicast address. This blocks
127.0.0.1,10.0.0.0/8,169.254.169.254(cloud metadata) and similar. It connects to the exact validated IP to close the DNS-rebinding TOCTOU gap.Safe redirects - no downgrade to http, no redirect to an internal host.
Response caps and retries - responses are size-capped; transient 429/5xx/timeout are retried with backoff.
No crashes, no leaks - every tool returns a clean JSON error instead of raising; the API layer never leaks a stack trace.
Command line
One CLI, one subcommand per tool.
# domains and records
python cli.py domain mycoolsite --tlds com,in,io,ai
python cli.py domain --file names.txt --tlds com,in --available --csv > free.csv
python cli.py whois github.com --json
python cli.py dns github.com --types a,mx,txt
python cli.py ssl github.com
# the extended tools
python cli.py email github.com --selector google
python cli.py iphost github.com
python cli.py propagation github.com --type A
python cli.py subdomains github.com
python cli.py headers github.com
python cli.py redirects http://github.com
python cli.py portfolio google.com github.com # or --file domains.txt
python cli.py idn xn--pypal-4ve.comAdd --json to any command for the full structured record. Exit codes are
meaningful (e.g. domain returns 0 when a name is available, ssl when the cert
is valid), so commands script cleanly.
REST API
GET /api/check?name=mycoolsite&tlds=com,in # availability
GET /api/whois?domain=github.com # WHOIS (add &raw=1 for raw text)
GET /api/dns?domain=github.com&types=a,mx,txt # DNS records
GET /api/tls?host=github.com # SSL/TLS certificate
# the extended tools share one dispatcher:
GET /api/tool?name=email_auth&domain=github.com&selector=google
GET /api/tool?name=who_hosts&domain=github.com
GET /api/tool?name=dns_propagation&domain=github.com&type=A
GET /api/tool?name=find_subdomains&domain=github.com
GET /api/tool?name=security_headers&target=https://github.com
GET /api/tool?name=trace_redirects&target=http://github.com
GET /api/tool?name=portfolio_expiry&domains=a.com,b.com
GET /api/tool?name=idn_homograph&domain=xn--pypal-4ve.comRun it with python server.py (serves the site and all APIs), or deploy it. Full
schema in openapi.yaml. One dispatcher keeps the whole suite under the Vercel
serverless function limit.
Run locally
python server.py
# hub: http://localhost:8000/
# tools: http://localhost:8000/domain-name-checker/ (and every other tool folder)Browser-only tools (domain, DNS, propagation, homograph) also work fully
client-side on a static host. The rest (WHOIS raw, SSL, hosting, headers,
redirects, subdomains, expiry) use the Python backend, so run server.py or
deploy to Vercel for the full set.
Deploy everything on one URL (Vercel, recommended)
GitHub Pages is static and cannot run the API or MCP endpoint. Vercel runs the Python as-is, so one deploy hosts the website, the REST API, and the MCP connector on a single domain.
Push this repo to GitHub.
Import it at vercel.com/new (no settings needed,
vercel.jsonis included).You get:
Website + all tool pages
REST API:
/api/check,/api/whois,/api/dns,/api/tls,/api/toolMCP connector (all tools):
/api/mcp
The project uses six serverless functions (check, whois, dns, tls, tool,
mcp) to stay within the free-tier limit. Core module names are deliberately kept
distinct from the function file names to avoid Python import clashes on the
serverless runtime.
Project structure
webtoolshub/
index.html hub homepage (lists all tools)
<tool>/index.html one folder per tool (12 tools)
connect/index.html Connect-to-AI guide
netutil.py shared validation + SSRF-safe networking
checker.py domain availability (RDAP + DNS)
whoisrec.py WHOIS/RDAP record
dnslookup.py DNS records (DNS-over-HTTPS)
sslcheck.py SSL/TLS certificate (port 443)
emailauth.py SPF / DMARC / DKIM / MX
iphost.py hosting / IP / ASN / reverse DNS
propagation.py multi-resolver DNS propagation
subdomains.py subdomains via Certificate Transparency
headers.py HTTP security headers
redirects.py redirect chain tracer
portfolio.py bulk domain expiry monitor
idncheck.py punycode + homograph detection
tooldispatch.py shared dispatcher for the extended tools
cli.py one CLI for every tool
server.py local dev server (pages + all APIs)
mcp_server.py one MCP server (stdio) exposing all tools
mcp_http.py remote MCP server (HTTP)
api/ Vercel functions: check, whois, dns, tls, tool, mcp
vercel.json requirements.txt
openapi.yaml REST schema (GPT Actions / Gemini)
robots.txt sitemap.xml llms.txt (SEO / AEO / GEO)
CONNECTORS.md README.md CONTRIBUTING.md LICENSESEO, AEO and GEO
Per-tool folders with keyword-targeted titles, descriptions and H1s.
Structured data on every page:
WebSite,ItemList,WebApplication,BreadcrumbList,HowTo,FAQPage.Open Graph and Twitter cards with a share image.
robots.txt(allows AI crawlers),sitemap.xml, andllms.txtpositioning the site as AI-native web tools.Visible FAQ and how-to content on every tool for answer engines.
Requirements
Python 3.8 or newer. No packages to install. No build step. Standard library only.
Fork and self-host
WebToolsHub is fully open source. Fork it, run python server.py, or deploy your
own copy to Vercel. If you host under a different URL, replace konkomaji and the
webtoolshub-blond.vercel.app base URLs across index.html, the tool folders,
connect/index.html, robots.txt, sitemap.xml, llms.txt and openapi.yaml.
Contact
Feature requests, bug reports and feedback: work.konkomaji@gmail.com
Author: Konko Maji on LinkedIn
Trademarks (Claude, ChatGPT, OpenAI, Gemini, Kimi, Cursor) belong to their respective owners and are shown only to indicate compatibility.
License
MIT. Free to use, change and share. See LICENSE. Built by Konko Maji.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/konkomaji/webtoolshub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server