Commit c7c6e19
committed
fix(claw-server): admit Electron-based MCP clients past the /mcp hygiene filter
The loopback /mcp hygiene filter rejected any request carrying a
`Sec-Fetch-*` header. Chromium/Electron-based desktop MCP clients (e.g.
Cherry Studio) attach browser-default Fetch Metadata to every outgoing
request and cannot strip it, so they were blocked with
403 "unsupported request".
`Sec-Fetch-*` presence does not identify a webpage: only `Origin` does.
An MCP call is a POST with `application/json`, which is never a CORS
simple request, so any page capable of making one always carries
`Origin`, which stays rejected. The content-type gate continues to cover
the origin-less page vectors. Drop the `Sec-Fetch-*` presence check and
keep the `Origin` rejection.
Fixes #24581 parent 22a6d7e commit c7c6e19
2 files changed
Lines changed: 45 additions & 14 deletions
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
126 | | - | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
127 | 132 | | |
128 | 133 | | |
129 | 134 | | |
130 | 135 | | |
131 | 136 | | |
132 | 137 | | |
133 | 138 | | |
134 | | - | |
| 139 | + | |
135 | 140 | | |
136 | 141 | | |
137 | 142 | | |
| |||
Lines changed: 37 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
| 290 | + | |
| 291 | + | |
290 | 292 | | |
291 | 293 | | |
292 | 294 | | |
| |||
298 | 300 | | |
299 | 301 | | |
300 | 302 | | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | 303 | | |
313 | 304 | | |
314 | 305 | | |
| |||
334 | 325 | | |
335 | 326 | | |
336 | 327 | | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
337 | 363 | | |
338 | 364 | | |
339 | 365 | | |
| |||
0 commit comments