# com.pulsemcp.servers/pulse-fetch (npm · @pulsemcp/pulse-fetch)

MCP server that extracts clean, structured content from web pages with anti-bot bypass capabilities.

- Trust score: 65/100 (medium)
- Change this week: +24
- Registry status: deprecated
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

> **Deprecated**: this server is marked deprecated in the MCP registry.

## Components

- npm · `@pulsemcp/pulse-fetch`: 65/100 (this document), [markdown](https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch.md), [page](https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch)

## Channel facts

- Registry: `npm`
- Package: `@pulsemcp/pulse-fetch`
- Version: `0.2.14`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (161 of 163), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (161 of 163), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 49 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 56/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 750 tokens (~750/item across 1 items; 1 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-pulsemcp-servers-pulse-fetch -- npx -y @pulsemcp/pulse-fetch
```

### Codex

```bash
codex mcp add com-pulsemcp-servers-pulse-fetch -- npx -y @pulsemcp/pulse-fetch
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-pulsemcp-servers-pulse-fetch": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pulsemcp/pulse-fetch"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-pulsemcp-servers-pulse-fetch --command npx --arg -y --arg @pulsemcp/pulse-fetch
```

### Hermes

```yaml
mcp_servers:
  com-pulsemcp-servers-pulse-fetch:
    command: "npx"
    args: ["-y", "@pulsemcp/pulse-fetch"]
```

### Other

```json
{
  "mcpServers": {
    "com-pulsemcp-servers-pulse-fetch": {
      "command": "npx",
      "args": [
        "-y",
        "@pulsemcp/pulse-fetch"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 65, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 61, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-07-31 (score 17, −6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 23, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 41)

First indexed and scored.

## MCP tools (1)

### `scrape` (~750 tokens)

Scrape webpage content using intelligent automatic strategy selection with built-in caching. This tool fetches content from any URL with flexible result handling options.

Result handling modes:
\- returnOnly: Returns scraped content without saving (uses maxChars for size limits)
\- saveAndReturn: Saves content as MCP Resource AND returns it (default, best for reuse)
\- saveOnly: Saves content as MCP Resource, returns only resource link (no content)

Example responses by mode:

returnOnly:
{
  "content": [
    {
      "type": "text",
      "text": "Article content here...

\---
Scraped using: native"
    }
  ]
}

saveAndReturn (embedded resource):
{
  "content": [
    {
      "type": "resource",
      "resource": {
        "uri": "scraped://example.com/article_2024-01-15T10:30:00Z",
        "name": "https://example.com/article",
        "text": "Full article content..."
      }
    }
  ]
}

saveOnly (linked resource):
{
  "content": [
    {
      "type": "resource_link",
      "uri": "scraped://example.com/article_2024-01-15T10:30:00Z",
      "name": "https://example.com/article"
    }
  ]
}

Caching behavior:
\- Previously scraped URLs are automatically cached as MCP Resources
\- Subsequent requests return cached content (unless forceRescrape: true)
\- saveOnly mode bypasses cache lookup for efficiency

Scraping strategies:
\- native: Direct HTTP fetch (fastest, works for most public sites)
\- firecrawl: Advanced scraping with JavaScript rendering (requires FIRECRAWL_API_KEY)
\- brightdata: Premium scraping for heavily protected sites (requires BRIGHTDATA_API_KEY)

The tool automatically:
1\. Checks cache first (except in saveOnly mode)
2\. Tries the most appropriate scraping method based on domain patterns
3\. Falls back to alternative methods if needed
4\. Remembers successful strategies for future requests

Input parameters:

- `cleanScrape` (boolean): Whether to clean the scraped content by converting HTML to semantic Markdown of what's on the page, removing ads, navigation, and boilerplate. This typically reduces content size by 50-90% while pres…
- `forceRescrape` (boolean): Force a fresh scrape even if cached content exists for this URL. Useful when you know the content has changed. Default: false
- `maxChars` (number): Maximum number of characters to return from the scraped content. Useful for limiting response size. Default: 100000
- `resultHandling` (string): How to handle scraped content and MCP Resources. Options: "saveOnly" (saves as linked resource, no content returned), "saveAndReturn" (saves as embedded resource and returns content - default), "retu…
- `startIndex` (number): Character position to start reading from. Use with maxChars for pagination through large documents (e.g., startIndex: 100000 to skip first 100k chars). Default: 0
- `timeout` (number): Maximum time to wait for page load in milliseconds. Increase for slow-loading sites (e.g., 120000 for 2 minutes). Default: 60000 (1 minute)
- `url` (string, required): The webpage URL to scrape (e.g., "https://example.com/article", "https://api.example.com/docs")

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 61
- 2026-08-01: 17
- 2026-07-31: 17
- 2026-07-30: 23
- 2026-07-28: 41
- 2026-07-27: 41

## Links

- npm package: https://www.npmjs.com/package/@pulsemcp/pulse-fetch
- Socket report: https://socket.dev/npm/package/@pulsemcp/pulse-fetch
- Repository: https://github.com/pulsemcp/mcp-servers
- Changelog RSS feed: https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-pulsemcp-servers-pulse-fetch/pulsemcp-pulse-fetch
