Kael MCP Server

io.github.dreamingms由 GitHub 帳號 dreamingms 發布v1.3.0更新於 Oct 24, 2026

16 AI-native tools with dual SSE + streamable-http transport. Free tier available.

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理能抓取與搜尋網頁、擷取頁面結構與截圖、查詢 DNS/WHOIS/IP,並在沙箱中執行程式碼。

可以做什麼
抓取與搜尋網頁,從即時頁面回傳可讀的 Markdown 或文字,並安全解析短連結。從 HTML 頁面擷取結構化資料、從 PDF 擷取文字,並截取網頁截圖。查詢 DNS 記錄、透過 WHOIS 取得網域註冊資訊,以及 IP 地理位置與網路資訊。在沙箱中執行 JavaScript、Python 或 Bash,回傳標準輸出、錯誤輸出與結束碼。比較文字版本、查詢與篩選 JSON,並計算常見雜湊值。
適用情境
適合助理需要最新外部事實或即時頁面內容、而非依賴模型記憶時;適合先把雜亂頁面轉成結構化資料再推理;也適合需要真正執行計算與轉換而非模擬時。不適合純推理或寫作、資料已在上下文中,或需要多步擬人化瀏覽器操作的場景。
執行需求
遠端端點,無需本機套件或執行環境。將支援 MCP 的用戶端連線到 SSE 或 streamable HTTP 端點;README 建議用戶端無偏好時使用 SSE。需要能存取該服務的網路。未宣告驗證、環境變數或請求標頭。
安裝前請注意
此服務由第三方託管:URL、頁面內容、PDF、IP 以及傳給執行工具的任何程式碼或資料都會送到營運方伺服器。沙箱程式碼在遠端執行,請勿提交金鑰或敏感資料。README 提到免費額度,可能意味著存在付費用量限制,依賴前請確認條款。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Kael MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 SSE。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.dreamingms%2Fkael-mcp-server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "kael": {
      "type": "sse",
      "url": "https://www.kael.ink/mcp/sse"
    }
  }
}

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

ToolUse whenAvoid when
web_fetchYou need readable page content for summarization or downstream extractionYou need pixel-perfect rendering or JS-heavy interaction
web_searchYou need fresh discovery across the webYou already know the exact URL
html_extractYou need tables, lists, metadata, or page structure as dataPlain cleaned text is enough
screenshotYou need visual verification, layout evidence, or image outputText content alone is enough
dns_lookupYou need factual DNS records nowStatic knowledge is acceptable
whoisYou need domain ownership/registration detailsDNS records alone answer the question
ip_geoYou need IP location/ASN/ISP contextYou only need DNS or hostname resolution
code_runYou need actual execution, parsing, transformation, or calculationThe task is simple enough to do directly in-model
pdf_extractThe source is a PDF and you need text backThe source is already HTML/text
url_unshortenYou need to inspect where a short link resolvesYou already trust and know the final URL
text_diffYou need a concrete change set between two textsYou just need a summary
json_queryYou need to filter/reshape JSON before reasoningThe JSON is already tiny and easy to inspect
hash_textYou need a deterministic fingerprint/checksumSemantic comparison matters more than exact bytes

Quick start

Server endpoints

Kael supports two MCP transports:

TransportURLBest for
SSEhttps://www.kael.ink/mcp/sseBroad client compatibility
Streamable HTTPhttps://www.kael.ink/mcp/streamNewer 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 summary.

Why this is a good Claude Code test:

  • verifies Kael is reachable as a real MCP server
  • exercises both a factual infrastructure tool and a fresh-web retrieval tool
  • makes it obvious whether Claude is actually using tools instead of guessing

For deeper integration — including CLAUDE.md instructions, hook examples for tool routing, and project-specific patterns — see Claude Code Integration Guide.

MCP Inspector

Useful for quick validation before wiring Kael into a larger agent stack:

bash
npx @modelcontextprotocol/inspector

Then connect to:

text
https://www.kael.ink/mcp/sse

Other MCP-capable clients

If your runtime or editor lets you add a remote MCP server by URL, use one of:

