# DocPull MCP server

> Turns web and document sources into versioned, cited context that AI clients can query, diff, and export.

- Repository: https://github.com/raintree-technology/docpull
- Page: https://hostedmcp.org/servers/raintree-technology/docpull
- Transport: stdio
- Stars: 29
- License: MIT
- Latest version: 6.10.0

## Install

### Claude Code

```sh
claude mcp add docpull -- uvx docpull
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "docpull": {
      "command": "uvx",
      "args": [
        "docpull"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "docpull": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "docpull"
      ]
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "docpull": {
      "command": "uvx",
      "args": [
        "docpull"
      ]
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.docpull]
command = "uvx"
args = ["docpull"]
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "docpull": {
      "command": "uvx",
      "args": [
        "docpull"
      ]
    }
  }
}
```

## FAQ

### How do I install and run the DocPull MCP server?

Install the MCP extra with pip and run `docpull mcp`, which starts the supported local stdio server. You can also register it with Claude Code using the claude mcp add command.

### Does DocPull need an account or paid API?

No. The default path fetches, extracts, indexes, and diffs locally without an account or paid API.

### Can DocPull detect when sources change?

Yes. Syncing again produces a hash-based diff that shows changed sources while preserving URLs, content hashes, run IDs, and citations.

### What security protections does DocPull have?

It defaults to HTTPS-only fetching with robots.txt compliance, SSRF and DNS rebinding protections, redirect guards, XXE protection, and path-traversal checks.

### How are authenticated sources handled?

Credentials must be supplied through environment-variable references and are not stored in project artifacts.
