fix: MCP research saves to file, returns compact response

Research results saved to ~/.webclaw/research/ (report.md + full.json).
MCP returns file paths + findings instead of the full report, preventing
"exceeds maximum allowed tokens" errors in Claude/Cursor.

Same query returns cached result instantly without spending credits.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Valerio 2026-04-03 16:05:45 +02:00
parent f7cc0cc5cf
commit 1d2018c98e
5 changed files with 188 additions and 28 deletions

60
Cargo.lock generated
View file

@ -655,6 +655,27 @@ dependencies = [
"subtle",
]
[[package]]
name = "dirs"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-sys"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.61.2",
]
[[package]]
name = "displaydoc"
version = "0.2.5"
@ -1417,6 +1438,15 @@ dependencies = [
"windows-link",
]
[[package]]
name = "libredox"
version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08"
dependencies = [
"libc",
]
[[package]]
name = "linux-raw-sys"
version = "0.12.1"
@ -1635,6 +1665,12 @@ dependencies = [
"syn",
]
[[package]]
name = "option-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "parking_lot"
version = "0.12.5"
@ -1990,6 +2026,17 @@ dependencies = [
"bitflags",
]
[[package]]
name = "redox_users"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
dependencies = [
"getrandom 0.2.17",
"libredox",
"thiserror",
]
[[package]]
name = "ref-cast"
version = "1.0.25"
@ -3055,7 +3102,7 @@ dependencies = [
[[package]]
name = "webclaw-cli"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"clap",
"dotenvy",
@ -3075,7 +3122,7 @@ dependencies = [
[[package]]
name = "webclaw-core"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"ego-tree",
"once_cell",
@ -3093,7 +3140,7 @@ dependencies = [
[[package]]
name = "webclaw-fetch"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"bytes",
"calamine",
@ -3115,7 +3162,7 @@ dependencies = [
[[package]]
name = "webclaw-llm"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"async-trait",
"reqwest",
@ -3128,8 +3175,9 @@ dependencies = [
[[package]]
name = "webclaw-mcp"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"dirs",
"dotenvy",
"reqwest",
"rmcp",
@ -3148,7 +3196,7 @@ dependencies = [
[[package]]
name = "webclaw-pdf"
version = "0.3.7"
version = "0.3.8"
dependencies = [
"pdf-extract",
"thiserror",