Repository navigation
Python MCP server and CLI release from public main at a485882f72d1cebea5aa76b9bc427483bcf7da23.
This major release includes breaking changes accumulated since v3.0.1. The Claude/Codex skills plugin remains independently versioned at 1.1.5.
Migration from v3
- Update MCP calls from
jina_fetchtoweb_fetch. The legacy name remains a top-level Python alias, but is no longer a registered MCP tool. - Replace imports from the removed
web_forager.jina_fetchmodule withfrom web_forager import fetch_url, web_fetch(or imports fromweb_forager.web_fetch). - Handle
web_forager.SearchErrorfor web/news provider failures. Failures now raise an error rather than returning an empty list; successful searches with no matches still return an empty list. MCP exposes failures as tool errors, and CLI search/news commands exit with status 1. - Fetching now tries direct HTTP extraction before Jina. Direct JSON returns
url,title, andcontent; Jina JSON may contain text underdata.content. Consumers should account for both sources.with_imagesincludes images during direct extraction; generated alt text remains a Jina feature. - Jina fallback now requires an eligible public original URL and observed redirect chain. URLs with user information, query strings, or fragments, private/internal hosts, unresolved or mixed DNS, and unestablished redirect chains prevent forwarding. Use
allow_jina=Falseor CLI--direct-onlyfor confidential resources. max_lengthuses character paging with continuation markers or JSON metadata. Continue withoffset/CLI--offset; compare offsets only for an unchanged page from the same source.- Supported Python versions are 3.10–3.13 (
>=3.10,<3.14). Dependency requirements have been updated, including FastMCP 3.2+, Requests 2.33+, Pydantic 2+, and trafilatura 2+.
Fixes and additions
- Direct HTTP content extraction with trafilatura and permitted Jina recovery when retrieval, extraction, or minimum-content checks fail.
- Metadata-only extraction errors preserve usable direct content with an empty title.
- Diagnostics omit complete search queries and redact URLs and signed request paths. Debug mode retains application diagnostics while limiting dependency and FastMCP logs.
python -m web_foragernow propagates command failure status consistently withweb-forager.- Direct-only fetching, observed-redirect forwarding safeguards, character paging, and sanitized retrieval/search errors.
- Updated dependency pins, build-time Python version generation, documentation, and regression coverage.
All tests, mypy, Black, and isort passed on the release commit in public CI. The release workflow builds the tag and publishes the Python package to PyPI.
Full comparison: v3.0.1...v4.0.0