WebToolsHub

WebToolsHub

MCP server providing domain name checking and other web tools, accessible via MCP, REST API, and CLI for AI assistants.

Category
Visit Server

README

<div align="center">

WebToolsHub

Free, open-source web tools you can use inside your AI

Every tool runs in your browser, ships with a command line, and connects to Claude, ChatGPT, Gemini and Kimi through MCP and a REST API. First tool live: Domain Name Checker.

Built by Konko Maji · MIT licensed

Works with: Claude · ChatGPT / OpenAI · Gemini · Kimi · Cursor · Windsurf · any MCP client

</div>


The differentiator: use it inside your AI

Most domain checkers are a website and nothing more. WebToolsHub also speaks the Model Context Protocol (MCP) and ships a REST API, so your AI assistant can check domains for you. Connect once, then just ask.

  • Local MCP (mcp_server.py) - stdio, zero dependencies. Works with Claude Desktop, Claude Code, Gemini CLI, Cursor, Windsurf, Kimi, and any MCP client. Nothing to host.
  • Remote MCP (mcp_http.py or the Vercel function /api/mcp) - connect web assistants (Claude.ai, ChatGPT) by URL.
  • REST API (/api/check) - call it from anything. OpenAPI schema in openapi.yaml.

Full setup for every platform: CONNECTORS.md and the on-site Connect to AI guide.

# 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.py

Live tools

Tool What it does Status
Domain Name Checker (/domain-name-checker/) Check if a domain name is available across all common TLDs at once, or in bulk. Priority on .com and .in. Live
WHOIS Lookup Registration, registrar, and expiry details Planned
DNS Checker A, MX, NS, TXT records from multiple resolvers Planned
Domain Name Generator Brandable name ideas plus instant availability Planned
SSL Checker Certificate issuer and expiry Planned
Website Speed Test Load time and core web vitals Planned

Domain Name Checker

The flagship tool answers one question: is a domain available to register, or taken?

  • Single check across about 20 common TLDs in one action.
  • Bulk check up to 200 names from a pasted list or an uploaded .txt / .csv file.
  • .com and .in priority, always shown first.
  • Accurate: authoritative RDAP registry data first, DNS cross-check second. Unconfirmed results are marked unknown, never guessed, so no false positives.
  • CSV export, register links, filters, mobile friendly, Material 3 light UI.

Project structure

webtoolshub/                     (repo root = the hub)
  index.html                     hub homepage (lists all tools)
  domain-name-checker/
    index.html                   the Domain Name Checker tool page
  connect/
    index.html                   Connect-to-AI guide (SEO page)
  checker.py                     domain availability logic (RDAP + DNS)
  cli.py                         one CLI for every tool (subcommands)
  server.py                      local dev server (serves pages + /api)
  mcp_server.py                  local MCP server (stdio) for AI clients
  mcp_http.py                    remote MCP server (HTTP) for web AI clients
  api/
    check.py                     Vercel function: REST API
    mcp.py                       Vercel function: remote MCP endpoint
  vercel.json  requirements.txt  one-deploy hosting on Vercel
  openapi.yaml                   REST API schema (GPT Actions / Gemini)
  og-image.svg
  robots.txt  sitemap.xml  llms.txt   (SEO / AEO / GEO)
  CONNECTORS.md                  connect to Claude, ChatGPT, Gemini, Kimi
  .github/workflows/deploy.yml   GitHub Pages deploy
  LICENSE  CONTRIBUTING.md  .gitignore  .nojekyll

Each tool lives in its own folder so it gets its own indexable, keyword-targeted URL. This is the pattern every future tool follows.

Command line

One CLI, one subcommand per tool.

# domain availability (live)
python cli.py domain mycoolsite
python cli.py domain mycoolsite --tlds com,in,io,ai

# bulk from a file, .com and .in only, available ones as CSV
python cli.py domain --file names.txt --tlds com,in --available --csv > free.csv

# read names from stdin, JSON output
cat names.txt | python cli.py domain --file - --json

domain flags: -f/--file, -t/--tlds, -a/--available, --json, --csv, --no-color. Exit code is 0 when at least one domain is available, else 1, so it scripts cleanly.

Run locally with the RDAP backend

python server.py
# hub:  http://localhost:8000/
# tool: http://localhost:8000/domain-name-checker/

The tool page auto-detects the backend and uses RDAP for the most accurate results. On GitHub Pages there is no backend, so it runs fully client-side via DNS-over-HTTPS.

How availability is decided

  1. RDAP registry lookup. 200 means registered (taken), 404 means possibly free.
  2. DNS cross-check. If the domain resolves, it is taken even when RDAP said free (catches TLDs with no RDAP server).
  3. Only with no registration record and no DNS record is a domain available.
  4. If nothing authoritative can confirm it, the result is unknown, never a false positive.

Deploy everything on one URL (Vercel, recommended)

GitHub Pages is static and cannot run the API or remote MCP endpoint. Vercel runs the Python as-is, so one deploy hosts the website, the REST API, and the remote MCP connector on a single domain.

  1. Push this repo to GitHub.
  2. Import it at vercel.com/new (no settings needed, vercel.json is included).
  3. You get:
    • Website: https://webtoolshub-blond.vercel.app/
    • REST API: https://webtoolshub-blond.vercel.app/api/check?name=mycoolsite&tlds=com,in
    • Remote MCP: https://webtoolshub-blond.vercel.app/api/mcp

Cloudflare Pages works too, but Workers run JavaScript, so it would need a small port of checker.py to JS. Ask if you want that version.

Deploy the website only (GitHub Pages)

  1. Create a GitHub repo named webtoolshub and push this folder.
  2. In Settings > Pages, set the source to GitHub Actions.
  3. The included workflow publishes on every push to main.
  4. Live at https://<username>.github.io/webtoolshub/.

One required edit: replace konkomaji with your GitHub username everywhere it appears (index.html, domain-name-checker/index.html, robots.txt, sitemap.xml, llms.txt). Do it in one pass:

grep -rl konkomaji . | xargs sed -i 's/konkomaji/your-github-username/g'

If you later buy a domain, the planned one is webtoolshub.in. Point it at Pages and swap the github.io/webtoolshub base URLs for webtoolshub.in.

SEO, AEO and GEO

  • Per-tool folders and keyword-targeted titles, descriptions, and H1s.
  • Structured data: WebSite, ItemList, WebApplication, BreadcrumbList, HowTo, FAQPage.
  • Open Graph and Twitter cards with a share image.
  • robots.txt (allows AI crawlers), sitemap.xml, and llms.txt.
  • Visible FAQ and how-to content for answer engines.

Requirements

Python 3.8 or newer. No packages to install. No build step.

Fork and self-host

WebToolsHub is fully open source. Fork it, download it, and run your own copy.

  1. Fork https://github.com/konkomaji/webtoolshub or download the ZIP.
  2. Run locally with python server.py, or deploy your own copy to Vercel (see above).
  3. If you host under a different URL, update the base URLs in index.html, domain-name-checker/index.html, connect/index.html, robots.txt, sitemap.xml, and llms.txt.

Contact

  • Feature requests, bug reports, and feedback: work.konkomaji@gmail.com
  • Or open an issue at https://github.com/konkomaji/webtoolshub/issues
  • 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured