ask-web-fetch-mcp 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +18 -3
- data/lib/ask/web_fetch/mcp/version.rb +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ba4b67fe027c74b1e68b80af6cd6dc83479464c936f37bb558ce4b60c8811f3
|
|
4
|
+
data.tar.gz: 86f9bf7f1bab0e3d7678a966259af096593bb665d30d4abcd3121085051f891c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da671bda628d54eeb7cf60e573d5317c568516f16d3c547e48d6f8c813697f9ff9f3442c0578ad4dd360f6e08c9d0faac466710d1f32c882f2db736874f486ca
|
|
7
|
+
data.tar.gz: 8c53d1f55dc8dbc661538b65b3e1e76ac65121c6edcb6c57c94d28a87ecfc328ad5940a595ee452724f987497fdd8c32277a61a21238f7a6c03bd6eeae3e1ac0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## [0.5.0] — 2026-08-12
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
|
|
5
|
+
- `ask-web-fetch` floor raised to `>= 0.6.1`. The server exposes the tool
|
|
6
|
+
unchanged, but `ask_web_fetch` now answers with the full current stack:
|
|
7
|
+
the pooled-httpx transport (no more hangs on multi-host crawls), real
|
|
8
|
+
network-idle waits in CDP-attached mode, JS-app-shell detection that
|
|
9
|
+
fails client-rendered pages through to a rendering backend, parked-domain
|
|
10
|
+
detection on every backend (GoDaddy/Namecheap registrar ads are rejected,
|
|
11
|
+
never returned as content), and warm-and-retry challenge handling.
|
|
12
|
+
- **Failure verdicts are now classed.** When every backend fails, the tool
|
|
13
|
+
raises the most definitive class — `ParkedDomainError` beats
|
|
14
|
+
`EmptyContentError` beats a deterministic `FetchError` (every backend
|
|
15
|
+
failed dead), and any transient failure in the mix keeps the retryable
|
|
16
|
+
base `Error`. A client calling `ask_web_fetch` on a parked domain gets
|
|
17
|
+
an error naming `ParkedDomainError` instead of a generic failure, so it
|
|
18
|
+
stops retrying the unretryable. The message still lists every backend
|
|
19
|
+
and what it said.
|
|
20
|
+
|
|
1
21
|
## [0.4.1] — 2026-08-11
|
|
2
22
|
|
|
3
23
|
### Changed
|
data/README.md
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
A minimal MCP (Model Context Protocol) server that exposes
|
|
6
6
|
`Ask::Tools::WebFetch` as a callable tool over stdio. Designed for use with
|
|
7
7
|
clients that support MCP (ZCode, Claude Code, etc.), it fetches a URL and
|
|
8
|
-
returns clean markdown for LLM consumption —
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
returns clean markdown for LLM consumption — through the full ask-web-fetch
|
|
9
|
+
backend chain: the fast pure-Ruby httpx fetch first, Jina Reader and
|
|
10
|
+
self-hosted Crawl4AI in between, and a real Chrome (launched, or attached
|
|
11
|
+
over CDP) last for JS-rendered and challenge-gated pages.
|
|
11
12
|
|
|
12
13
|
## Installation
|
|
13
14
|
|
|
@@ -56,9 +57,23 @@ collisions with client-side tools of the same name, matching
|
|
|
56
57
|
The `ask-web-fetch` backend chain applies unchanged. Optional environment
|
|
57
58
|
variables:
|
|
58
59
|
|
|
60
|
+
- `ASK_WEB_FETCH_CDP_URL` — CDP endpoint of an already-running Chrome
|
|
61
|
+
(e.g. `http://127.0.0.1:9222`); routes challenge-gated pages through a
|
|
62
|
+
trusted browser that has already solved them
|
|
63
|
+
- `ASK_WEB_FETCH_CHROME_PATH` / `ASK_WEB_FETCH_PROFILE` — tune the
|
|
64
|
+
launched-browser mode (binary path, persistent profile for solved
|
|
65
|
+
cookies)
|
|
66
|
+
- `CRAWL4AI_URL` / `CRAWL4AI_TOKEN` — lead the chain with a self-hosted
|
|
67
|
+
Crawl4AI renderer (`http://localhost:11235` when unset)
|
|
59
68
|
- `JINA_API_KEY` — enables the Jina fallback with higher rate limits
|
|
60
69
|
- `DEBUG=1` — ask-mcp debug logging on stderr
|
|
61
70
|
|
|
71
|
+
When every backend fails, the error names the verdict class: terminal
|
|
72
|
+
outcomes — a parked domain (`ParkedDomainError`), a page with no usable
|
|
73
|
+
content (`EmptyContentError`), a dead URL (`FetchError`) — are never
|
|
74
|
+
retryable; transient failures (timeouts, 5xx) raise the base
|
|
75
|
+
`Ask::WebFetch::Error`.
|
|
76
|
+
|
|
62
77
|
## Full documentation
|
|
63
78
|
|
|
64
79
|
The full ask-rb documentation lives at https://ask-rb.github.io/ask-docs.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ask-web-fetch-mcp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kaka Ruto
|
|
@@ -29,14 +29,14 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.
|
|
32
|
+
version: 0.6.1
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.
|
|
39
|
+
version: 0.6.1
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: minitest
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,8 +82,12 @@ dependencies:
|
|
|
82
82
|
description: |
|
|
83
83
|
A minimal MCP (Model Context Protocol) server that exposes Ask::Tools::WebFetch
|
|
84
84
|
as a callable tool over stdio. Designed for use with clients that support MCP
|
|
85
|
-
(ZCode, Claude Code, etc.), it fetches a URL and returns clean markdown
|
|
86
|
-
|
|
85
|
+
(ZCode, Claude Code, etc.), it fetches a URL and returns clean markdown through
|
|
86
|
+
the ask-web-fetch backend chain — fast pure-Ruby httpx fetch first, a real
|
|
87
|
+
Chrome (launched or CDP-attached) for JS-rendered and challenge-gated pages,
|
|
88
|
+
with Jina Reader and self-hosted Crawl4AI in between. Terminal failures
|
|
89
|
+
(parked domains, empty pages, dead 4xx) surface as their deterministic error
|
|
90
|
+
class, so clients never retry the unretryable.
|
|
87
91
|
email:
|
|
88
92
|
- kaka@myrrlabs.com
|
|
89
93
|
executables:
|