# Give your agents the web with one MCP server

> Add Grabber's remote MCP server to Claude, Cursor, VS Code or Windsurf, and your agent can read any web page as Markdown. $0.001 per page.

Add https://mcp.grabber.sh to your MCP client and your agent gets a fetch_page tool that reads any public page as clean Markdown, paid from the same prepaid credit as the API.

- Remote: nothing to install
- Claude, Cursor, VS Code, Windsurf
- Same key and credit as the API

[Get API key](https://dashboard.grabber.sh/signup) · [API docs](https://grabber.sh/docs)

## Set it up in a minute

Paste the config for your client and replace the key with your own.

- Create an API key in the dashboard: dashboard.grabber.sh/keys
- Add Grabber to your client with the config on the right
- Restart the client and ask it to read a page

### Cursor

`~/.cursor/mcp.json`

```json
{
  "mcpServers": {
    "grabber": {
      "url": "https://mcp.grabber.sh",
      "headers": {
        "Authorization": "Bearer gsh_your_api_key"
      }
    }
  }
}
```

### Claude Code

`Terminal`

```bash
claude mcp add --transport http grabber https://mcp.grabber.sh \
  --header "Authorization: Bearer gsh_your_api_key"
```

### VS Code

`.vscode/mcp.json`

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "grabber-key",
      "description": "Grabber API key",
      "password": true
    }
  ],
  "servers": {
    "grabber": {
      "type": "http",
      "url": "https://mcp.grabber.sh",
      "headers": {
        "Authorization": "Bearer ${input:grabber-key}"
      }
    }
  }
}
```

### Windsurf

`~/.codeium/windsurf/mcp_config.json`

```json
{
  "mcpServers": {
    "grabber": {
      "serverUrl": "https://mcp.grabber.sh",
      "headers": {
        "Authorization": "Bearer gsh_your_api_key"
      }
    }
  }
}
```

### Claude Desktop

`claude_desktop_config.json`

```json
{
  "mcpServers": {
    "grabber": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.grabber.sh",
        "--header",
        "Authorization:${GRABBER_AUTH}"
      ],
      "env": {
        "GRABBER_AUTH": "Bearer gsh_your_api_key"
      }
    }
  }
}
```

## Server details

| Setting | Value |
| --- | --- |
| URL | `https://mcp.grabber.sh` |
| Transport | Streamable HTTP |
| Authentication | `Authorization: Bearer gsh_…`, the same key as the API |
| Tools | `fetch_page`, `check_balance` |
| Pricing | Same as the API: $0.001 a page, $0.005 rendered, errors free |

## Tools

Two tools, so the agent always knows which one to call.

| Tool | What it does | Arguments | Cost |
| --- | --- | --- | --- |
| `fetch_page` | Loads one public web page and returns its content, as Markdown unless you ask for another format. | `url` (required): The http or https address to load.<br>`format`: `markdown`, `html`, `text`, `links`. Default `markdown`.<br>`js_render`: Run the page in a headless browser first. Default `false`.<br>`max_chars`: Cut the content after this many characters, at most 100,000. | $0.001, or $0.005 with `js_render`. Errors are free. |
| `check_balance` | Returns the credit left on the account of the key, in US dollars. | None | Free |

## What agents do with it

### Code against current docs

Point Cursor or Claude Code at a library's docs and it writes code for the version you use, not the one in its training data.

### Research with sources

Ask for a summary of a page, a comparison of several, or a check of a claim against the original text.

### Read single-page apps

The agent can set js_render when a page is built by JavaScript, so dashboards and app pages come through.

### Keep the context small

Markdown is a fraction of the size of the HTML, and max_chars caps every page at 100,000 characters or less.

## Try these prompts

- "Read https://example.com/pricing and put the plans in a table."
- "Fetch the docs page for the library we use and update our code to its current API."
- "Read these three articles and tell me where they disagree."
- "How much Grabber credit do I have left?"

## MCP questions

### Do I need to install anything?

No. The server is remote, at mcp.grabber.sh. Clients that support remote servers connect to it directly. Claude Desktop connects through mcp-remote, a small bridge that npx runs for you.

### What does the MCP server cost?

The same as the API, from the same prepaid credit: fetch_page costs $0.001 a page, or $0.005 with js_render. check_balance is free, and so is any request that fails.

### Why is a page capped at 100,000 characters?

So one long page cannot fill the context window of your agent. Set max_chars lower to save more room. The price is the same whatever the cap.

### Is my API key safe in the config file?

The key stays in a file on your computer and is only sent to mcp.grabber.sh, over HTTPS. Use a separate key for each client, so you can see its usage and delete it on its own.

### Which clients work?

Any client that can connect to a remote MCP server over Streamable HTTP and send a header, such as Cursor, Claude Code, VS Code and Windsurf. Claude Desktop works through mcp-remote.

## Add Grabber to your agent

Sign up in a minute and fetch your first 1,000 pages for free.

[Get API key](https://dashboard.grabber.sh/signup) · [Read the docs](https://grabber.sh/docs)
