Dev & Engineering mcp-serverweb-searchweb-crawlingweb-scrapingstructured-extractionlocal-cachetypescript-sdkrest-api

wigolo

Local-first web search, retrieval, and crawling for coding agents.

FollowAgents review · FARS-2.1
Not recommended
54/ 100 5-point scale 2.7 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust12 / 29 · 2.1/5

Evidence shows: README claims local-first, data stays in ~/.wigolo/, REST server binds loopback by default and requires token, but no code-level verification. Deductions: lack of concrete implementation details for least privilege, user confirmation mechanism not explicit, sensitive data handling (e.g., API key storage) only mentioned, dependency security lacks audit or vulnerability scanning evidence, external effects (e.g., network requests) not detailed, rollback mechanism not mentioned, source attribution partially present (e.g., citation IDs and byte offsets).

2Reliability8 / 14 · 2.9/5

Evidence shows: README and package.json descriptions are consistent, tool list and feature descriptions are self-consistent, failure messages have examples (e.g., blocked_by_challenge). Deductions: dependency availability not verified, comprehensiveness of failure messages not fully demonstrated.

3Adaptability12 / 18 · 3.3/5

Evidence shows: README clearly identifies target users (AI coding agents) and multiple usage scenarios (MCP, REST, SDK), capability boundaries described (e.g., tool list), trigger precision explained (e.g., query arrays, deep search), environment fit explained (Node ≥20, multi-platform). Deductions: some capability boundaries (e.g., limitations) not detailed.

4Convention10 / 18 · 2.8/5

Evidence shows: README structure is clear, installation notes detailed, naming stable (tool names consistent), examples and FAQ present, known limitations mentioned (e.g., beta status), license is AGPL-3.0, version number exists, maintenance responsibility stated (author and feedback channels). Deductions: version changelog not provided, naming stability not fully verified.

5Effectiveness9 / 13 · 3.5/5

Evidence shows: output format has examples (JSON structure), marginal value explained (comparison table), cost-benefit explained ($0/query). Deductions: output usability not actually tested, marginal value claims not independently verified.

6Verifiability3 / 8 · 1.9/5

Evidence shows: claims in README (e.g., benchmark) are described, but no reproducible detailed data provided, cross-source verification insufficient, facts and inferences not clearly separated. Deductions: claim traceability weak, lack of independent verification.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision b3ccf92be3ac
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • This repository is in public beta, features may be unstable, use with caution in production.
  • Many dependencies, including native modules, may cause platform compatibility issues during installation and runtime.
  • Although claimed local-first, optional LLM integration sends data to third parties, please configure explicitly.
Review evidence [1][2][3][4][5][6][7][8]
See the full review method →

What does this agent do, and when should you use it?

wigolo is a local-first web intelligence layer for AI coding tools and other MCP clients. A single Node process exposes MCP over stdio, REST, a CLI, TypeScript and Python SDKs, while keeping its cache, embeddings, models, and configuration under `~/.wigolo/`. Its tool surface includes search, fetch, crawl, structured extraction, cache queries, similar-page discovery, research reports, autonomous gathering, page diffs, and watches. Search combines 18 direct adapters, rank fusion, and on-device ML reranking, while fetch can escalate from HTTP to a headless browser based on observed page signals. Core retrieval and collection are keyless, but synthesized output from `research`, `agent`, and answer-form search requires a configured external or local-compatible LLM provider.

search sends queries across multiple search engines and returns titles, URLs, verbatim excerpts, citation_id values, source_span offsets, evidence scores, and freshness signals. fetch loads one URL, escalating from HTTP to a browser when needed, and produces cleaned Markdown, metadata, and links; crawl traverses pages with BFS, DFS, sitemap, or map-only modes while respecting robots.txt and per-domain rate limits. extract returns tables, metadata, JSON-LD, brand identity, named schemas, or results matching a custom JSON Schema; cache searches previously seen material by keyword or hybrid semantic retrieval, while find_similar fuses keyword, semantic, and live-web signals. research decomposes a question, gathers sources, and returns a cited report or evidence brief; agent runs a plan → search → fetch → extract → synthesize loop. diff and watch identify page changes and can deliver updates to a webhook.

  1. A developer using Claude Code, Codex, or Cursor can configure wigolo as an MCP server so the coding assistant can search documentation, fetch pages, and return source-pinned evidence.
  2. A team operating a self-hosted developer assistant can run wigolo serve and connect its local REST API to an existing automation flow.
  3. An engineer collecting fields from public documentation or product pages can use extract for tables, JSON-LD, metadata, or a custom JSON Schema.
  4. A TypeScript, Python, LangChain, CrewAI, LlamaIndex, or Vercel AI SDK user building retrieval features can integrate the documented SDK or framework wrapper.
  5. A researcher or operations user monitoring a public page can fetch it initially, then use diff or watch to detect and deliver later changes.

