# pulse-fetch

This MCP server fetches web pages, extracts useful content, and can work around anti-bot checks. It suits agents that lack built-in web fetching.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 81
- Author: pulsemcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pulsemcp/mcp-servers/tree/HEAD/productionized/pulse-fetch
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/mcp/pulse-fetch

## What it does

pulse-fetch exposes a `scrape` tool for retrieving one web page at a time. It removes page noise and can return Markdown, HTML, screenshots, or structured data. A natural-language extraction request can target specific facts when an LLM is configured.

The server can return content directly or save it as an MCP Resource. Repeated requests use cached results, while `forceRescrape: true` asks for a new fetch. Firecrawl and BrightData provide the anti-bot path; the Claude Code setup requires `FIRECRAWL_API_KEY`, `BRIGHTDATA_API_KEY`, and `LLM_API_KEY`, so those keys are needed for the related workflows.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `FIRECRAWL_API_KEY`, `BRIGHTDATA_API_KEY`, `STRATEGY_CONFIG_PATH`, `OPTIMIZE_FOR`, `MCP_RESOURCE_STORAGE`, `MCP_RESOURCE_FILESYSTEM_ROOT`, `SKIP_HEALTH_CHECKS`, `LLM_PROVIDER`, `LLM_API_KEY`, `LLM_API_BASE_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env FIRECRAWL_API_KEY=<FIRECRAWL_API_KEY> --env BRIGHTDATA_API_KEY=<BRIGHTDATA_API_KEY> --env STRATEGY_CONFIG_PATH=<STRATEGY_CONFIG_PATH> --env OPTIMIZE_FOR=<OPTIMIZE_FOR> --env MCP_RESOURCE_STORAGE=<MCP_RESOURCE_STORAGE> --transport stdio pulse-fetch -- npx -y @pulsemcp/pulse-fetch
```
Replace <…> with your own values. 6 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add pulse-fetch --env FIRECRAWL_API_KEY=<FIRECRAWL_API_KEY> --env BRIGHTDATA_API_KEY=<BRIGHTDATA_API_KEY> --env STRATEGY_CONFIG_PATH=<STRATEGY_CONFIG_PATH> --env OPTIMIZE_FOR=<OPTIMIZE_FOR> --env MCP_RESOURCE_STORAGE=<MCP_RESOURCE_STORAGE> -- npx -y @pulsemcp/pulse-fetch
```
Replace <…> with your own values. 6 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "pulse-fetch": {
            "command": "npx",
            "args": [
                "-y",
                "@pulsemcp/pulse-fetch"
            ],
            "env": {
                "FIRECRAWL_API_KEY": "<FIRECRAWL_API_KEY>",
                "BRIGHTDATA_API_KEY": "<BRIGHTDATA_API_KEY>",
                "STRATEGY_CONFIG_PATH": "<STRATEGY_CONFIG_PATH>",
                "OPTIMIZE_FOR": "<OPTIMIZE_FOR>",
                "MCP_RESOURCE_STORAGE": "<MCP_RESOURCE_STORAGE>"
            }
        }
    }
}
```
Replace <…> with your own values. 6 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "pulse-fetch": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@pulsemcp/pulse-fetch"
            ],
            "env": {
                "FIRECRAWL_API_KEY": "<FIRECRAWL_API_KEY>",
                "BRIGHTDATA_API_KEY": "<BRIGHTDATA_API_KEY>",
                "STRATEGY_CONFIG_PATH": "<STRATEGY_CONFIG_PATH>",
                "OPTIMIZE_FOR": "<OPTIMIZE_FOR>",
                "MCP_RESOURCE_STORAGE": "<MCP_RESOURCE_STORAGE>"
            }
        }
    }
}
```
Replace <…> with your own values. 6 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e FIRECRAWL_API_KEY=<FIRECRAWL_API_KEY> -e BRIGHTDATA_API_KEY=<BRIGHTDATA_API_KEY> -e STRATEGY_CONFIG_PATH=<STRATEGY_CONFIG_PATH> -e OPTIMIZE_FOR=<OPTIMIZE_FOR> -e MCP_RESOURCE_STORAGE=<MCP_RESOURCE_STORAGE> pulse-fetch npx -y @pulsemcp/pulse-fetch
```
Replace <…> with your own values. 6 more environment variables are in the server README

## When to use it
- extract the main text from a web article
- turn product pages into structured data
- retrieve content from an anti-bot protected page
- save fetched content as an MCP Resource
- request a fresh page version instead of cached content

## Example prompts
- Extract the main content from `https://example.com/article`.
- Get structured product details from `https://shop.example.com/product/123`.
- Fetch `https://example.com/article` again and bypass the cache.

## Similar
- [Wick](https://affpapa.org/en/nevibecode/mcp/wick.md) — MCP server · ★ 9
- [web-fetch-mcp](https://affpapa.org/en/nevibecode/mcp/web-fetch-mcp.md) — MCP server · ★ 9
- [Defuddle Fetch](https://affpapa.org/en/nevibecode/mcp/defuddle-fetch.md) — MCP server · ★ 8
- [steel-reliability](https://affpapa.org/en/nevibecode/skills/steel-reliability.md) — skill · 432 installs
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/decodo-mcp-server.md) — MCP server · ★ 39
- [Browser Scraper](https://affpapa.org/en/nevibecode/mcp/browser-scraper.md) — MCP server · ★ 11

From the same set: [pulsemcp/mcp-servers](https://affpapa.org/en/nevibecode/by/pulsemcp/mcp-servers.md) — 28 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
