개요
Claude Code로 작업하다 보면,
공식 문서 참조할 때, MCP 서버 정보 확인할 때, 외부 레퍼런스 긁어올 때, WebFetch를 꽤 자주 쓰게 됩니다.
그러다 이슈를 하나 발견했습니다.
분명히 존재하는 페이지인데 404 에러가 발생합니다.

문제의 원인?
URL 끝에 붙는 슬래시(/), 이른바 트레일링 슬래시(trailing slash)가 문제였습니다.
| URL | 결과 |
|---|---|
https://example.com/path/ |
404 에러 |
https://example.com/path |
정상 |
HTTP 스펙상 /path와 /path/는 서로 다른 리소스입니다. /path는 파일, /path/는 디렉터리를 가리킵니다.
브라우저에서는 둘 다 잘 열리는데, 서버가 보내는 301 리다이렉트를 자동으로 따라가기 때문입니다.
WebFetch는 이 리다이렉트를 따라가지 못하고 그대로 실패합니다.
진짜 문제는
사용자가 직접 슬래시를 명시하지 않아도, 에이전트가 알아서 붙이는 경우가 있습니다..
예를 들어 프롬프트에 https://example.com/path라고 명시하였지만, 에이전트가 실제로 fetch할 때는 끝에 /를 붙여서 요청할때가 종종 있습니다.
작업 상황을 유심히보지 않을 경우에 WebFetch 실패했는데 그걸 모른 채로 대화가 이어지면 중요한 콘텍스트가 누락될 수 있습니다(특히 --dangerously-skip-permissions bypass 모드 시, 주의)
해결 방법
CLAUDE.md에 규칙 하나만 추가하면 됩니다.
## WebFetch 규칙
- URL 끝에는 trailing slash(`/`) 제거 후 요청합니다.
이렇게 넣어두면 에이전트가 WebFetch 전에 trailing slash를 제거하고 요청합니다.

마무리
이외에도 Claude-Code의 기본 WebFetch 도구는 권한 이슈(가져오지 못하는 사이트가 많음)와 각종 오류가 많이 발생합니다.
그래서 fetch MCP나 jina reader mcp와 같은 대안 도구들을 많이 사용한다고 합니다.
최근 들어, 토큰 절약을 위해, 에이전트를 위한 브라우저와 같은 서비스들이 출시되고 있는 것 같은데, 조금 더 기다려 봐야겠습니다.