# Fixed Deep research and web fetch in Claude Code : full open source

> Source: <https://github.com/kunal12203/webify-mcp>
> Published: 2026-07-16 19:07:59+00:00

**Adaptive web research for AI coding agents**

91% of Deep Research quality · 5% of the cost · Works in every MCP client

A skill by [GrapeRoot](https://graperoot.dev)

**Docs:** [中文](/kunal12203/webify-mcp/blob/master/docs/README.zh-CN.md) · [日本語](/kunal12203/webify-mcp/blob/master/docs/README.ja.md) · [한국어](/kunal12203/webify-mcp/blob/master/docs/README.ko.md) · [Español](/kunal12203/webify-mcp/blob/master/docs/README.es.md) · [हिन्दी](/kunal12203/webify-mcp/blob/master/docs/README.hi.md) · [Français](/kunal12203/webify-mcp/blob/master/docs/README.fr.md) · [Deutsch](/kunal12203/webify-mcp/blob/master/docs/README.de.md) · [Português](/kunal12203/webify-mcp/blob/master/docs/README.pt-BR.md) · [Русский](/kunal12203/webify-mcp/blob/master/docs/README.ru.md)

```
pip install webify-mcp
claude mcp add webify -- webify-mcp
```

That's it. Works in Claude Code, Cursor, VS Code, Windsurf, and Zed.

``` php
flowchart TB
    Agent[AI Agent] -->|"web_find('query')"| Webify
    Agent -->|"web_lookup(url, 'query')"| Webify
    Webify -->|"80–300 tokens"| Agent
    
    subgraph Webify[Webify MCP Server]
        Search[Search\nBrave / DDG] --> Graph[DOM Structural\nGraph Builder]
        Graph --> Retrieve[BM25 + BFS\nRetrieval]
        Retrieve --> Synthesize[Haiku\nSynthesis]
    end

    style Webify fill:#1a1a2e,stroke:#16213e,color:#fff
    style Agent fill:#0f3460,stroke:#16213e,color:#fff
```

Two tools for web research — both dramatically cheaper than reading full pages:

| Tool | When to use | Cost |
|---|---|---|
`web_find(query)` |
Research questions, anything needing search | ~$0.003/query |
`web_lookup(url, query)` |
You know the exact URL | ~$0.0005/query |

``` php
flowchart LR
    A[Query] --> B[Search\nBrave / DDG]
    B --> C1[Page 1]
    B --> C2[Page 2]
    B --> C3[Page 3–6]
    C1 --> D[DOM Graph\n+ BM25]
    C2 --> D
    C3 --> D
    D --> E[Multi-aspect\nextraction]
    E --> F[Haiku\nsynthesis]
    F --> G["Answer\n(~800 tokens)"]
```

Adapts depth to query complexity. Simple questions hit 3 sources. Multi-dimensional research scales to 6+ with independent sub-aspect retrieval. Call it multiple times with focused sub-queries for deep-research-level coverage.

``` php
flowchart LR
    A[URL + Query] --> B[Fetch page]
    B --> C[DOM structural\ngraph]
    C --> D[BM25 scoring]
    D --> E[BFS traversal]
    E --> F["Relevant subtree\n(80–300 tokens)"]
```

Scores nodes against your query, returns only the relevant subtree — 80–300 tokens instead of the 3,000–15,000 tokens of full page text WebFetch puts in context.

Blind A/B test against Claude's Deep Research — 15 unseen queries, randomized order, Sonnet judge scoring accuracy + completeness + specificity (1–5 each).

| Webify | Deep Research | |
|---|---|---|
Quality |
68/75 · 91% | 73/75 · 97% |
Cost/query |
~$0.003 | ~$0.05+ |
Latency |
30–90s | 80–280s |
Cost efficiency |
18× better |
baseline |

Webify finds correct information every time. The gap is always completeness — Deep Research reads more. For most queries that difference doesn't matter; for exhaustive research, call `web_find`

multiple times.

## Per-query breakdown

| Query | Webify | Deep Research |
|---|---|---|
| Battery degradation | 13/15 | 15/15 |
| OAuth vs OIDC | 13/15 | 15/15 |
| Coral reef bleaching | 14/15 | 15/15 |
| CRISPR gene editing | 15/15 |
13/15 |
| Earthquake & tsunamis | 13/15 | 15/15 |

Once installed, the AI automatically uses Webify for web research instead of expensive built-in tools — no configuration needed. The preference policy is embedded in the package itself.

```
> What are the tradeoffs between Raft and Paxos consensus?
→ Claude calls web_find() — searches, builds graphs, synthesizes answer

> Look up rate limits in the GitHub API docs
→ Claude calls web_lookup() — fetches that page, returns relevant sections only
pip install webify-mcp
claude mcp add webify -- webify-mcp
```

Add to your MCP config:

```
{
  "mcpServers": {
    "webify": {
      "command": "webify-mcp"
    }
  }
}
```

Config file locations:

**Cursor**→`~/.cursor/mcp.json`

**Windsurf**→`~/.windsurf/settings.json`

**VS Code / Continue**→`~/.continue/config.json`

**Zed**→`~/.config/zed/settings.json`

**Command:**`webify-mcp`

**Transport:** stdio

```
pip install --upgrade webify-mcp
```

| Env var | Required | Description |
|---|---|---|
`ANTHROPIC_API_KEY` |
For `web_find` |
Haiku synthesis |
`BRAVE_SEARCH_API_KEY` |
Recommended | Reliable search ·
|

`WEBIFY_CACHE_DIR`

`~/.cache/webify`

**Search:** Brave API (if key set) → DuckDuckGo Lite (free fallback, no key needed)

**macOS / Linux** — add to `~/.zshrc`

or `~/.bashrc`

:

```
export ANTHROPIC_API_KEY="sk-ant-..."
export BRAVE_SEARCH_API_KEY="BSA..."
```

**Windows (PowerShell):**

```
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User")
[Environment]::SetEnvironmentVariable("BRAVE_SEARCH_API_KEY", "BSA...", "User")
```

**In your MCP config** (applies only to Webify):

```
{
  "mcpServers": {
    "webify": {
      "command": "webify-mcp",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "BRAVE_SEARCH_API_KEY": "BSA..."
      }
    }
  }
}
```

Get your keys:

- Anthropic →
[https://console.anthropic.com/settings/keys](https://console.anthropic.com/settings/keys) - Brave Search →
[https://brave.com/search/api/](https://brave.com/search/api/)

```
# Build a graph for a URL
python -m webify build https://docs.python.org/3/library/json.html

# Look up specific info
python -m webify lookup https://docs.python.org/3/library/json.html "parse JSON string"
python
import webify

# Multi-source search
result = webify.web_find("how does mTLS work in service meshes")
print(result["content"])   # synthesized answer
print(result["sources"])   # [{url, title, confidence, tokens}]

# Single-page lookup
result = webify.smart_lookup("https://docs.python.org/3/library/json.html", "parse JSON")
print(result["content"])   # relevant sections only (~376 tokens)
webify-mcp                  # test server (Ctrl+C to exit)
ls ~/.cache/webify/         # check cache
```

→ Run`webify-mcp: command not found`

`pip install webify-mcp`

**Tool not showing up**→ Restart your editor after adding to config→ Set`web_find`

errors`ANTHROPIC_API_KEY`

→ DDG rate-limited; set`web_find`

returns no results`BRAVE_SEARCH_API_KEY`
