Skip to content

LookoutWeb answers with source-level proof.

Search and fetch citeable excerpts. No API key. The call uses the network; the result keeps the URL, the span, and the gaps.

Lookout — a lens mark
The difference

A search snippet is not the page.
An excerpt you can point at is.

A title and a URL leave the agent to paraphrase a page it never opened. Lookout returns the hit, then the fetched text, with spans a person can check. If a page is blocked, truncated, or empty, the result says so.

What a bare snippet says

“Release notes” · example.com · no table, no span, no warning if the body never arrived.

What Lookout returns

title Release notes · excerpt span · table Limit / Value / Redirects / 5 · warnings empty when the body was actually read.

One extract. Spans included.

json
{
  "status": "ok",
  "tool": "web_extract",
  "route": { "engine": "lookout-ts", "path": "html_main" },
  "warnings": [],
  "gaps": [],
  "answer": {
    "url": "https://example.com/releases",
    "title": "Release notes",
    "description": "What changed in the 2.4 client.",
    "language": "en",
    "headings": [{ "level": 1, "text": "Release notes" }],
    "tables": [{ "rows": [["Limit", "Value"], ["Redirects", "5"]] }],
    "spans": [
      { "kind": "title", "text": "Release notes" },
      { "kind": "meta_description", "text": "What changed in the 2.4 client." },
      { "kind": "excerpt", "text": "Release notes The 2.4 client adds citeable excerpts. See the table for the default limits. Limit Value Redirects 5" }
    ]
  }
}

Excerpt of a real web_extract result for tests/fixtures/sample-release-notes.html (the heading span is omitted here). The page in that file is sample HTML, not a live site. Fetch reads the HTTP body. It does not run JavaScript.

How it works

Three steps from a question to a citation

Step 1

Add it to your agent

One npx line. A stdio MCP server starts for Claude, Cursor, VS Code, Codex, or any other MCP client.

Step 2

Search, then open the page

web_search ranks public hits. web_fetch or web_extract reads the page you mean to cite. Neither call runs a multi-step research pass.

Step 3

Cite the span

Use the URL, the excerpt, and the warnings. If they are empty, do not invent the page.

What you call

Search and fetch first. The rest is named.

The everyday tools are web_search, web_fetch, and web_extract. Cache, crawl, diff, and multi-step research are separate tools. Nothing calls them for you.

web_search

Queries DuckDuckGo HTML, Wikipedia, the npm registry, and Hacker News. Ranked hits name the adapter. No API key.

web_fetch

Reads one HTTP response. Private addresses are rejected. Redirects, size, and timeout are capped. A prefix span cites the body.

web_extract

Title, description, headings, links, JSON-LD, tables, and spans from HTML you pass or from a URL it fetches first.

web_cache

Query, stats, clear, or prune the on-disk cache. A cache hit replays an earlier response. It is not a search of the web.

web_crawl

Same-origin only. Default depth 1 (max 3) and 10 pages (max 25). Robots are honored unless you turn that off.

web_research and web_diff

web_research searches, then fetches the top pages (default 3, max 6). web_diff reports added and removed words. Call them by name.

Limits

The defaults are the caps, not a benchmark.

4
public search adapters on every web_search: DuckDuckGo HTML, Wikipedia OpenSearch, the npm registry, Hacker News Algolia
None
API key on that path. A failed adapter is a warning, not a hidden success.
1,500,000
byte default fetch cap. The default timeout is 20 seconds.
5
redirects, then fetch stops. Loopback, link-local, and other private addresses are rejected.

These are the limits in the current search and fetch path, not a measured speed claim. A repeated call can be served from the on-disk cache. The first search still needs the network. Lookout does not render a page in a browser and does not write a model summary.

Install

bash
npx -y @sylphx/lookout
json
{
  "mcpServers": {
    "lookout": { "command": "npx", "args": ["-y", "@sylphx/lookout"] }
  }
}
bash
claude mcp add lookout -- npx -y @sylphx/lookout
bash
npx -y @sylphx/lookout

Search the page. Cite the span.

No API key. web_search and web_fetch are the call. Multi-step research stays a tool you name.

Read the quickstart Star the repo

MIT licensed · search and fetch, no API key · these docs load no remote assets