Atlas / MCP servers / kazuph / Fetch

FetchSAFE

mcp/kazuph/fetch-5
Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
1 1r · 0w · 0d
Transport
stdio
License
MIT
Stars
41
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Model Context Protocol server for fetching web content and processing images. This allows Claude Desktop (or any MCP client) to fetch web content and handle images appropriately.

Quick Start (For Users)

To use this tool with Claude Desktop, simply add the following to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
"tools": {
"imageFetch": {
"command": "npx",
"args": ["-y", "@kazuph/mcp-fetch"]
}
}
}

This will automatically download and run the latest version of the tool when needed.

Required Setup

  1. Enable Accessibility for Claude:
  2. Open System Settings
  3. Go to Privacy & Security > Accessibility
  4. Click the "+" button
  5. Add Claude from your Applications folder
  6. Turn ON the toggle for Claude

This accessibility setting is required for automated clipboard operations (Cmd+V) to work properly.

Features

  • Web Content Extraction: Automatically extracts and formats web content as markdown
  • Article Title Extraction: Extracts and displays the title of the article
  • Image Processing: Optional processing of images from web pages with optimization (disabled by default, enable with enableFetchImages: true)
  • File Saving: Images are automatically saved to ~/Downloads/mcp-fetch/YYYY-MM-DD/ directory when processed
  • Dual Output: Both file saving and optional Base64 encoding for AI display
  • Pagination Support: Supports pagination for both text and images
  • JPEG Optimization: Automatically optimizes images as JPEG for better performance
  • GIF Support: Extracts first frame from animated GIFs

For Developers

The following sections are for those who want to develop or modify the tool.

Prerequisites

  • Node.js 18+
  • macOS (for cl
Read from source at commit 2c4ed4181c4fOBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-fetch -- npx -y @kazuph/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-fetch": {
      "command": "npx",
      "args": [
        "-y",
        "@kazuph/[email protected]"
      ]
    }
  }
}
03

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
imageFetchread画像取得に強いMCPフェッチツール。記事本文をMarkdown化し、ページ内の画像を抽出・最適化して返します。 新APIの既定(imagesを指定した場合) - 画像: 取得してBASE64で返却(最大3枚を縦結合した1枚JPEG) - 保存: しない(オプトイン) - クロスオリジン: 許可(CDN想定) パラメータ(新API) - url: 取得先URL(必須) - images: true | { output, layout, maxCount, startIndex, size, originPolicy, saveDir } - output:
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (6)

LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/image-fetch.test.ts:58
<img src="http://127.0.0.1:${PORT_IMG}/img.jpg" alt="r">
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/image-fetch.test.ts:73
`http://127.0.0.1:${PORT_PAGE}/`,
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/image-fetch.test.ts:102
`http://127.0.0.1:${PORT_PAGE}/`,
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/network.test.ts:34
res.writeHead(302, { Location: `http://127.0.0.1:${port}/dest` });
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/network.test.ts:66
`http://127.0.0.1:${port}/redir`,
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @mozilla/readability, jsdom, robots-parser, sharp, turndown, zod, zod-to-json-schema
Why it matters. 14 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 2c4ed4181c4ffull audit observations/trust-audit/mcp-server/kazuph__fetch-5.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-082c4ed4181c4fSAFEB89first audit
06

Questions

What tools does Fetch expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Fetch safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Fetch need?

No credential environment variables were found in its source, so it appears to need none.

How does Fetch run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @kazuph/mcp-fetch at 1.6.3.

How current is this page?

The grade is for one exact copy of the source (2c4ed4181c4f), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement