# Trawlia [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/ayhoung/trawlia-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/trawlia

## Description
Web search and page extraction for agents, returned as readable text rather than raw JSON.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "trawlia": {
    "command": "npx",
    "args": ["-y","trawlia-mcp"]
  }
}
```

## Documentation & README

# trawlia-mcp

Trawlia as an MCP server: web search and page extraction, as two tools any MCP client can call.

Get a free key at [trawlia.co/signup](https://trawlia.co/signup) - 100 credits a month, no card.

## Claude Code

```bash
claude mcp add trawlia --env TRAWLIA_API_KEY=twl_... -- npx -y trawlia-mcp
```

## Claude Desktop, Cursor, and anything else reading a JSON config

```json
{
  "mcpServers": {
    "trawlia": {
      "command": "npx",
      "args": ["-y", "trawlia-mcp"],
      "env": { "TRAWLIA_API_KEY": "twl_..." }
    }
  }
}
```

## The tools

### `trawlia_search`

Ranked, deduplicated results from the live web.

| Argument | Default | Notes |
|---|---|---|
| `query` | required | Natural language, not keywords. |
| `search_depth` | `basic` | `basic` is 1 credit and returns snippets. `advanced` is 2 and returns full page text. |
| `topic` | `general` | `news` reaches news indexes and returns publication dates. |
| `max_results` | 5 | Up to 20. These go into your context, so fewer is usually better. |
| `include_domains` / `exclude_domains` | - | Host filters. Subdomains are included. |
| `time_range` | - | `day`, `week`, `month`, `year`. |

### `trawlia_extract`

Fetches URLs you already have and returns their readable content, with navigation, cookie banners and newsletter modals removed.
1 credit per 5 URLs, so pass the whole list at once.

## What the model sees

Results come back as readable text rather than raw JSON, and carry two things a
plain response would lose:

- **When a page could not be read**, the result says so and why, instead of
  presenting a snippet as though it were the article.
- **A coverage line** when a source was unavailable, so the model can weigh a
  thin result set properly rather than reporting it as a confident nothing.

Errors are readable sentences that say whether retrying is worth it. Running out
of credits says so and says not to retry; a rate limit says how long to wait.

## Costs

| Operation | Credits |
|---|---|
| Basic search | 1 |
| Advanced search | 2 |
| Extraction | 1 per 5 URLs |

Charged before the work and refunded on hard failure.
Full price list at [trawlia.co/pricing](https://trawlia.co/pricing).

## Not available

Search and extraction, and nothing else. There is no crawler and no long-running
job to poll. If your agent needs to walk a whole site, this is the wrong server
for it.

## Checking it works

```bash
TRAWLIA_API_KEY=twl_... node smoke.mjs
```

Spends a few credits against the real API and prints what a client sees: the
tool list, a rendered search, a rejected parameter, and an extraction.
Not in CI, because it costs money and depends on the live web.

## Environment

| Variable | Required | Notes |
|---|---|---|
| `TRAWLIA_API_KEY` | yes | A `search`-scoped key is enough and is what you should deploy. |
| `TRAWLIA_BASE_URL` | no | Defaults to `https://api.trawlia.co`. For pointing at a local server. |