What are this agent's strengths and limitations?

Pros
  • One tool surface is available through MCP, REST, CLI, TypeScript, Python, and documented framework wrappers, covering several integration boundaries.
  • Search results expose verbatim excerpts, byte-offset source_span values, citation IDs, evidence scores, and engine telemetry rather than only ranked links.
  • Its search path combines 18 direct adapters, rank fusion, and on-device ML reranking, with a persistent local cache supporting keyword and hybrid semantic retrieval.
  • The fetch router escalates on signals such as SPA markers, challenge bodies, or thin content, and labels blocked or degraded outcomes.
Limitations
  • Initial setup requires Node.js 20+, a browser engine, and local models; the documentation estimates roughly 1.5 GB of disk space.
  • Research, autonomous gathering, and answer-form search depend on LLM synthesis; without a provider they return an evidence brief rather than finished prose.
  • Public search backends and challenge-protected sites can degrade or fail; the documentation notes that datacenter IP reputation may prevent access to some sites.
  • The project is in public beta. Its README identifies AGPL-3.0-only, while the supplied repository metadata says NOASSERTION, so adopters should verify the license file.

How do you install or deploy this agent?

Requires Node.js 20 or later and about 1.5 GB of free disk space. On macOS, Linux, or Windows, run: npx wigolo init. To initialize and wire supported coding tools in one step, run: npx wigolo init --agents=claude-code,cursor. Verify the local engine with npx wigolo doctor. Search, fetch, crawl, extract, cache, and find-similar need no credentials. To have research, agent, or search format=answer write synthesized answers, configure WIGOLO_LLM_PROVIDER=gemini and GEMINI_API_KEY=<free-key>; Anthropic, OpenAI, Groq, and Ollama are also documented provider options.

How do you use this agent?

After initialization, run a CLI query with: wigolo search "local-first web search" --json. To expose a local HTTP service, run wigolo serve, then call: curl -sX POST http://127.0.0.1:3333/v1/search -H 'Content-Type: application/json' -d '{"query":"local-first software","max_results":5}'. The server defaults to 127.0.0.1:3333; binding beyond loopback requires a bearer token. Any MCP client can register npx -y wigolo in its MCP configuration.

How does this agent compare with similar options?

The README compares wigolo with Firecrawl, Exa, and Tavily. All are listed with multi-engine search and fetch/structured extraction, while wigolo is additionally listed with whole-site crawl/map, persistent local memory, byte-offset evidence excerpts, explainable per-result scoring, and a core path without an account or API key. The same documentation notes that paid services can still be stronger for some deep-extraction edge cases.

FAQ

Do the core capabilities require an API key?
No. The README describes search, fetch, crawl, extract, cache, and find-similar as keyless. Synthesized writing can optionally use Gemini, Anthropic, OpenAI, Groq, or Ollama.
Does it send retrieved data to a cloud service?
The README states that cache, embeddings, models, and configuration live under ~/.wigolo/, and says third-party transmission occurs only when an LLM is explicitly selected for synthesis.
What happens with anti-bot protection or dynamic pages?
fetch can escalate from HTTP to a headless browser and reuse domain-level clearances. If a challenge remains unsolved, it reports a blocked_by_challenge failure instead of treating the challenge page as content.
Can it serve remote or multiple clients?
Yes. wigolo serve exposes REST plus /mcp and /sse. It defaults to loopback access, and a non-loopback bind requires a bearer token.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents