{"slug": "fixed-deep-research-and-web-fetch-in-claude-code-full-open-source", "title": "Fixed Deep research and web fetch in Claude Code : full open source", "summary": "GrapeRoot released Webify MCP, an open-source tool that provides AI coding agents with adaptive web research capabilities at 91% of Deep Research quality for 5% of the cost, integrating with Claude Code, Cursor, VS Code, Windsurf, and Zed.", "body_md": "**Adaptive web research for AI coding agents**\n\n91% of Deep Research quality · 5% of the cost · Works in every MCP client\n\nA skill by [GrapeRoot](https://graperoot.dev)\n\n**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)\n\n```\npip install webify-mcp\nclaude mcp add webify -- webify-mcp\n```\n\nThat's it. Works in Claude Code, Cursor, VS Code, Windsurf, and Zed.\n\n``` php\nflowchart TB\n    Agent[AI Agent] -->|\"web_find('query')\"| Webify\n    Agent -->|\"web_lookup(url, 'query')\"| Webify\n    Webify -->|\"80–300 tokens\"| Agent\n    \n    subgraph Webify[Webify MCP Server]\n        Search[Search\\nBrave / DDG] --> Graph[DOM Structural\\nGraph Builder]\n        Graph --> Retrieve[BM25 + BFS\\nRetrieval]\n        Retrieve --> Synthesize[Haiku\\nSynthesis]\n    end\n\n    style Webify fill:#1a1a2e,stroke:#16213e,color:#fff\n    style Agent fill:#0f3460,stroke:#16213e,color:#fff\n```\n\nTwo tools for web research — both dramatically cheaper than reading full pages:\n\n| Tool | When to use | Cost |\n|---|---|---|\n`web_find(query)` |\nResearch questions, anything needing search | ~$0.003/query |\n`web_lookup(url, query)` |\nYou know the exact URL | ~$0.0005/query |\n\n``` php\nflowchart LR\n    A[Query] --> B[Search\\nBrave / DDG]\n    B --> C1[Page 1]\n    B --> C2[Page 2]\n    B --> C3[Page 3–6]\n    C1 --> D[DOM Graph\\n+ BM25]\n    C2 --> D\n    C3 --> D\n    D --> E[Multi-aspect\\nextraction]\n    E --> F[Haiku\\nsynthesis]\n    F --> G[\"Answer\\n(~800 tokens)\"]\n```\n\nAdapts 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.\n\n``` php\nflowchart LR\n    A[URL + Query] --> B[Fetch page]\n    B --> C[DOM structural\\ngraph]\n    C --> D[BM25 scoring]\n    D --> E[BFS traversal]\n    E --> F[\"Relevant subtree\\n(80–300 tokens)\"]\n```\n\nScores 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.\n\nBlind A/B test against Claude's Deep Research — 15 unseen queries, randomized order, Sonnet judge scoring accuracy + completeness + specificity (1–5 each).\n\n| Webify | Deep Research | |\n|---|---|---|\nQuality |\n68/75 · 91% | 73/75 · 97% |\nCost/query |\n~$0.003 | ~$0.05+ |\nLatency |\n30–90s | 80–280s |\nCost efficiency |\n18× better |\nbaseline |\n\nWebify 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`\n\nmultiple times.\n\n## Per-query breakdown\n\n| Query | Webify | Deep Research |\n|---|---|---|\n| Battery degradation | 13/15 | 15/15 |\n| OAuth vs OIDC | 13/15 | 15/15 |\n| Coral reef bleaching | 14/15 | 15/15 |\n| CRISPR gene editing | 15/15 |\n13/15 |\n| Earthquake & tsunamis | 13/15 | 15/15 |\n\nOnce 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.\n\n```\n> What are the tradeoffs between Raft and Paxos consensus?\n→ Claude calls web_find() — searches, builds graphs, synthesizes answer\n\n> Look up rate limits in the GitHub API docs\n→ Claude calls web_lookup() — fetches that page, returns relevant sections only\npip install webify-mcp\nclaude mcp add webify -- webify-mcp\n```\n\nAdd to your MCP config:\n\n```\n{\n  \"mcpServers\": {\n    \"webify\": {\n      \"command\": \"webify-mcp\"\n    }\n  }\n}\n```\n\nConfig file locations:\n\n**Cursor**→`~/.cursor/mcp.json`\n\n**Windsurf**→`~/.windsurf/settings.json`\n\n**VS Code / Continue**→`~/.continue/config.json`\n\n**Zed**→`~/.config/zed/settings.json`\n\n**Command:**`webify-mcp`\n\n**Transport:** stdio\n\n```\npip install --upgrade webify-mcp\n```\n\n| Env var | Required | Description |\n|---|---|---|\n`ANTHROPIC_API_KEY` |\nFor `web_find` |\nHaiku synthesis |\n`BRAVE_SEARCH_API_KEY` |\nRecommended | Reliable search ·\n|\n\n`WEBIFY_CACHE_DIR`\n\n`~/.cache/webify`\n\n**Search:** Brave API (if key set) → DuckDuckGo Lite (free fallback, no key needed)\n\n**macOS / Linux** — add to `~/.zshrc`\n\nor `~/.bashrc`\n\n:\n\n```\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"\nexport BRAVE_SEARCH_API_KEY=\"BSA...\"\n```\n\n**Windows (PowerShell):**\n\n```\n[Environment]::SetEnvironmentVariable(\"ANTHROPIC_API_KEY\", \"sk-ant-...\", \"User\")\n[Environment]::SetEnvironmentVariable(\"BRAVE_SEARCH_API_KEY\", \"BSA...\", \"User\")\n```\n\n**In your MCP config** (applies only to Webify):\n\n```\n{\n  \"mcpServers\": {\n    \"webify\": {\n      \"command\": \"webify-mcp\",\n      \"env\": {\n        \"ANTHROPIC_API_KEY\": \"sk-ant-...\",\n        \"BRAVE_SEARCH_API_KEY\": \"BSA...\"\n      }\n    }\n  }\n}\n```\n\nGet your keys:\n\n- Anthropic →\n[https://console.anthropic.com/settings/keys](https://console.anthropic.com/settings/keys) - Brave Search →\n[https://brave.com/search/api/](https://brave.com/search/api/)\n\n```\n# Build a graph for a URL\npython -m webify build https://docs.python.org/3/library/json.html\n\n# Look up specific info\npython -m webify lookup https://docs.python.org/3/library/json.html \"parse JSON string\"\npython\nimport webify\n\n# Multi-source search\nresult = webify.web_find(\"how does mTLS work in service meshes\")\nprint(result[\"content\"])   # synthesized answer\nprint(result[\"sources\"])   # [{url, title, confidence, tokens}]\n\n# Single-page lookup\nresult = webify.smart_lookup(\"https://docs.python.org/3/library/json.html\", \"parse JSON\")\nprint(result[\"content\"])   # relevant sections only (~376 tokens)\nwebify-mcp                  # test server (Ctrl+C to exit)\nls ~/.cache/webify/         # check cache\n```\n\n→ Run`webify-mcp: command not found`\n\n`pip install webify-mcp`\n\n**Tool not showing up**→ Restart your editor after adding to config→ Set`web_find`\n\nerrors`ANTHROPIC_API_KEY`\n\n→ DDG rate-limited; set`web_find`\n\nreturns no results`BRAVE_SEARCH_API_KEY`", "url": "https://wpnews.pro/news/fixed-deep-research-and-web-fetch-in-claude-code-full-open-source", "canonical_source": "https://github.com/kunal12203/webify-mcp", "published_at": "2026-07-16 19:07:59+00:00", "updated_at": "2026-07-16 19:25:29.151589+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["GrapeRoot", "Webify MCP", "Claude Code", "Cursor", "VS Code", "Windsurf", "Zed", "Deep Research"], "alternates": {"html": "https://wpnews.pro/news/fixed-deep-research-and-web-fetch-in-claude-code-full-open-source", "markdown": "https://wpnews.pro/news/fixed-deep-research-and-web-fetch-in-claude-code-full-open-source.md", "text": "https://wpnews.pro/news/fixed-deep-research-and-web-fetch-in-claude-code-full-open-source.txt", "jsonld": "https://wpnews.pro/news/fixed-deep-research-and-web-fetch-in-claude-code-full-open-source.jsonld"}}