TransportURL
SSEhttps://www.kael.ink/mcp/sse
Streamable HTTPhttps://www.kael.ink/mcp/stream

Adoption-friendly rule of thumb:

  • if the client asks for an MCP server URL, try the SSE endpoint first
  • if the client supports streamable-http (newer protocol), use the stream endpoint
  • if it wants a named server entry, use kael-tools
  • if it supports a quick test prompt after connecting, start with dns_lookup or web_fetch

Example generic config shape (SSE):

json
{  "mcpServers": {    "kael-tools": {      "url": "https://www.kael.ink/mcp/sse"    }  }}

Example generic config shape (streamable-http):

json
{  "mcpServers": {    "kael-tools": {      "type": "streamable-http",      "url": "https://www.kael.ink/mcp/stream"    }  }}

This same pattern is typically what you want in MCP-capable editors and agent runtimes such as Cursor, Cline, OpenCode, and similar tools that accept remote MCP servers.

Generic MCP client (Node.js)

SSE transport
javascript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(  new URL("https://www.kael.ink/mcp/sse"));
const client = new Client({ name: "my-agent", version: "1.0.0" });await client.connect(transport);
const tools = await client.listTools();console.log(tools.tools.map(t => t.name));
const dns = await client.callTool({  name: "dns_lookup",  arguments: { domain: "example.com", type: "MX" }});
console.log(dns.content);
Streamable HTTP transport
javascript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(  new URL("https://www.kael.ink/mcp/stream"));
const client = new Client({ name: "my-agent", version: "1.0.0" });await client.connect(transport);
const tools = await client.listTools();console.log(tools.tools.map(t => t.name));

Quick connection test flow

If you are evaluating whether Kael is worth adding to your stack, use this order:

  1. Hit https://www.kael.ink/mcp/health
  2. Connect your MCP client to https://www.kael.ink/mcp/sse (or https://www.kael.ink/mcp/stream for streamable-http)
  3. List tools
  4. Run one factual tool like dns_lookup or web_fetch
  5. Only then wire it into a larger agent workflow

That keeps evaluation cheap and makes failures obvious early.

Example agent tasks

1. Fetch a page for summarization

Ask your model to use web_fetch when:

  • the page is live
  • raw HTML would waste tokens
  • you want readable markdown returned first

Example prompt:

Fetch the pricing page with web_fetch, then summarize the plans and highlight any usage limits.

2. Check a domain's email setup

Ask your model to use dns_lookup when:

  • you need MX/TXT/SPF/DMARC facts
  • hallucinated infrastructure answers would be risky

Example prompt:

Use dns_lookup to inspect MX and TXT records for example.com and tell me whether email appears configured.

3. Turn a messy page into structured data

Ask your model to use html_extract when:

  • the page contains tables, lists, or repeated blocks
  • you want JSON-like structure before reasoning

Example prompt:

Load the page, extract the product table with html_extract, then compare the plans.

4. Execute code instead of simulating it

Ask your model to use code_run when:

  • exact calculation matters
  • a parser or transformation would be more reliable in code
  • the result should be reproducible

Example prompt:

Use code_run in Python to normalize this CSV and return the cleaned JSON.

Example outputs evaluators can expect

These are abbreviated examples so builders can sanity-check the shape of Kael results before integrating it into an agent loop.

dns_lookup

json
{  "domain": "example.com",  "type": "MX",  "answers": [    {      "exchange": "mx.example.com",      "priority": 10    }  ]}

Useful when you want:

  • machine-checkable infrastructure facts
  • small outputs that a model can quote directly
  • an easy first connectivity test after listTools

web_fetch

json
{  "url": "https://example.com/pricing",  "title": "Pricing",  "content": "# Pricing\n\nStarter ...\nPro ...",  "contentType": "text/markdown"}

Useful when you want:

  • readable page content instead of raw HTML
  • a compact artifact for summarization
  • a lower-token input for downstream reasoning

html_extract

json
{  "url": "https://example.com",  "headings": ["Overview", "Pricing"],  "links": [    {      "text": "Docs",      "href": "https://example.com/docs"    }  ],  "tables": [    {      "rows": [        ["Plan", "Price"],        ["Starter", "$9"]      ]    }  ]}

