WebToolsHub
MCP server providing domain name checking and other web tools, accessible via MCP, REST API, and CLI for AI assistants.
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.pyor the Vercel function/api/mcp) - connect web assistants (Claude.ai, ChatGPT) by URL. - REST API (
/api/check) - call it from anything. OpenAPI schema inopenapi.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/.csvfile. - .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
- RDAP registry lookup.
200means registered (taken),404means possibly free. - DNS cross-check. If the domain resolves, it is
takeneven when RDAP said free (catches TLDs with no RDAP server). - Only with no registration record and no DNS record is a domain
available. - 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.
- Push this repo to GitHub.
- Import it at vercel.com/new (no settings needed,
vercel.jsonis included). - 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
- Website:
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)
- Create a GitHub repo named
webtoolshuband push this folder. - In Settings > Pages, set the source to GitHub Actions.
- The included workflow publishes on every push to
main. - 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, andllms.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.
- Fork
https://github.com/konkomaji/webtoolshubor download the ZIP. - Run locally with
python server.py, or deploy your own copy to Vercel (see above). - 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, andllms.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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。