Skip to main content
Glama
README.md
# UnWeb MCP Server

[![npm version](https://img.shields.io/npm/v/@mbsoftsystems/unweb-mcp)](https://www.npmjs.com/package/@mbsoftsystems/unweb-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

MCP server for converting webpages to markdown in [Claude Code](https://claude.ai/code), [Cursor](https://cursor.com), and [Windsurf](https://windsurf.ai). Content quality scoring. Multi-page crawl. LangChain + LlamaIndex exports.

## Quick Start

Get your free API key at [app.unweb.info](https://app.unweb.info) (500 credits/month, no credit card).

### Claude Code

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "unweb": {
      "command": "npx",
      "args": ["-y", "@mbsoftsystems/unweb-mcp"],
      "env": { "UNWEB_API_KEY": "unweb_your_key_here" }
    }
  }
}
```

### Cursor

Add to `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "unweb": {
      "command": "npx",
      "args": ["-y", "@mbsoftsystems/unweb-mcp"],
      "env": { "UNWEB_API_KEY": "unweb_your_key_here" }
    }
  }
}
```

### Windsurf

Same format in your Windsurf MCP configuration file.

## Tools

| Tool | Description | Credits |
|------|-------------|---------|
| `convert_url` | Convert a webpage URL to clean markdown with quality score | 1 |
| `convert_html` | Convert raw HTML string to markdown | 1 |
| `crawl_start` | Start crawling a documentation site (path-bounded BFS) | 1/page |
| `crawl_status` | Check crawl job progress | 0 |
| `crawl_download` | Download all crawled pages as concatenated markdown | 0 |

### convert_url

Convert any webpage to clean CommonMark markdown:

> "Convert https://docs.stripe.com/api/charges to markdown"

Returns the markdown content plus a **quality score (0-100)** indicating extraction confidence. Scores below 40 indicate the page likely needs JavaScript rendering.

### convert_html

Convert HTML you already have — API responses, scraped content, generated markup:

> "Convert this HTML to markdown: `<h1>Title</h1><p>Content</p>`"

### crawl_start → crawl_status → crawl_download

Crawl entire documentation sites:

> "Crawl https://docs.example.com starting from /guides/ and get all pages as markdown"

The crawler runs a path-bounded BFS, converting each page. Use `crawl_status` to check progress and `crawl_download` to get all pages concatenated with separators:

```
--- Page: guides/getting-started.md ---
# Getting Started
Content here...

--- Page: guides/authentication.md ---
# Authentication
Content here...
```

**Export formats:** `raw-md` (default), `langchain` (JSONL for LangChain), `llamaindex` (JSON for LlamaIndex).

## Why UnWeb MCP?

| Feature | UnWeb | Firecrawl | Jina Reader |
|---------|-------|-----------|-------------|
| Content quality score | 0-100 on every response | No | No |
| Multi-page crawl | Yes | Yes | No |
| LangChain/LlamaIndex export | Native | No | No |
| Convert raw HTML | Yes | No (URL only) | No (URL only) |
| Free tier | 500 credits/month (recurring) | 500 credits (one-time) | Rate-limited |
| Cheapest paid | $12/month | $16/month | Token-based |

## Pricing

| Plan | Credits/month | Price |
|------|--------------|-------|
| Free | 500 | $0 |
| Starter | 2,000 | $12/month |
| Pro | 15,000 | $39/month |
| Scale | 60,000 | $99/month |

## Links

- [UnWeb](https://unweb.info) — Landing page
- [Documentation](https://docs.unweb.info) — Full API docs
- [Dashboard](https://app.unweb.info) — Manage API keys and usage
- [Python SDK](https://pypi.org/project/unweb/) — `pip install unweb`
- [Node.js SDK](https://www.npmjs.com/package/@mbsoftsystems/unweb) — `npm install @mbsoftsystems/unweb`
- [GitHub](https://github.com/mbsoft-systems/unweb-community) — Examples and community

## License

MIT