Skip to main content
Glama
kwp-lab

MCP Fetch With Proxy

README.md
# MCP Fetch

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

<a href="https://glama.ai/mcp/servers/@kwp-lab/mcp-fetch">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@kwp-lab/mcp-fetch/badge" />
</a>

This repository forks from the [@smithery/mcp-fetch](https://github.com/smithery-ai/mcp-fetch) and replaces the `node-fetch` implementation with the library [node-fetch-native](https://www.npmjs.com/package/node-fetch-native).

The server will use the `http_proxy` and `https_proxy` environment variables to route requests through the proxy server by default if they are set.
You also can set the `MCP_HTTP_PROXY` environment variable to use a different proxy server.

## Available Tools

- `fetch`: Retrieves URLs from the Internet and extracts their content as markdown. If images are found, their URLs will be included in the response.

**Image Processing Specifications:**

Only extract image urls from the article content, and append them to the tool result:

```json
{
  "params": {
    "url": "https://www.example.com/articles/123"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Contents of https://www.example.com/articles/123:\nHere is the article content\n\nImages found in article:\n- https://www.example.com/1.jpg.webp\n- https://www.example.com/2.jpg.webp\n- https://www.example.com/3.webp"
      }
    ]
  }
}
```

## 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`):

```json
{
  "tools": {
    "fetch": {
      "command": "npx",
      "args": ["-y", "@kwp-lab/mcp-fetch"],
      "env": {
        "MCP_HTTP_PROXY": "https://example.com:10890" // Optional, remove if not needed
      }
    }
  }
}
```

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

### Required Setup

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

## For Developers

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

## Prerequisites

- Node.js 18+
- Claude Desktop (install from https://claude.ai/desktop)
- tsx (install via `npm install -g tsx`)

## Installation

### Installing via Smithery

To install MCP Fetch for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@kwp-lab/mcp-fetch):

```bash
npx -y @smithery/cli install @kwp-lab/mcp-fetch --client claude
```

### Manual Installation

```bash
git clone https://github.com/kwp-lab/mcp-fetch.git
cd mcp-fetch
npm install
npm run build
```

## Configuration

1. Make sure Claude Desktop is installed and running.

2. Install tsx globally if you haven't:

    ```bash
    npm install -g tsx
    # or
    pnpm add -g tsx
    ```

3. Modify your Claude Desktop config located at:

`~/Library/Application Support/Claude/claude_desktop_config.json`

You can easily find this through the Claude Desktop menu:

1. Open Claude Desktop
2. Click Claude on the Mac menu bar
3. Click "Settings"
4. Click "Developer"

Add the following to your MCP client's configuration:

```json
{
  "tools": {
    "fetch": {
      "args": ["tsx", "/path/to/mcp-fetch/index.ts"]
    }
  }
}
```

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools, making disambiguation perfect. The single tool has a clear and distinct purpose without any competing alternatives.

Naming Consistency5/5

The single tool name 'fetch' follows a simple verb pattern, and with only one tool, consistency is inherently perfect. There are no other tools to create naming conflicts or inconsistencies.

Tool Count2/5

A single tool is too few for most server purposes, as it limits functionality and flexibility. While it might suffice for basic fetching, it feels thin and under-scoped for a server named 'MCP Fetch With Proxy', which suggests broader capabilities.

Completeness2/5

The tool surface is severely incomplete; it only provides fetching and markdown extraction without supporting operations like configuration, error handling, or advanced proxy management. This leaves obvious gaps for a server with 'Proxy' in its name, such as setting or testing proxy settings.

Maintenance

ActivityInactive
ResponsivenessNo issues