Kael MCP Server
16 AI-native tools with dual SSE + streamable-http transport. Free tier available.
★ 1No licenseai-ml
Install
Config snippet generator goes here (5 client tabs)
README
# ⚡ Kael MCP Server
**AI-native tools for agents** — use cheap compute for web, DNS, WHOIS, screenshots, extraction, and sandboxed code execution instead of spending model tokens on guesswork.
> Kael is for tasks where an agent needs fresh external data, structured output, or real execution — not another paragraph of reasoning.
## Why this exists
LLMs are expensive at:
- fetching and cleaning live web content
- checking DNS / WHOIS / IP facts
- extracting structured data from messy pages
- executing code safely and reproducibly
- producing screenshots or binary artifacts
Kael turns those jobs into **real tools with JSON output**.
## Best fit
Use Kael MCP when your agent needs:
- **fresh data** from the web or internet infrastructure
- **structured results** instead of prose
- **deterministic execution** instead of model simulation
- **lower token burn** on repetitive utility work
- **small tool outputs** that are easier to feed back into a model
Do **not** use Kael MCP when:
- the task is pure reasoning or writing
- the data is already in context
- a local tool already solves the problem cheaper/faster
- you need a full browser workflow with human-style interaction across many steps
## Included tools
### Web and content
- `web_fetch` — URL → clean readable markdown/text
- `web_search` — real-time search results
- `html_extract` — HTML/page content → structured data
- `screenshot` — webpage → PNG screenshot
- `pdf_extract` — PDF → extracted text
- `url_unshorten` — resolve shortened links safely
### Internet and infrastructure
- `dns_lookup` — A, AAAA, MX, TXT, NS, CNAME, SOA, SRV records
- `whois` — domain registration data
- `ip_geo` — IP geolocation and network info
### Data and utility
- `code_run` — execute JavaScript, Python, or Bash in a sandbox
- `text_diff` — compare text versions
- `json_query` — query/filter JSON data
- `hash_text` — compute common hashes
## Tool selection guide
| Tool | Use when | Avoid when |
|---|---|---|
| `web_fetch` | You need readable page content for summarization or downstream extraction | You need pixel-perfect rendering or JS-heavy interaction |
| `web_search` | You need fresh discovery across the web | You already know the exact URL |
| `html_extract` | You need tables, lists, metadata, or page structure as data | Plain cleaned text is enough |
| `screenshot` | You need visual verification, layout evidence, or image output | Text content alone is enough |
| `dns_lookup` | You need factual DNS records now | Static knowledge is acceptable |
| `whois` | You need domain ownership/registration details | DNS records alone answer the question |
| `ip_geo` | You need IP location/ASN/ISP context | You only need DNS or hostname resolution |
| `code_run` | You need actual execution, parsing, transformation, or calculation | The task is simple enough to do directly in-model |
| `pdf_extract` | The source is a PDF and you need text back | The source is already HTML/text |
| `url_unshorten` | You need to inspect where a short link resolves | You already trust and know the final URL |
| `text_diff` | You need a concrete change set between two texts | You just need a summary |
| `json_query` | You need to filter/reshape JSON before reasoning | The JSON is already tiny and easy to inspect |
| `hash_text` | You need a deterministic fingerprint/checksum | Semantic comparison matters more than exact bytes |
## Quick start
### Server endpoints
Kael supports two MCP transports:
| Transport | URL | Best for |
|---|---|---|
| SSE | `https://www.kael.ink/mcp/sse` | Broad client compatibility |
| Streamable HTTP | `https://www.kael.ink/mcp/stream` | Newer clients, simpler connection model |
Use SSE if your client doesn't specify a preference. Use streamable-http if your client supports the 2025-03-26+ MCP protocol version.
Health check:
```text
https://www.kael.ink/mcp/health
```
### Claude Desktop
Add this to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"kael-tools": {
"url": "https://www.kael.ink/mcp/sse"
}
}
}
```
Or use streamable-http if your Claude Desktop version supports it:
```json
{
"mcpServers": {
"kael-tools": {
"type": "streamable-http",
"url": "https://www.kael.ink/mcp/stream"
}
}
}
```
### Claude Code
Add Kael as a remote MCP server:
```bash
claude mcp add kael-tools --transport sse https://www.kael.ink/mcp/sse
```
Or add to `.claude/settings.json`:
```json
{
"mcpServers": {
"kael-tools": {
"type": "sse",
"url": "https://www.kael.ink/mcp/sse"
}
}
}
```
Good first checks in Claude Code:
1. connect Kael and confirm the server appears in MCP tool listings
2. ask Claude to run `dns_lookup` for `example.com` MX records
3. ask Claude to use `web_fetch` on a live page and summarize it
Example evaluator prompt:
> Use the `dns_lookup` tool from the Kael MCP server to get MX records for example.com, then use `web_fetch` on https://modelcontextprotocol.io and give me a short summar