Useful when you want:

  • page structure as data before reasoning
  • table/list extraction without custom scraping glue
  • cleaner agent pipelines: fetch/extract first, summarize second

code_run

json
{  "language": "python",  "stdout": "[{\"name\":\"alice\",\"score\":42}]",  "stderr": "",  "exitCode": 0}

Useful when you want:

  • deterministic transforms or calculations
  • reproducible parser behavior
  • concrete execution evidence instead of simulated code reasoning

Copy-paste prompts for AI runtimes

These are short prompts you can drop into Claude, Cursor, or another MCP-capable agent to verify that Kael is wired correctly and useful for real work.

Fresh-web retrieval check

Use web_search to find the official homepage for Model Context Protocol, then use web_fetch on the best result and give me a 5-bullet summary.

Why this is a good test:

  • proves search + fetch both work
  • shows that Kael returns fresh external data instead of stale model memory
  • keeps the output small enough for a quick integration check

Minimal connection-verification prompt

List the tools available from the Kael MCP server, then run dns_lookup for example.com MX records and web_fetch on https://modelcontextprotocol.io. Return the raw tool findings first, then a short summary.

Why this is a good test:

  • confirms the client can see Kael's tool catalog
  • exercises both infrastructure lookup and live-page retrieval
  • makes it easier to tell whether the runtime is actually calling tools instead of improvising

DNS / infrastructure fact check

Use dns_lookup to get the MX and TXT records for example.com. Summarize what they imply about email setup and quote the exact records you found.

Why this is a good test:

  • verifies structured factual output
  • makes hallucinations obvious
  • matches a common real agent task

Structured extraction check

Fetch a page, then use html_extract to pull the main links, headings, and any tables into structured output before summarizing them.

Why this is a good test:

  • demonstrates that Kael is not only for plain-text retrieval
  • shows how to turn messy pages into data first, reasoning second

Execution-backed transformation check

Use code_run in Python to convert this CSV into normalized JSON, then return the JSON and a one-sentence description of what changed.

Why this is a good test:

  • confirms the agent can hand exact work to execution instead of pretending to run code
  • useful for evaluation by builders who care about reproducibility

What good tool use looks like

A strong Kael-enabled agent flow usually looks like this:

  1. discover or fetch real external data
  2. extract or transform it into a smaller structured form
  3. reason over the result instead of over raw pages, HTML, or guessed facts
  4. return compact evidence-backed output to the user or downstream agent

That pattern is usually cheaper and more reliable than asking a model to reason directly over messy live inputs.

Direct REST API

The same capabilities are also exposed as REST endpoints under https://www.kael.ink/api/.

bash
# IP geolocationcurl "https://www.kael.ink/api/ip?ip=8.8.8.8"
# Screenshot a pagecurl "https://www.kael.ink/api/screenshot?url=https://example.com"

Why Kael

  1. Built for agents — structured outputs, not UI-first flows
  2. Fresh external facts — DNS, WHOIS, search, IP data, page content
  3. Cheaper than token-heavy reasoning — especially for fetch/extract/execute tasks
  4. Standard MCP — works with Claude and other MCP-compatible runtimes
  5. Practical tool mix — internet facts, content extraction, and sandboxed execution in one server

Endpoints and links

Positioning in one sentence

Kael gives AI agents cheap, structured, real-world capabilities so they can fetch, inspect, extract, and execute instead of wasting tokens pretending to.

License

MIT

🚀 Kael Platform

This MCP server is part of the Kael Platform — an AI-native task management system with:

  • Tree-structured tasks with drag-and-drop, progress tracking, and goal linking
  • Goal management with hierarchical objectives and success criteria
  • Sandboxed script execution via Docker containers
  • Impact analysis engine (zero LLM cost, pure code analysis)
  • Docker Compose one-command deployment

👉 github.com/dreamingms/kael-platform

Try it live: kael.ink/tasks | kael.ink/goals | kael.ink/dashboard

來源:README.md,提交 cc314bd

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v1.3.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。