Back to the catalog

Trawlia

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

Open source Open in the app JSON README (API)

About

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

Details

Kind
MCP servers
Topic
Web search, scraping & browser
Publisher
co.trawlia
Origin
official
Category
ferramentas
Transport
local
Version
0.1.0
Last push
2026-08-29T03:23:37Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-29 08:00:05
Updated
2026-08-29 08:00:05
Origin id
co.trawlia/trawlia-mcp

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. |

More