loading…
Search for a command to run...
loading…
Provides web access capabilities for LLMs including search, fetching, content extraction, PDF reading, image viewing, and screenshots.
Provides web access capabilities for LLMs including search, fetching, content extraction, PDF reading, image viewing, and screenshots.
This package provides a powerful MCP server to equip LLMs with web access, going beyond naive methods of searching, fetching and extracting content.
I created this package out of the frustration that most MCP servers enabling web access to LLMs, didn't perform as well as I hoped. Some of these shortcomings I wanted fix, include:
claude mcp add web-tools uvx mcp-web-tools
Or to also set the Brave Search API key:
claude mcp add web-tools uvx mcp-web-tools -e BRAVE_SEARCH_API_KEY=<key>
Provide a Perplexity Search API key to prioritize their fresh, citation-rich index:
claude mcp add web-tools uvx mcp-web-tools -e PERPLEXITY_API_KEY=<key>
You can mix both environment variables to fall back from Perplexity to Brave seamlessly.
The package is written in Python using powerful libraries and services under the hood to improve results.
We use the Perplexity Search API when a PERPLEXITY_API_KEY is configured. It delivers ranked snippets with citations from Perplexity's continuously refreshed index. If no Perplexity key is available, we fall back to the Brave Search API (via BRAVE_SEARCH_API_KEY), then a lightweight Google workaround, and finally DuckDuckGo. While we recommend adding at least one API key, the chained fallbacks continue working for most workloads.
The fetching of web content is based on Zendriver, a fork of nodriver for next level webscraping and performance. It should stay undetected for most anti-bot solutions and fetch content even from complex JS-based sites.
For web extraction, we use Trafilatura which consistently outperforms other alternatives for extracting content from HTML pages. For PDFs, we use PyMuPDF4LLM which similarly extracts content in an easy-to-read format for LLMs, with advanced layout support.
Rendered page previews are powered by Zendriver. The view_website tool navigates to a URL in a headless Chromium session and returns the resulting page as a PNG screenshot. By default only the current viewport is captured, but callers can request a full-page image by setting the full_page argument to true.
While it's impossible to support all pages and layouts, we thrive to make this package better over time. For unsupported sites, problems, or feature requests open an issue.
This repo includes a GitHub Actions workflow that:
uv on PRs and pushes to main.main, if project.version in pyproject.toml changed, it:uv build.v<version> with autogenerated notes.uv publish.project.version in pyproject.toml to trigger a release.Rollback:
v<version>.Выполни в терминале:
claude mcp add mcp-web-tools -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.